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

/*html {visibility: hidden;}
html.wf-active {visibility: visible;}

@font-face {
  font-family: 'KiwiMaru';
  font-display: auto;
  src: url('/_/font/KiwiMaru-Medium.ttf') format('truetype');
}
@font-face {
  font-family: 'KiwiMaru_r';
  font-display: auto;
  src: url('/_/font/KiwiMaru-Regular.ttf') format('truetype');
}*/

body{
  font-family: "Yu Gothic UI","Yu Gothic medium","Hiragino Sans", Meiryo, system-ui;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
a{text-decoration: none;}

.clearfix::after { content: "";  display: block; clear: both;}

/*.top_m70 { position: relative; top: -70px; display: block;}
.top_m40 { position: relative; top: -40px; display: block;}*/

.wrap{ overflow: hidden; margin: 0 auto;}
.inner_cnt{ width: calc(100% - 60px); max-width: 1000px; margin: auto;}

.r_txt{ text-align: right;}

/*.wrap_2{ margin-top: 70px; min-height: 580px; position: relative;}
.sp_only{display: none;}


.inner_cnt2{ width: calc(100% - 60px); max-width: 1150px; margin: auto;}
.inner_cnt3{ max-width: 1000px;}
*/
.link_blu{ color: #006a95; border-bottom: 1px solid #006a95; padding: 0 3px;}
.link_blu:hover{ color: #6fabc3; border-bottom: 1px solid #6fabc3;}

.nav{ position: fixed; top: 0; left: 0; right: 0; z-index: 10; padding: 0; /*background: #ffffff; transition: all 0.3s;*/}
.nav_inner{ display: flex; justify-content: space-between; width: calc(100% - 20px); max-width: 1860px; margin: 0 auto; position: relative;}

.nav .logo{ display: inline-block; width: 445px; margin: 20px 0;}
.nav .logo img{ width: 100%;}

.nav.narrow{ background:rgba(255,255,255,0.95); border-bottom: 1px solid #efefef;}
.nav.narrow .logo{ width: 250px; margin: 5px 0;}

footer{ line-height: 1.5; text-align: center; border-top: 5px solid #daeff1;}
footer .inner_cnt{ margin: 30px auto 20px;}

footer .ft_logo{ width: 200px; margin: 0 auto 15px;}
footer .ft_logo img{ width: 100%; }
footer .addr{ color: #868686;}
footer .addr span{ display: inline-block;}
footer .tel{ pointer-events: none; color: #868686;}
footer .copyright{ background: #408c99; color: #ffffff; font-size: 14px; letter-spacing: 0.1em; padding: 10px 5px 9px; font-weight: 300;}

.page_top { display: block; width: 60px; height: 60px; position: fixed; z-index: 5; right: 10px; bottom: -100px; cursor: pointer;
  background: #ffd147; border-radius: 4px;}
.page_top img { width: 52px; position: absolute; left: 50%; top:50%; transform: translate(-50%,-50%);}
.page_top:hover{ background: #ffb129;}


.sp_nav{ display: none;}
.overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: none; background: #6F6F6F; opacity: 0.7; 
  filter: alpha(opacity=70); z-index: 89;}


.scroll_vis{ opacity: 0; transform: translate(0, 60px); transition: opacity 1s, transform 0.8s;}
.scroll_vis.visibled{ opacity: 1; transform: translate(0, 0);}
.scroll_vis.visibled2{ opacity: 1; transform: translate(0, 0); transition: unset; transition-delay: unset!important;}
.scroll_vis_opa{ opacity: 0; transition: opacity 1s;}
.scroll_vis_opa.visibled{ opacity: 1;}
.scroll_vis_opa.visibled2{ opacity: 1; transition: unset;}

/************************************************************ teaser top page *************************************************************/

.teaser { line-height: 1.4;}

.t_top{ min-height: 800px; background: linear-gradient(180deg, #ffffff 0%, #ffffff 70%, #daeff1 70%, #daeff1 100%); padding: 20px clamp(15px,2vw,40px) 40px; 
  box-sizing: border-box; display: flex; justify-content: flex-end; margin-bottom: 3vw;}
.t_top .text{ width:30vw; position: relative;}
.t_top .text .matrix{ width: clamp(180px,20vw,270px); position: absolute; right: 0; transform: translateX(-50%); top: 30%;}
.t_top .text .day_nairan{ width: clamp(200px,28vw,354px); margin: 50px 0 0;}
.t_top .text span{ font-size: clamp(48px,5.5vw,64px); color: #0c6d7d; font-weight: 500; display: block; letter-spacing: 0.15em;}
.t_top .text a{ display: inline-block; margin: 50px 0 0; padding: 10px 40px 10px 20px; width: clamp(150px, 18vw, 220px); text-align: center; border-radius: 4px;
  background:#0c6d7d; color: #ffffff; font-size: clamp(20px,2vw,24px); font-weight: 500; position: relative;}
.t_top .text a::after{ content: ""; position: absolute; top: 50%; transform: translateY(-50%); right: 15px; width: 12px; height: 20px;
  mask-position: top center; mask-repeat: no-repeat; mask-size: cover; mask-image: url(/_/img/arrw_gry.svg); background: #ffffff;}
.t_top .text a:hover{ background: #4f95a1;}

.matrix p{ overflow: hidden;}
.matrix p img,.matrix p span{ opacity: 0; transform: matrix(1, 0, 0, 1, 0, 100); animation: slideIn 0.3s ease-out forwards; animation-delay: 1.2s;}
.matrix a{ opacity: 0; animation: apper 0.3s ease-out forwards; animation-delay: 1.8s;}
@keyframes slideIn {
  0% {
    opacity: 0;
    transform: matrix(1, 0, 0, 1, 0, 100);
  }
  100% {
    transform: matrix(1, 0, 0, 1, 0, 0);
  }
  50%,100% {
    opacity: 1;
  }
}
@keyframes apper {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
  70%,100% {
    opacity: 1;
  }
}
.t_top .img{ border: 4px solid #ffffff; border-radius: 10px; overflow: hidden; width: clamp(500px,65vw,1200px); position: relative; background: #ffffff;}
.t_top .img div{ position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) scale(1.4); aspect-ratio: 1669 / 1260; width: clamp(980px,65vw,1200px); 
  filter: blur(10px); opacity: 0.2; animation: blur 1s ease-in forwards,scales 1.2s ease-in-out forwards;}
@keyframes blur {
  0% {
    filter: blur(10px);
  }
  100% {
    filter: blur(0);
  }
  50%,100% {
    opacity: 1;
  }
}
@keyframes scales {
  0% {
    transform: translate(-50%, -50%) scale(1.4);
  }
  100% {
    transform: translate(-50%, -50%) scale(1);
  }
}

.t_top .img div img{ width:100%;}

.teaser h2{ text-align: center; color: #0c6d7d; font-size: 22px; position: relative; margin-bottom: 60px;}
.teaser h2::after{ content: url(/_/img/lines.svg); position: absolute; width: 8px; bottom: -40px; left: 50%; transform: translateX(-50%);}

.teaser .greeting p{ font-size: 17px; line-height: 1.6; margin-bottom: 20px;}
.teaser .greeting p.r_txt{ font-size: 16px;}
.teaser .greeting p.r_txt span{ font-size: 18px;}

.teaser .outline{ background: #ffffe5; padding: 40px 0 30px; margin: 5vw 0 3vw;}
.teaser .outline .inner_cnt{ padding:70px 20px 30px; background: #ffffff; border-radius: 10px; box-sizing: border-box; max-width: 1200px; margin-top: -75px;}
.teaser .outline dl{ display: flex; flex-wrap: wrap; font-size: 18px; border-top:2px solid #d4d4d4; border-bottom:2px solid #d4d4d4; max-width: 1000px; margin: auto;}
.teaser .outline dt{ color: #818181; text-align: center; padding: 20px; box-sizing: border-box; width: 30%;}
.teaser .outline dd{ padding: 20px; box-sizing: border-box; width: 70%;}
.teaser .outline dt:not(:last-of-type),.teaser .outline dd:not(:last-of-type){ border-bottom: 1px solid #d4d4d4;}
.teaser .outline span{ display: inline-block;}

.teaser .topics{ border-bottom: 4px solid #efefef; padding: 0 10px 60px; margin-bottom: 60px;}
.teaser .topics ul{ display: flex; flex-wrap: wrap; max-width: 1200px; margin: 0 auto 20px; list-style: none; justify-content: center;}
.teaser .topics ul li{ width: 280px; margin: 0 10px 15px;}
.teaser .topics ul li a{ display: block;}
.teaser .topics ul li a:hover div img{ transform: scale(1.1);}
.teaser .topics ul li div{ aspect-ratio: 7 / 5; overflow: hidden; margin-bottom: 5px;}
.teaser .topics ul li div img{ width: 100%; height: auto; transition: 0.3s;}
.teaser .topics ul li .date{ color: #0c6d7d;}
.teaser .topics ul li p{ color: #2c2c2c; font-size: 18px;}
.teaser .topics .to_index{ text-align: center; }
.teaser .topics .to_index a{ color: #0c6d7d; border-bottom: 1px solid #46909c; display: inline-block; padding: 5px 5px 2px 10px; font-weight: 600;}
.teaser .topics .to_index a:hover{ border-bottom: 1px solid #ffffff;}


.teaser .access p{ font-size: 18px; text-align: center; margin-bottom: 10px;}
.teaser .access p.addr{ font-size: 16px; margin-bottom: max(15px,2vw);}
.teaser .access p.addr span{ display: inline-block;}
.g_map{ height: clamp( 300px,47vw,500px);}
.g_map iframe{width: 100%; height: 100%;}

/************************************************************ top page *************************************************************/

/*.top_head{ margin-top: 80px; background: #f4ffe1; position: relative; padding: 40px 0 120px;}
.top_head .photo{ border-radius: 10px; overflow: hidden; max-width: 1600px; margin: 0 auto 30px; width: calc(100% - 40px); text-align: center; 
  position: relative;}
.top_head .photo img{ max-width: 100%;}
.top_head .visu,.pg_head .visu{ position: absolute;}
.top_head .visu img,.pg_head .visu img{ max-width: 100%;}
.top_head .top_copy_text { top: 8%; left: 2.5%; max-width: 45%; z-index: 1;}
.top_head .tree1{ top:65%; left: 20px; max-width: 12.5%; transform: translateY(-50%);}
.top_head .tree2{ top:0; right: 0; max-width: 75%;}

.top_page.inner_cnt{ margin-left: max(15vw, 120px); width:calc(100% - 180px);}
.top_page.inner_cnt p{ line-height: 1.5; font-size: 18px; margin-bottom: 20px;}
.top_page.inner_cnt .lead_txt{ font-size: 24px; line-height: 1.4; font-family: 'KiwiMaru'; margin-bottom: 15px; color: #008ece;}

.top_page.mdl{ margin-top: -80px; position: relative; z-index: 1; padding-bottom: 150px;}
.top_page.mdl .lead_txt{ color: #ff7c00;}
.top_page.mdl p{ max-width: 770px;}
.top_photos{ margin: 0 0 50px -40px; display: flex; justify-content: center;}
.top_photos .couple{ margin: 30px min(80px, 4vw) 0 0; max-width: 228px; width: 20%;}
.top_photos ul{ list-style: none; display: flex; justify-content: space-around; flex-wrap: wrap; width: 80%; max-width: 870px;}
.top_photos li{ aspect-ratio: 37 / 25; border-radius: 8px; overflow: hidden; max-width: 400px; width: calc(50% - 15px); margin-bottom: 20px;}
.top_page.mdl .img{ position: absolute; width: 36%; min-width:340px; max-width: 458px; bottom: -80px; right: 5%; transform: translateY(-10%);}
.top_page.mdl img{ width: 100%;}

.btn_r{ display: inline-block; border-radius: 3px; border: 2px solid #c2c2c2; padding: 8px 65px 8px 45px; color: #909090; font-size: 20px; 
  font-family: 'KiwiMaru'; position: relative; background: #ffffff; line-height: 1.3;}
.btn_r::after,.link_r::after { content:""; position: absolute; width: 10px; height: 16px; right: 10px; top: 50%; transform: translateY(-50%); mask-position: top center;
  mask-repeat: no-repeat; mask-size: contain; mask-image: url(/_/img/arrw_gry.svg); background: #909090;}
.btn_r:hover{ background: #ffffec;}

.top_menu{ background: #fff5dd; padding: 80px 0 50px;}
.top_menu ul{ list-style: none; display: flex; justify-content: space-around; width: calc(100% - 40px); max-width: 1240px; margin: auto;}
.top_menu li{ border: 2px solid #d9d9d9; border-radius: 10px; text-align: center; background: #ffffff; width: calc(100% / 3 - 30px); 
  max-width:380px; box-sizing: border-box;}
.top_menu li a{ display: block; padding: 20px 15px;}
.top_menu li a span { color: #45ad07; font-size: 22px; display: inline-block; margin-bottom: 12px; font-family: 'KiwiMaru';}
.top_menu li a div{ max-width: 310px; margin: 0 auto; overflow: hidden;}
.top_menu li a img{ width: 100%; height: auto; transition: .3s;}
.top_menu li a:hover img{ transform: scale(1.1);}

.top_topics{ padding: 50px 0; margin-bottom: 5vw; font-size: 17px;}
.top_topics h2{ text-align: center; font-size: 22px; font-family: 'KiwiMaru'; color: #272727; font-weight:500; margin-bottom: 30px;}
.top_topics ul{ list-style: none; border-top: 2px solid #d4d4d4; line-height: 1.3;}
.top_topics li{ border-bottom: 2px dotted #d4d4d4; padding: 8px;}
.top_topics li:last-child{ border-bottom: 2px solid #d4d4d4;}
.top_topics li a{ display: flex; padding: 15px; border-radius: 3px;}
.top_topics li a p{ color: #2c2c2c; width: 80%;}
.top_topics li a p.important{ color: #ef2c2c; font-weight: 600;}
.top_topics li a .date{ color: #00bbc7; width: 20%; text-align: center;}
.top_topics li a:hover{ background: #f8ffee;}
.to_topics{ padding: 10px 0; text-align: right;}
.to_topics a{ color: #7d7d7d; display: inline-block; padding-right: 30px; position: relative;}
.to_topics a::after{ background: #c9c9c9; width: 8px; height: 14px;}
.to_topics a:hover{ color: #272727;}
.to_topics a:hover::after{ background: #757575;}

/************************************************************ excepting top *************************************************************/

.excp_top{ margin-top: 90px;}
.pg_head{ background: #eaf6fd; min-height: 200px; box-sizing: border-box; padding: 50px 0 0; position: relative; z-index: 1;}
.pg_head.topi_index{min-height: 50px;}
.pg_head h1.index,.pg_head h2{ text-align: center; color: #0c6d7d; font-size: 26px; position: relative; margin-bottom: 80px;}
.pg_head h1.index{ margin-bottom: 0;}
.pg_head h1.index::after,.pg_head h2::after{ content: url(/_/img/lines.svg); position: absolute; width: 8px; bottom: -60px; left: 50%; transform: translateX(-50%);}
.topi_index .top,.topi_ttl,.topi_sngl,.topi_index2{ background: #ffffff; border-radius: 10px 10px 0 0; max-width: 1400px; width: calc(100% - 140px); margin: -30px auto 0; 
  padding: 30px 40px 0; min-height: 80px;}
.topi_index .top{ margin: 50px auto 0; padding: 20px 40px 0; min-height: 5px;}
.topi_sngl,.topi_index2{ border: 4px solid #daeff1; border-radius: 0 0 10px 10px; margin: -10px auto 5vw; padding: 20px 40px 30px; position: relative;}
.topi_index2{ padding: 10px 40px;}
.topi_index2 ul{ list-style: none;}
.topi_index2 li{ padding: 0 20px 5px;}
.topi_index2 li:not(:last-child){ margin-bottom: 5px; border-bottom: 2px solid #daeff1;}
.topi_index2 li a{ display: flex; padding: 20px; align-items: center; border-radius: 3px;}
.topi_index2 li a span{ color: #0c6d7d; margin-right: 20px;}
.topi_index2 li a p{ color: #000000; font-size: 18px;}
.topi_index2 li a:hover{ background: #ffffec;}
.topi_ttl .date{ display: inline-block; color: #0c6d7d; padding: 0 20px 5px;}
.topi_ttl h1{ color: #2c2c2c; font-size: 40px; font-weight: 400; line-height: 1.4; padding: 0 20px;}
.topi_sngl .cont{ border-top: 2px solid #d4d4d4; padding: 40px 20px 10px;}
.topi_sngl .cont p{ line-height: 1.5; margin-bottom: 20px;}

.prev_next{ padding: 20px 20px 0; border-top: 2px solid #d4d4d4; display: flex; justify-content: space-between;}
.prev_next a{ color: #a7a7a7; display: inline-block; padding: 2px; position: relative; font-weight: 500;}
.prev_next a:hover{ color: #0c6d7d;}
.prev_next a.next{ padding-left: 15px;}
.prev_next a.prev{ padding-right: 15px;}
.prev_next a.next::before,.prev_next a.prev::after{ content: ""; position: absolute; top: 2.5px; right: 0; width: 8px; height: 15px;
  mask-position: top center; mask-repeat: no-repeat; mask-size: cover; mask-image: url(/_/img/arrw_gry.svg); background: #999999;}
.prev_next a.next::before{ right: unset; left: 0; transform: rotate(180deg);}
.prev_next a.next:hover::before,.prev_next a.prev:hover::after{ background: #0c6d7d;}
.prev_next .emp a{ opacity: 0.3; pointer-events: none;}


/************************************************************* facility-info ******************************************************************/




/************************************************************* information ******************************************************************/

/*.a_room{ font-size: 18px;}
.a_room .info{ display: flex; justify-content: space-between; margin-bottom: 50px;}
.a_room .info div{ width: calc(80% - 20px);}
.a_room .info .img{ margin: -20px 0 0 10px; width: 20%; min-width: 220px;}
.a_room .info img{ max-width: 100%;}
.r_area,.a_room h3{ font-family: 'KiwiMaru'; color: #007ea6; margin: 0 15px 30px;}
.r_area span{ font-size: 26px; margin: 0 5px 0 15px;}
.a_room h3{ color: #8e8e8e; font-size: 20px; font-weight: 500; padding: 15px 12px 5px; margin: 0 0 20px; border-bottom: 2px solid #d7d7d7;}
.a_room .info li{ margin: 0 0 10px 40px;}
.a_room .flx_photos { margin: 0 -15px;}
.a_room .flx_photos li { flex-grow: 1; margin: 0 max(10px,1.5vw) 20px; width: clamp(150px, calc(100% / 4 - 40px), 212px);}

.wrap_information .bg_grn .inner_cnt2{ background: #ffffff; padding: 30px 4vw; border-radius: 8px; box-sizing: border-box;}
.fee_plan{ display: flex; flex-wrap: wrap; border-top: #d7d7d7 2px solid; font-size: 18px; line-height: 1.5;}
.fee_plan dt,.fee_plan dd{ box-sizing: border-box; border-bottom: #d7d7d7 2px solid; padding: 15px 20px 15px 5px; width: 35%; text-align: right;}
.fee_plan dt:not(:first-child){ font-weight: 600; color: #8c8c8c;}
.fee_plan dt:first-child{ font-family: 'KiwiMaru'; padding: 5px 10px 15px;}
.fee_plan dt:first-child span{ font-size: 26px; margin-left: 15px;}
.fee_plan dd{ padding: 15px; width: 65%; text-align: left;}
.fee_plan dd:first-of-type{ padding: 18px 15px 0;}
.fee_plan dd span{ display: block; font-size: 16px;}
.wrap_information .note{ margin: 10px 0 0; text-align: right;}

.conditions{ border-top: 2px solid #e2e2e2; border-bottom: 2px solid #e2e2e2; padding: 25px 30px 15px; margin-bottom: 5vw;}
.conditions li{ margin: 0 15px 10px; font-size: 18px;}

.list_acc{ display: flex; flex-wrap: wrap; list-style: none; font-size: 18px;}
.list_acc li{ display: inline-block; margin: 0 15px 20px 0; color: #002f81; background: #ffefc5; padding: 8px 15px; border-radius: 6px;}
.list_acc.list2 li{ color: #13397e; background: #ffdd54;}

.flow{ margin-bottom: 5vw; font-size: 18px;}
.flow li{ list-style: none; border: 2px solid #e2e2e2; padding: 20px 35px 5px min(60px,6vw); position: relative; border-radius: 12px; margin-bottom: 45px;}
.flow li:not(:last-of-type)::after{ content:url(/_/img/arr_blu.svg); position: absolute; z-index: 1; width: 36px; left: 25px; bottom: -62px;}
.flow h3{ font-family: 'KiwiMaru'; color: #113668; font-size: 20px; margin: 0 0 15px -25px; font-weight: 500;}
.flow h3 span{ font-size: 24px; margin-right: 10px;}
.flow .img{ position: absolute; z-index: 2; right: 20px; bottom: -15px;}
.flow .img.img2{ right: 10px; bottom: -80px;}
.flow li:first-child p{ max-width: calc(100% - 200px);}

.tel_inline{ display: inline-block; position: relative; font-size: 20px; padding: 5px 5px 5px 28px; color: #000000; margin-bottom: 20px; pointer-events: none;}
.tel_inline::before{ position: absolute; content:url(/_/img/tel.svg); width: 22px; height: 29px; left: 0; top:-1px;}



/************************************************************* contact ******************************************************************/

.wrap_contact h1{ color: #ff9834;}

.contact{ max-width: 920px;}
.contact div{ border: #e4e4e4 3px solid; line-height: 1.5; text-align: center; margin: 4vw auto 2vw; position: relative; min-width: 200px; 
  border-radius: 8px; padding: 2vw 10px;}
.contact h2{ font-size: 22px; color: #777777; margin-bottom: 2vw;}
.contact a{ display: inline-block; pointer-events: none; color: #0051a9; font-weight: 600;
  font-size: clamp(50px, 5.5vw, 60px);  line-height: 1.2; letter-spacing: 0.1em; margin: auto;}

h2.ln_blu{ color: #438da6; margin-bottom: 6vw;}
.ln_blu{ display: flex; align-items: center; font-size: 22px; color: #438da6; margin: 5vw 0;}
.ln_blu::before,.ln_blu::after { background-color: #89b7c7; content: ""; flex-grow: 1;  height: 2px;}
.ln_blu::before { margin-right: 25px;}
.ln_blu::after { margin-left: 25px;}

.form_p { width: calc(100% - 80px); max-width: 1100px; margin: auto; line-height: 1.5;}
.form_p h2{ margin-bottom: 30px;}
.form_p p.required{ font-size: 16px; color: #313131; margin: 0 10% 5px;}
.form_p p.required span,span.required{ color: #d8433b;}
span.required{ vertical-align: super;}

.form_p dl{ display: flex; flex-wrap: wrap; border-top: 2px solid #c7c7c7; border-bottom: 1px solid #c7c7c7; font-size: 17px; line-height: 1.5; 
  margin-bottom: 5vw;}
.form_p dt{ box-sizing: border-box; color: #848484; font-weight: 600; width: 35%; padding: 45px 20px 45px; 
  text-align: center; border-bottom: 1px solid #c7c7c7;}
.form_p dd{ box-sizing: border-box; width: 65%; padding: 45px 0 45px 20px; border-bottom: 1px solid #c7c7c7;}
.form_p:not(.form_confirm) dd:last-child{ padding: 45px 15px 45px 30px;}
.form_confirm dt{ color: #FFBB73; padding: 25px 20px 25px 0;}
.form_confirm dd{ padding: 25px 0 25px 20px;}

.form_p input[type="text"], .form_p input[type="tel"], .form_p input[type="email"], .form_p textarea {
  font-size: 17px; line-height: 1.4; padding: 7px 7px 3px; margin: -7px 5px 0; border: 2px solid #dddddd; max-width: calc(100% - 20px);
  font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";}
.form_p input:focus ,.form_p textarea:focus{ outline: none; background-color: #fffff7;}
.form_p .wid_ss { width: 120px;}
.form_p .wid_s { width: 200px;}
.form_p .wid_l { width: 400px;}
.form_p .wid_ll { width: 500px;}

.form_p .hit_s { height: 100px;}
.form_p .hit_l { height: 150px;}

.form_p .radio{ list-style: none; display: flex; margin-top: -4px;}
.form_p .radio li{ margin-right: 15px; padding-left: 10px;}

.form_p span { display: inline-block; margin-top: -20px;}
.form_p span input[type="text"]{ margin: 10px 7px;}
.form_p .r_mgn{ padding-left: 1em;}

.form_p input[type=checkbox], .form_p input[type=radio] { display: none;}
.form_p input[type=checkbox] + label::before, .form_p input[type=radio]+ label::before {
  font-family: "Font Awesome 5 Free";
  display: inline-block;
  font-size: 22px;
  color: #acacac;
  vertical-align: -2px;
  margin-right: 10px;
}
.form_p input[type=checkbox] + label:before { content: "\f0c8";}
.form_p input[type=checkbox]:checked + label::before {font-weight: bold; content: "\f14a"; color: #438da6;}
.form_p input[type=radio] + label::before { content: "\f111";}
.form_p input[type=radio]:checked + label::before { content: "\f192"; font-weight: 900; color: #04a991;}
.form_p label { cursor: pointer;}

.form_p dd p { margin:-5px auto 10px; line-height: 2; text-indent: -3px;}
.blu_link{ padding: 0 5px; color: #0083AE; border-bottom: 1px solid #0083AE;}

.form_p .submit_btn { display: block; width: 250px; box-sizing: border-box; border-radius: 4px; background: #003572; cursor: pointer;
  color: #ffffff; font-family: 'KiwiMaru'; font-size: 18px; position: relative; padding: 8px 10px 10px 5px; text-align: center;
  margin: auto; line-height: 1.3; z-index: 1; border: none;}
.form_p .submit_btn::after { content: ""; position: absolute; width: 11px; height: 20px; right: 12px; top: 12px; mask-position: top center;
  mask-repeat: no-repeat; mask-size: contain; mask-image: url(/_/img/arrw_gry.svg); background: #ffffff;}


.form_p.form_confirm .submit_btn { margin: 50px auto 30px; }
.form_p .submit_btn:hover{ background: #438da6;}

.form_p .err{ display: none; color: #EA3100; line-height: 1.3; font-weight: 600; margin: 8px 5px 0; font-size: 16px;}

.contact_confirm{ margin-left: max(80px, 12vw); width: min(79vw, 1120px);}
.contact_confirm h2{ color: #438da6; margin-bottom: 15px;}
.contact_confirm p{ margin-bottom: 35px;}

.form_p.form_confirm .form_bk{ padding: 5px 20px; margin: 20px auto 50px; border: 2px solid #d4d4d4; font-family:'KiwiMaru';
  color: #8e8e8e; text-align: center; display: block; width: 180px; border-radius: 4px; font-size: 17px;}
.form_p.form_confirm .form_bk:hover{ color: #ffffff; background-color: #8e8e8e;}

.thanks_p{ padding: 60px 0;}
.thanks_p h2{ color: #438da6; margin-bottom: 30px;}

.thanks_p p{ font-size: 18px; line-height: 1.8; margin-bottom: 40px;}




/************************************************************* plivacy policy ******************************************************************/

.wrap_privacypolicy h1{ color: #2283fd;}
.wrap_privacypolicy p.lead_txt{ font-size: 18px;}

.privacypolicy{ width: calc(100% - 30px); max-width: 1100px; margin: 0 auto 50px; line-height: 1.5;}

.privacypolicy .lead{ padding: 20px 30px 30px; }
.privacypolicy .frm_g{ padding: 0 30px 30px; border: 2px solid #E5E5E5; border-radius: 6px; }

.privacypolicy h2{ color: #7C7C7C; font-size: 20px; margin: 40px 0 10px; text-align: left;}
.privacypolicy h3{ color: #000000; font-size: 18px; font-weight: 500; margin: 20px 0 5px;}
.privacypolicy p{ font-size: 16px; margin-bottom: 10px; word-wrap: break-word;}
.privacypolicy p.pdd_lft{ padding-left: 1.2em;}
.privacypolicy p.note{ padding-left: 1.2em; text-indent: -1.2em; margin-bottom: 0; }

.privacypolicy p span{ display: block; color: #007f9a;}


/************************************************************* topics ******************************************************************/

/*.wrap_topics h1,.wrap_topics .h1{ color: #00bbc7;}
.topics{ margin: 5vw 0;}
.topics ul { list-style: none; border-top: 2px solid #d4d4d4; border-bottom: 2px solid #d4d4d4; line-height: 1.5; font-size: 18px;}
.topics li { padding: 10px;}
.topics li:not(:last-child) { border-bottom: 2px dotted #d4d4d4;}
.topics li a { display: flex; padding: 15px; border-radius: 3px;}
.topics li a .date { color: #27a627; width: 20%; text-align: center;}
.topics li a p { color: #2c2c2c; width: 80%; margin-bottom: 0;}
.topics li a p.important { color: #ef2c2c; font-weight: 600;}
.topics li a:hover{ background: #f8ffee;}

.pagenation{ margin: 50px auto; text-align: center;}
.pagenation span.page-numbers { padding: 3px 10px 5px; border-radius: 3px; color: #fff; background: #0b88a4; position: relative;}
.pagenation a.page-numbers:not(.next):not(.prev) { padding: 3px 10px 1px; margin: 0 5px; background: #00bbc7; border-radius: 3px; color: #fff; 
  border-bottom: 4px solid #0b88a4;}
.pagenation a.page-numbers:not(.next):not(.prev):hover { background: #45D4C9;}

.pagenation .next, .pagenation .prev { position: relative; visibility: hidden;}
.pagenation .next::after, .pagenation .prev::before { visibility: visible; position: absolute; content: ""; width: 12px; height: 20px; right: -10px; top: 2px;
    mask-position: center top; mask-repeat: no-repeat; mask-size: contain; mask-image: url(/_/img/arrw_gry.svg); background: #00bbc7;}
.pagenation .prev::before { transform: rotate(0.5turn); right: unset; left: -10px;}
.pagenation span:first-child::before,.pagenation span:last-child::after{ visibility: visible; position: absolute; content: ""; width: 12px; height: 20px; 
  right: -30px; top: 5px; mask-position: center top; mask-repeat: no-repeat; mask-size: contain; mask-image: url(/_/img/arrw_gry.svg); background: #E0E0E0;}
.pagenation span:first-child::before{ transform: rotate(0.5turn); right: unset; left: -30px;}


.topi_sngl{ padding-bottom: 5vw;}
.wrap_topics .topi_sngl h1{ color: #5a5a5a; border-top: 2px solid #bbbbbb; border-bottom: 2px solid #bbbbbb; padding: 30px; 
  margin-bottom: 5px; font-size: 26px; font-family: 'KiwiMaru'; font-weight: 500;}
.topi_sngl .date{ color: #27a627; text-align: right; padding: 0 15px;}
.topi_sngl .cont{ font-size: 18px; padding: 15px; border-bottom: 2px solid #bbbbbb; margin-bottom: 30px;}

.topi_sngl .prev_next{ display: flex; justify-content: space-between;}
.topi_sngl .prev_next a { display: inline-block; padding: 2px 5px; position: relative; color: #595959; font-size: 16px;}
.topi_sngl .prev_next a:hover{ color: #00bbc7;}
.topi_sngl .prev_next a.next { padding: 2px 5px 2px 15px;}
.topi_sngl .prev_next a.prev { padding: 2px 15px 2px 5px;}
.topi_sngl .prev_next a.next::after { content: ""; position: absolute; top: 2px; left: 0; width: 7px; height: 13px; background: #9f9f9f;
  transform: rotateY(180deg); mask-position: top center; mask-repeat: no-repeat; mask-size: cover; 
  mask-image: url(/_/img/arrw_gry.svg);}
.topi_sngl .prev_next a.prev::after { content: ""; position: absolute; top: 2px; right: 0; width: 7px; height: 13px;
  mask-position: top center; mask-repeat: no-repeat; mask-size: cover; mask-image: url(/_/img/arrw_gry.svg); background: #9f9f9f;}
.topi_sngl .prev_next a:hover::after{ background: #00bbc7;}

.topi_sngl .prev_next .emp a { pointer-events: none; color: #e0e0e0;}
.topi_sngl .prev_next .emp a::after { background: #e0e0e0;}

/************************************************************* 404 ******************************************************************/

.p404{ padding-bottom: 30px;}
.p404 h2{ font-size: 24px; margin-bottom: 20px;}
.p404 p{ line-height: 1.6; font-size: 18px; margin-bottom: 30px;}

.p404 .a{margin: 50px auto;}


/****************************************************************************************************************************************/



/********************************************************* w < 1024 *********************************************************************/

@media screen and (max-width: 1023px) {
  
  .inner_cnt,.inner_cnt2{ width: calc(100% - 40px);}
  
  .nav .logo { width: 400px; margin: max(10px,1.2vw) 0;}
  .t_top{ padding: 70px 10px 20px; justify-content: space-between;}
  
  .t_top .text .matrix { left: 0; transform: none; right: unset;}
  
  .excp_top { margin-top: 80px;}
  .pg_head { padding: 40px 0 0; min-height: 160px;}
  .pg_head h1.index::after,.pg_head h2::after { bottom: -50px;}
  .topi_index .top,.topi_ttl,.topi_sngl,.topi_index2{ margin: -45px auto 0; width: calc(100% - 80px); padding: 30px 20px 0; min-height: 60px;}
  .topi_index .top{ margin: 35px auto 0; padding: 10px 20px 0; min-height: 5px;}
  .topi_sngl,.topi_index2 { margin: -10px auto 50px; padding: 20px 20px 30px;}
  .topi_index2 { padding: 10px 20px;}
  .topi_sngl .cont { padding: 30px 20px 10px;}
  
  .topi_index2 li { padding: 0 0 5px;}
  .topi_index2 a { padding: 15px;}
  .prev_next { padding: 15px 5px 5px;}
  
  /************************************************************ top page *************************************************************/
  
  
  
/************************************************************ excepting top *************************************************************/
 
  
/************************************************************* about ******************************************************************/

 
  
/************************************************************* medical ******************************************************************/


/************************************************************* facility ******************************************************************/
  


  
  /************************************************************* contact ******************************************************************/

  .frm_g.contact { padding: 40px 0 30px; margin: 0 auto 30px;}
  
  .form_p p.required{ font-size: 16px; color: #313131; margin: 0 30px 5px;}
  .form_p dt { width: 30%;}
  .form_p dd { width: 70%;}
  
  .thanks_p .h2 { font-size: 27px; margin: 10px 0 30px;}
  
 
  
  
  /************************************************************* topics ******************************************************************/

  .frm_g.topics{ padding: 20px;}
  
  /************************************************************* 404 ******************************************************************/
  
  .pa404 p { font-size: 16px;}
  
  
}



/**************************************************************************************************************************************/
/********************************************************** sp (w < 744) **************************************************************/

@media screen and (max-width: 743px) {
  .page_top{ display: none;}
  
  .sp_only{ display: inherit;}
  .pc_only{ display: none;}
  
  .nav .logo { width:340px;}
  
  .sp_nav .nav_ico { width: 70px; height: 69px; padding-top: 15px; right: 5px;}
  
  .sp_nav.nav_ico_scl .nav_ico { padding-top: 20px;}
  /*.sp_nav .nav_ico ,.sp_nav .nav_ico.nav_ico_scl { top: 4px; right: 8px;}*/
  
  footer .inner_cnt { display: block;}
  footer .tel{ pointer-events: auto;}
  
  /************************************************************ teaser top page *************************************************************/
  
  .t_top { display: block;}
  .t_top .text { width: 100%; padding: 10px 10px 0; box-sizing: border-box;}
  .t_top .text .matrix{ width: 100%; position: static; transform: none; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;}
  .matrix p{ width: clamp(240px,calc(50% - 10px),320px); margin: 15px 35px 0 0;}
  .matrix div{ width: max(320px,calc(47% - 10px)); margin: 15px 0 0;}
  .matrix div p{ width: auto; display: inline-block; line-height: 1; margin:0 0 5px;}
  .t_top .text a { margin: 10px 0;}
  
  .t_top .text .day_nairan { width: clamp(240px,100%,320px); margin: 0 0 5px;}
  .t_top .text span { font-size: clamp(50px,8.2vw,60px); display: inline;}
  .matrix p img, .matrix p span { opacity: 1; transform: matrix(1, 0, 0, 1, 0, 0); animation: none;}
  .matrix a{ opacity: 1; animation: none;}
  
  .t_top .img { width: calc(100% - 10px); margin: auto; height: clamp(440px,100vw,500px);}
  .t_top .img div{ width: clamp(550px,85vw,730px);  filter: blur(0); opacity: 1; animation: none;}
  
  .teaser h2 { margin-bottom: 45px;}
  
  
 /************************************************************ excepting top *************************************************************/
  
  .excp_top { margin-top: 70px;}
  .pg_head { padding: 25px 0 0;}
  
  .topi_index2 a { display: block; padding: 10px;}
  .topi_index2 a span { display: inline-block; margin: 0 0 5px 0;}
  
  .topi_ttl .date { padding: 0 5px 5px;}
  .topi_ttl h1 { padding: 0 5px; font-size: 32px; line-height: 1.2;}
  .topi_sngl .cont { padding: 25px 5px 0;}
  
  
  /************************************************************ top page *************************************************************/
  
  /*.top_head { min-width: unset; min-height: unset; width: 100%; aspect-ratio: 1 / 1; margin-top: -5vw;}
  
  .top_head .photo { width: 95%; top: 12%;}
  .top_head .photo img { width: 100%;}
  .top_visual{ background: url(/_/img/top_img_sp.png?20240910) no-repeat; background-size: contain; background-position: top center;}
  
  .top_copy_text{ left: 18%; bottom: 12%; top: auto; transform: none;}
  .top_copy_text p{ font-size:clamp(16px, 3.5vw, 24px);}
  
  .top_topics { width: calc(100% - 40px); margin: -8vw auto 30px; min-height: 110px;}
  .top_topics h2 { font-size: 18px;}
  .top_topics li,.topics li{ padding: 5px;}
  .top_topics li a,.topics li a{ padding: 10px; display: block;}
  .top_topics li p,.topics li p{ width: 100%;}
  .top_topics li span,.topics li span{ font-size: 14px;}
  
  .top_topics .to_topics::before { width: calc(100% - 130px);}
  .top_topics .to_topics a { margin-right: 0;}
  
  .top_cnt h2,.excp_top h2{ font-size: 20px;}
  .top_about { padding: 80px 20px 160px; margin-bottom: 60px;}
  .top_about::after { left: unset; right: 5%; bottom: calc(-120px + 12vw);}
  .top_medical { padding: 0 20px 160px;}
  .top_medical::after { left: 3%; bottom: -20px; transform: none;}
  .top_medical div{ display: block;}
  .top_medical div .btn_b:first-child{ margin-bottom: 30px;}
  
  .top_menu ul { display: block; padding: 0 8px; max-width: 500px;}
  .top_menu li { width: 100%; padding: 15px 10px;}
  .top_menu li:not(:last-child) { border-right: none; border-bottom: 3px solid #DCDCDC;}
  .top_menu li a { padding: 10px 5px;}
  .top_menu li a div { width: 100%; max-width: 330px; margin: auto;}
  
  .top_foundation { padding: 20px 20px 60px;}
  
  

/************************************************************* access ******************************************************************/
  
 
  
  /************************************************************* contact ******************************************************************/
  
  /*.contact { width: calc(100% - 60px); margin: 0 auto 60px;}
  .contact a {pointer-events: auto; font-size: 40px; padding-left: 15px;}
  .contact a::before { width: 40px; left: -45px; top: -15px;}
  
  .form_p { width: calc(100% - 60px);}
  .form_p p.required,.form_p.form_entry p.required { margin: 0 20px 5px;}
  .form_p dl { display: block;}
  .form_p dt { width: 100%; text-align: left; padding: 20px 25px 0; border-bottom: none;}
  .form_p dd { width: 100%; padding: 15px 20px 20px; }
  .form_p:not(.form_confirm) dd:last-child { padding: 15px 20px 20px 30px;}
  
  .contact_confirm p{ text-align: left;}
  .form_p.form_confirm dt { padding: 20px 20px 0;}
  .form_p.form_confirm dd { padding: 10px 20px 20px 25px;}
  
  .thanks_p p { font-size: 17px; width: calc(100% - 80px); margin: 0 auto 40px; text-align: left;}
  
  /************************************************************* plivacy policy ******************************************************************/
  /*.privacypolicy div{ padding: 0 20px;}
  .privacypolicy div.lead{ padding: 0 20px 30px; margin-bottom: 20px;}
  
  
  
  /************************************************************* topics ******************************************************************/
  
  
  /************************************************************* 404 ******************************************************************/ 
  
  .head_404 { height: 55vw;}
  .txt404 { width: 80vw; min-width: unset; left: 30px; top: auto; bottom: 0;}
  .pa404 { margin: 20px auto 50px; width: calc(100% - 60px);}
}

/**************************************************************************************************************************************/
/********************************************************** sp (w < 430) **************************************************************/
@media screen and (max-width: 430px) {
  
  
  .inner_cnt { width: calc(100% - 20px);}
  
  .t_top .text .day_nairan { margin: 15px 0 5px;}
  .teaser .outline .inner_cnt { margin-top: -60px;}
  .teaser .outline dl{ display: block; font-size: 16px;}
  .teaser .outline dt{ width: 100%; padding: 5px 5px 0; text-align: left;}
  .teaser .outline dt:not(:last-child){ border-bottom: none;}
  .teaser .outline dd{ width: 100%; padding: 0 10px 5px;}

  .topi_index .top,.topi_ttl,.topi_sngl,.topi_index2{ width: calc(100% - 50px); padding: 20px 10px 0;}
  .topi_index2 { padding: 5px 10px;}
  .topi_sngl { padding: 20px 10px 10px;}
  .topi_ttl h1 { font-size: 28px;}
  .topi_sngl .cont { padding: 15px 5px 0;}
  .prev_next { padding: 15px 0 5px; font-size: 15px; margin: 0 -5px; }
  .prev_next a.next { padding-left: 12px;}
  .prev_next a.prev { padding-right: 12px;}
  .prev_next a.next::before, .prev_next a.prev::after { top: 3.5px; height: 12px;}
  /*
  .nav .logo { width: 140px; margin: 6px 0 4px;}
  .nav .menu2 li:first-child a { width: 100px; height: 70px; font-size: 16px; padding-top: 35px;}
  
  .nav.narrow { height: 45px;}
  .nav.narrow .logo { width: 120px; height: 30px;}
  .nav.narrow .menu2 { top: -20px;}
  
  .sp_nav .nav_ico { width: 60px; height: 60px; padding-top: 10px; right: 10px;}
  .sp_nav.nav_ico_scl { top: -10px; }
  .sp_nav.nav_ico_scl .nav_ico { padding-top: 10px; }
  
  .top_copy_text { left: 12vw; }
  .top_topics li { padding: 5px 0;}
  .top_cnt h2,.excp_top h2 { font-size: 18px;}
  .top_cnt p { font-size: 16px; line-height: 1.6;}
  .top_menu p { font-size: 18px; }
  
  
  /************************************************************ excepting top *************************************************************/

  
  
/************************************************************* facility ******************************************************************/




/************************************************************* access ******************************************************************/

  
  /************************************************************* contact ******************************************************************/
  
  /*.contact { width: calc(100% - 30px); margin: 0 auto 40px;}
  .contact h2 { margin: 30px auto 10px;}
  .contact a { font-size: 30px;}
  .contact a::before { width: 30px; left: -30px; top: -23px;}
  
  .form_p { width: calc(100% - 30px);}
  .form_p p.required,.form_p.form_entry p.required { margin: 0 10px 5px;}
  .form_p dl { font-size: 16px;}
  .form_p dt { padding: 15px 15px 0;}
  .form_p dd { padding: 15px 10px 20px;}
  .form_p:not(.form_confirm) dd:last-child { padding: 15px 10px 20px 15px;}
  
  .form_p .submit_btn { margin: 30px auto 60px;}
  .form_p.form_confirm .submit_btn{ margin: 30px auto 0;}
  
  .contact_confirm h2 { margin: 0 auto 20px;}
  .form_p.form_confirm dt { padding: 15px 15px 0;}
  .form_p.form_confirm dd { padding: 10px 15px 10px 20px;}
  
  .thanks_p .h2 { font-size: 24px;}
  .thanks_p p { font-size: 16px; line-height: 1.6; width: calc(100% - 60px);}
  
  /************************************************************* topics ******************************************************************/
  
  /*.topics { padding: 0 10px 150px;}
  .topi_sngl{ padding: 0 10px 180px;}
  .topi_sngl h1 { font-size: 20px;}
  
  
  .pa404 p { text-align: left;}
  
 /************************************************************* plivacy policy ******************************************************************/
  /*.privacypolicy div{ padding: 0 5px;}
  .privacypolicy div.lead{ padding: 0 5px 30px; margin-bottom: 20px;}
  
}
