
* {
	margin: 0;
	padding: 0;
	-webkit-appearance: none;
}

html {
	width: 100%;
	height: 100%;
}

body {
	float: left;
	font-size :100%;
	font-family: "Folk Medium", "ヒラギノ丸ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "Mplus 1p", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	line-height :160%;
	width: 100%;
	text-align: left;
	color: #45485a;
	overflow-x: hidden;
	font-size: 80%\9;
	position: relative;
	-webkit-print-color-adjust: exact;
	-webkit-overflow-scrolling: touch
}

body#application {
	padding: 50px 0;
}

#emergencyAnnounceWrapper {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2000;
	background: rgba(255,255,255,.9);
}

#emergencyAnnounceContent {
	position: absolute;
	padding: 50px;
	box-sizing: border-box;
	border: 1px dotted #575555;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
}

#emergencyAnnounceContent h1 {
	float: left;
	width: 100%;
	margin-bottom: 20px;
}

#emergencyAnnounceContent a {
	font-weight: bold;
	font-size: 1.2rem;
	color: #e171a3;
}

#topAnnounce {
	margin: 80px auto 0;
	width: 800px;
	display: flex;
	flex-wrap: wrap;
	padding: 20px;
	box-sizing: border-box;
	background: rgba(255,255,255,.9);
	box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.35);
}

#topAnnounce h1 {
	margin: 0 0 20px 0;
}

#topAnnounce img {
	float: left;
	width: 40%;
}

.top_announce_content {
	width: 60%;
	padding: 20px;
	box-sizing: border-box;
}

input, button, textarea, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input {
	outline: none!important;
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}

img {
	display: block;
	vertical-align: bottom;
	border-style: none;
	max-width: 100%;
	height: auto;
}

.fas,
.far {
	margin-right:5px;
}

.fb {
	font-weight: bold;
}

.mbs {
	display: none;
}


.f60 {
	font-size: 60%;
}

.f80 {
	font-size: 80%;
}

.f120 {
	font-size: 120%;
}

.fs85r {
	font-size: .85rem;
}

.fs12r {
	font-size: 1.2rem;
}

.highlight {
	font-size: 1.2rem;
	font-weight: bold;
}

li {
	list-style-type: none;
}	

a {
	text-decoration: none;

}

a:focus {
	outline: none;
}

a:hover {
	color: #45485a;
}

.n {
	display: none;
}

.l {
	float: left;
}

.r {
	float: right;
}

.clearfix:after { 
	content: " ";  
	display: block; 
	visibility: hidden; 
	clear: both; 
	height: 0.1px; 
	font-size: 0.1em; 
	line-height: 0; 
} 

.w34 {
	width: 34%;
}

.w49 {
	width: 49%;
}

.w50 {
	width: 50%;
}

.w60 {
	width: 60%;
}

.w80 {
	width: 80%;
}

.w100 {
	width: 100%;
}

.half {
	width: 49%;
}

.pw48 {
	width: 48%;
}

.mgt10 {
	margin-top: 10px;
}

.taC {
	text-align: center;
}

.flex {
	display:flex;
	align-items: stretch;
}

.flexw {
	flex-wrap: wrap;
}

.flexjc {
	justify-content: center;
}

.flexjb {
	justify-content: space-between;
}

.dib {
	display: inline-block;
}

.table {
	border-collapse:collapse;
}

.table th {
	padding: 10px;
	box-sizing: border-box;
	border-bottom: 1px solid #FFF;

}

.table td {
	padding: 10px;
	box-sizing: border-box;
	border-bottom: 1px solid #CCC;
}

#wrapper {
	position: relative;
}

#content-upper {
	background: url(images/ffh_web_main.png) no-repeat;
	background-size: cover;
	background-position: 0;
	width: 100vw;
	height: 100vh;
	position: relative;
	z-index: 100;
}


#topAnnounceBox {
	position: absolute;
	top: 240px;
	left: calc(50% - 270px);
	padding: 20px;
	box-sizing: border-box;
	background: rgba(255,255,255,.9);
	z-index: 500;
}

.announceA {
	display: block;
	float: left;
	width: 500px;
	margin: 0 auto;
	border-top: 4px double #333;
	border-bottom: 4px double #333;
	padding: 10px;
	box-sizing: border-box;
}

.announce_date {
	float: left;
	background: #F00;
	color: #FFF;
	padding: 0 2px;
	margin: 0 0 10px 0;
}

#topAnnounceBox a {
	color: #333;
}

#introduction-page #content-upper {
	background: url(images/head_img_01.png) no-repeat;
	background-size: cover;
	background-position: 0;
	width: 100vw;
	height: auto;
	position: relative;
}

#house-page #content-upper {
	background: url(images/head_img_02.png) no-repeat;
	background-size: cover;
	background-position: 0;
	width: 100vw;
	height: auto;
	position: relative;
}

#donation-page #content-upper,
#contact-page #content-upper {
	background: url(images/head_img_03.png) no-repeat;
	background-size: cover;
	background-position: 0;
	width: 100vw;
	height: auto;
	position: relative;
}

.donation_iframe_wrapper {
	display: flex;
	padding: 50px 0;
}

.donation_iframe {
	box-shadow: 0px 0px 5px rgba(77,102,102,.2);
}

.donation_ul {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}


.donation_ul li {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.donation_ul li:last-child {
	margin-top: 20px;
}

.donation_ul li h3 {
	width: 100%;
}

.donation_note {
	padding: 20px 0;
	width: 100%;
	display: flex;
	justify-content: space-between;
	flex-direction : row-reverse;
}


.donation_note p {
	width: 58%;
	padding: 10px;
	box-sizing: border-box;
}


.donation_note li:last-child {
	margin: 40px 0 0 0;
	width: 100%;
}

.bank_transfer_note {
	width: 100%;
	margin: 20px 0 0 0;
}

.amazon_list {
	margin: 50px 0 0 0;
}

.amazon_link {
	display: block;
	width: 100%;
	background: linear-gradient(95.98deg, #DE478D 14.71%, #DE478D 91.59%);
	color: #FFF;
	font-weight: bold;
	font-size: 1.1rem;
	text-align: center;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 10px;
	margin: 20px 0;
}

.hQlGGM .iframe-img,
.hQlGGM .iframe-content {
	border: none;
}

#top-page #site-title {
	clear: left;
	display: block;
	width: 270px;
	margin: 10px auto;
}

#top-page #site-title h1 {
	color: rgb(255,113,163);
	font-size: 120%;
	margin: 10px 0 0 0;
}


.desktop #top-site-title {
	display: none;
}

#logo {
	display: inline-block;
	width:100px;
	height: auto;
	z-index: 700;
	position: relative;
}

.page #logo,
#top-site-title #logo {
	width:40px;
	float: left;
}

.page #site-title,
#top-site-title {
	float: left;
	margin: 5px 0 0 20px;
}

#top-page #site-title h1 {
	width: 100%;
}

.page #site-title h1,
#top-site-title h1 {
	width: 200px;
	margin: 5px 0 0 10px;
}

.container {
	width: 1200px;
}

.page #main-nav {
	position: fixed !important;
	top: 0;
	max-height: 64px;
	z-index: 1000;
	background: rgba(255,255,255,.9);
}

.desktop #top-page #main-nav {
	position: absolute;
	bottom: 0;
	background: rgba(255,255,255,.9);
	z-index: 5000;

}

.logo_img {
	float: left;
}

#top-page #main-nav-ul {
	width: 1200px;
	margin: 0 auto;
}

.page #main-nav-ul {
	float: right;
	margin: 5px 0 0 0;
	width: 1200px;
}

#main-nav-ul li {
	width: 20%;
	position: relative;
}

#main-nav-ul li:after {
	content: "";
	display: block;
	position: absolute;
	height: 50%;
	right: 0;
	top: 25%;
	border-right: 2px dotted #45485a;
}

#main-nav-ul li:last-child:after {
	border-right: none;
}

#main-nav-ul a {
	font-family: "Folk Medium";
	display: block;
	text-align: center;
	width: 100%;
	padding: 20px 10px;
	box-sizing: border-box;
	color: #45485a;
	font-weight: bold;
}

.lower_contents {
	margin: 0 auto;
}

#service-description {
	margin: 80px 0;
	font-size: 120%;
	line-height: 180%;
	text-align: center;
}

#content-upper .movies {
	display: flex;
	flex-wrap: wrap;
	width: 20%;
	position: absolute;
	top: 15%;
	right: 2%;
}

.movies iframe {
	width: 100%;
	height: 210px;
}

.movies iframe:nth-of-type(2),
.movies iframe:nth-of-type(3) {
	margin-top: 10px;
}


#house-section img {
	width: 100%;
}

#house-section dd {
	text-align: right;
	font-size: 90%;
}

.bb {
	border-bottom: 1px solid #45485a;
}

.room_supplies {
	margin: 30px 0;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.section_h1 {
	margin: 50px 0;
}


#flow-ul,
#calendar-ul {
	display:flex;
	align-items: stretch;
	justify-content: space-between;
}

#flow-ul>li {
	width: 30%;
	font-size: 90%;
}

#calendar-ul>li  {
	width: 49%;
	font-size: 90%;
}

.reservation_unacceptable_announce {
	width: 100%;
	text-align: center;
}

.vacancy_note {
	display: block;
	font-weight: bold;
	text-align: center;
	margin: 0 0 60px 0;
}

.no_vacancy + label:hover {
	cursor: not-allowed;
}

.no_vacancy_note {
	text-align: center;
	margin: 0 0 60px 0;
}
.no_vacancy_button {
	display: inline-block;
	background:rgba(255,59,59,1);
	color: #FFF;
	padding: 10px;
	box-sizing: border-box;
	margin: 0 auto;
}

#flow-ul>li:nth-child(2) .flow_note,
#flow-ul>li:nth-child(3) .flow_note  {
	padding: .75em 0;
}

.flow_note {
	border-top: 1px solid #45485a;
	border-bottom: 1px solid #45485a;
}

#flow-ul>li dt {
	font-size: 200%;
	font-weight: bold;
}

.flow_img_wrapper {
	height: 130px;
	margin: 30px 0;
}

#flow-ul img {
	width: auto;
	display: inline-block;
	padding: 0 20%;
	box-sizing: border-box;
}

.flow_img_03 {
	padding: 0 15% !important;
}

.fcR {
	color: #e171a3;
	font-weight: bold;
}

.calendar {
  border-collapse: collapse;

  border-width:1px;
  margin:10px auto 0 auto;
  padding:0;
  /* ボーダーを内側に引く */
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
}


.calendar label {
	float: left;
	width: 100%;
	padding: 10px;
	text-align: center;
	box-sizing: border-box;
	font-size: 200%;
} 

tr {
	  height:40px;
	  width:100%;
}
 
td.week {
	  border-style:solid;
	  border-width:0 2px 0 0;
	  padding:0;
	  text-align: center;
	  vertical-align: middle;
	  background: #3BA85A;
	  color: #FFF;
	  width: calc( 100% / 7 );
}
 
td.week:last-child {
  border:none;
}
 
td.day {
	  border-style:solid;
	  border-width:2px 2px 0 0;
	  padding:0;
	  text-align: center;
	  vertical-align: middle;
	position: relative;
}
 
td.day:last-child {
	  border-style:solid;
	  border-width:2px 0 0 0;
}
 
td.no-day {
	  background: rgba(77, 102, 102, .5);
	  border-style:solid;
	  border-width:2px 2px 0 0;
	  opacity:0.2;
	  padding:0;
	  text-align: center;
	  vertical-align: middle;
 }
 
td.no-day:last-child {
	border-width:  2px 0 0 0;
}

.days {
	border-top: 1px solid #45485a;
	border-bottom: 1px solid #45485a;
}

.reserved {
	background: #F6C;
	color: #FFF;
}

	
.input_choice_ul {
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin: 60px 0;
}

.input_choice_ul li {
	width: 49%;
	background: rgba(0, 0, 0, 0.35);
	color: #f3f3f3;
	padding: 20px 0;
	text-align: center;
	font-weight: bold;
}

.input_choice_ul li.current_li {
	background: #3BA85A;
	box-shadow:0 5px 0 #0d7c2c;
}

.input_choice_ul li:hover {
	cursor: pointer;
}


.input_choice_ul li,
.input_choice_ul li:active {
	background: rgba(0, 0, 0, 0.35);
	box-shadow:0 5px 0 rgba(0, 0, 0, 0.55);
	font-size:95%;
	display:block;
	padding:10px;
	box-sizing: border-box;
	color:#fff;
	text-align:center;
	text-decoration: none;
	font-weight: bold;
}

.input_choice_ul li:hover {
	background: #3BA85A;
	-webkit-transform: translate3d(0px, 5px, 1px);
	-moz-transform: translate3d(0px, 5px, 1px);
	transform: translate3d(0px, 5px, 1px);
	box-shadow:none;
}


.form_table {
	margin: 20px auto 0;
	width: 80%;
	border-spacing: 0;
}

.form_table .radio_ul input {
	border: none;
  }
  
.form_table .radio_ul :checked+label:only-of-type {
	background: none;
	color: #000;
}

.form_table .radio_ul label {
	cursor: pointer;
	padding-left: 40px;
	position: relative;
  }
  
  
  .form_table .radio_ul label::before,
  .form_table .radio_ul label::after {
	content: "";
	display: block; 
	position: absolute;
  }
  
  .form_table .radio_ul label::before {
	background-color: #fff;
	border-radius: 0%;
	border: 1px solid #ddd;
	width: 20px;
	height: 20px;
	transform: translateY(-50%);
	top: 50%;
	left: 5px;
  }
  
  .form_table .radio_ul label::after {
	border-bottom: 3px solid #3BA85A;
	border-left: 3px solid #3BA85A;
	opacity: 0;
	height: 5px;
	width: 10px;
	transform: rotate(-45deg);
	top: 7px;
	left: 10px;
  }
  
  .form_table .radio_ul input:checked + label::after {
	opacity: 1;
  }


/* .form_table:before {
	position: absolute;
	content:"";
	display: block;
	width: 80%;
	border-top: 4px double #45485a;
	left: 10%;
	top: -30px;
} */


#contact-page .form_table:before {
	border-top: none;
}

.form_table th {
	width: 25%;
	padding: 10px 5px;;
	box-sizing: border-box;
	background: #3BA85A;
	color: #FFF;
	text-align: center;
	border-bottom: 1px solid #FFF;
	position: relative;
}

.require {
	position: absolute;
    top: 50%;
	right: 10px;
    transform: translate(0, -55%);
    -webkit-transform: translate(0, -55%);
    -ms-transform: translate(0, -55%);
	background: rgba(224, 34, 0, 1);
	color: #FFF;
	font-size: .6rem;
	padding: 2px 5px;
	box-sizing: border-box;
	border-radius: 5px;
}

.form_table td {
	width: 75%;
	padding: 10px 0 10px 80px;
}



.form_table td span {
	margin: 0 10px 0 0;
}


/*.form_table td input:not(#child-age) {
	width: 100%;
}*/

input#childAge,
input#numberAdult,
input#numberChild {
	width: 3em;
}

.unit_str_after {
	margin-top: .5em !important;
	margin-left: 10px !important;
}

.unit_str_before {
	margin-top: .5em !important;
}

th {
	background: #CCC;
}

tr:empty {
	display: none;
}

.input_title {
	width: 100%;
}


.form_table input,
.form_table textarea {
	float: left;
	max-width: 100%;
	padding: 5px;
	box-sizing: border-box;
	font-size: 200%;
	border: 1px solid #666;
	border-radius: 4px;
}

.form_table textarea {
	font-size: 150%;
}

.pref_id {
	padding: 5px;
	font-size: 200%;
}

#prefId {

  /* styling */
  background-color: white;
  border-radius: 4px;
  display: inline-block;
  font: inherit;
  line-height: 1.5em;
  padding: 0.5em 3.5em 0.5em 1em;

  /* reset */

  margin: 0;      
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
}


/* arrows */

#prefId {
  background-image:
    linear-gradient(45deg, transparent 50%, #FFF 50%),
    linear-gradient(135deg, #FFF 50%, transparent 50%),
    linear-gradient(to right, #3BA85A, #3BA85A);
  background-position:
    calc(100% - 20px) calc(1em + 2px),
    calc(100% - 15px) calc(1em + 2px),
    100% 0;
  background-size:
    5px 5px,
    5px 5px,
    2.5em 2.5em;
  background-repeat: no-repeat;
}

#prefId:focus {
  background-image:
    linear-gradient(45deg, #3BA85A 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #3BA85A 50%),
    linear-gradient(to right, #FFF, #FFF);
  background-position:
    calc(100% - 15px) 1em,
    calc(100% - 20px) 1em,
    100% 0;
  background-size:
    5px 5px,
    5px 5px,
    2.5em 2.5em;
  background-repeat: no-repeat;
  border-color: grey;
  outline: 0;
}


.messagebox {
	width: 100%;
	height: 100px;
	float: left;
	padding: 10px;
	font-size: 1.1rem;
	box-sizing:border-box;
}

.submitbutton {
	display: block;
	padding: 10px 0;
	box-sizing: border-box;
	width: 80%;
	background: #3BA85A;
	color: #FFF;
	font-weight: bold;
	text-align: center;
	margin: 40px auto 0;
	border: none;
	font-size:150%;

}



label{
    cursor:pointer;
}

-webkit-appearance: none;

input:checked {
	display: none;  
}

input[type="checkbox" i] {
	display: none;  
}

:checked+label:only-of-type  {
	background: rgba(247,102,102);
	color: #FFF;
}

.disable_choice{
	background: rgba(77,102,102,.5);
}

.disable_choice {
	opacity: .2;
}

.validation_error {
	float: left;
	margin: 5px !important;
	color: #FFF;
	padding: 2px 5px;
	border-radius: 5px;
	background: rgba(224, 34, 0, 1);
}


#footer {
	margin: 60px 0 0 0;
	background: rgba(211,211,211,.8);
	padding: 60px 0;
}

#foot-contents {
	margin: 0 auto;
}

.address {
	width: 500px;
}

.address dl {
	margin: 20px 0 0 0;
}

.address dt {
	font-weight: bold;
}


.address dd {
	border-bottom: 1px solid #45485a;
	margin: 0 0 10px 0;
}

.fb-page {
	float: right;
	width: 500px;
}

.page #content-upper {
	height: 200px !important;
	z-index: 100;
}

#newsWrapper {
	display: flex;
	width: 860px;
	margin: 60px auto 0;
	box-sizing: border-box;
	flex-wrap: wrap;
}

/* #newsWrapper::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
	height: 100%;
	background-image:
	radial-gradient(#FFF 1px, transparent 1px);
	background-size: 3px 3px;
	z-index: -1;
} */

#newsWrapper h2 {
	width: 100%;
	text-align: center;
	font-size: 1.2rem;
	color: #e171a3;
	margin-bottom: 30px;
	font-size: 1.4rem;
}

.news_list {
	display: flex;
	width: 100%;
	flex-wrap: wrap;
	border: 1px solid #e171a3;
	padding: 10px;
	box-sizing: border-box;
}

.news_list li {
	width: 100%;
	margin: 4px 0;
	box-sizing: border-box;
}

.news_list li a {
	display: flex;
	width: 100%;
	height :100%;
	align-items: center;
}

.news_date {
	padding: 2px 5px;
	box-sizing: border-box;
	background: #e171a3;
	color: #FFF;
	font-size: .8rem;
}

.news_list li a p {
	padding: 3px 10px;
	font-size: .94rem;
	box-sizing: border-box;
	color: #e171a3;
}

.news_list.current_nL {
	display: block;
	animation: fadein .5s ease-out forwards;
}

  
@keyframes fadein {
	0% {
		opacity: 0
	}
	100% {
		opacity: 1
	}
}

.news_list:not(.current_nL) {
	display: none;
}

#newsListNav {
	margin: 40px 0 0 0;
	width: 100%;
}

#newsListNav ul {
	width: 100%;
	display: flex;
	justify-content: center;
}

#newsListNav li {
	padding: 4px 10px;
	box-sizing: border-box;
	border: 1px solid #e171a3;
	color: #e171a3;
	margin: 0 10px;
	text-align: center;
}

#newsListNav li.current_nL_nav {
	background: #e171a3;
	color: #FFF;
	font-weight: bold;
}

#newsListNav li:hover {
	cursor: pointer;
}

.page_article {
	padding: 40px 20%;
	display: flex;
	flex-wrap: wrap;
}

#gc-page .page_article {
	padding: 40px 0;
}

.page_article section {
	display: flex;
	flex-wrap: wrap;
}

img{
	-webkit-backface-visibility: hidden;
	image-rendering: -webkit-optimize-contrast;
}

.page_article .page_note {
	margin: 40px 0;
}


#top-page .donation_announce {
	margin: 60px 0 40px 0;
}

.donation_announce {
	margin: 80px 0;
	padding: 40px 0;
	font-size: 120%;
	line-height: 180%;
	background: #e171a3;
	color: #FFF;
	font-weight: bold;
}

.donation_announce:hover {
	color: #FFF;
	text-shadow: #FFF 1px 0 10px;;
}

.page_note dt {
	float: left;
	padding: 20px 0 0 0;
	width: 28%;
	margin: 0 1% 0 0;
	border-bottom: 1px solid #45485a;
}

.page_note dd {
	float: left;
	width: 70%;
	padding: 20px 0 0 0;
	border-bottom: 1px solid #45485a;
}

.page_note dt:first-child,
.page_note dd:nth-child(2){
	padding-top: 0;
}

.page #house-section {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 60px 0 0 0;
}

#house-page .page_note dt {
	float: left;
	font-weight: bold;
}

.house_note {
	margin: 10px 0;
	padding: 20px;
	box-sizing: border-box;
	border-top: 1px solid #45485a;
	border-bottom: 1px solid #45485a;
	min-height: 170px;
}


#history h2 {
	margin: 40px 0 20px 0;
}

#history dl a {
	color:#00ACB4;
}

.room_img_ul {
	display:flex;
	align-items: stretch;
	justify-content: flex-start;
	flex-wrap: wrap;
}

.room_img_ul li {
	width: 180px;
	height: auto;
	overflow: hidden;
	margin: 0 18px 18px 0;
}

.room_img_ul li:nth-child(3n) {
	margin-right: 0;
}

#npoInfoSection {
	margin: 80px 0 20px 0;
}

#npoInfoSection a {
	font-size: 1.5rem;
	display: block;
	width: 100%;
	margin: 40px 0;
}

.checkbox04-input{
  display: none;
}

.checkbox04-parts{
  position: relative;
  padding: 15px 20px 15px 53px;
  transition:.3s;
  color: #444;
  border-radius: 8px;
  border: 1px solid #ddd;
  display:inline-block;
  line-height:1;
  z-index: 0;
}

.checkbox04-input:checked + .checkbox04-parts{
  background: #3BA85A;
  color: #fff;
  border: 1px solid #3BA85A;
}

.checkbox04-parts::before{
  content: "";
  display: block;
  left: 9px;
  width: 30px;
  height: 15px;
  border-radius: 15px;
  border: 1px solid #aaa;
  background: #fff;
  position: absolute;
}

.checkbox04-parts::after{
  content: "";
  display: block;
  position: absolute;
  top:17px;
  left: 11px;
  width: 13px;
  height: 13px;
  background: #aaa;
  border-radius: 50%;
  transition:.2s;
  display: block;
}

.checkbox04-input:checked + .checkbox04-parts::before {
  border: 1px solid #3BA85A;
}

.checkbox04-input:checked + .checkbox04-parts::after {
  left: 26px;
  background: #3BA85A;
}

.hospital_name_str,
.hospital_department_str {
	float: left;
	width: 50%;
	margin: 20px 0 !important;
}

.department_title {
	margin-top: 10px !important;
}

.box {
	background: #45485a;
	color: #FFF;
	padding: 20px;
	box-sizing: border-box;
	
}

.acount_dl {
	margin: 0 auto;
	width: 41%;
	padding: 10px;
	box-sizing: border-box;
}


.acount_dl dt {
	margin: 0 10px 0 0;
}

.acount_dl dt:after {
	content: ":";
	float: right;
	
}

.acount_dl dt:nth-child(3){
	clear: left;
	float: left;
}

.form_ul li:first-child {
	margin: 0 0 10px 0;
}

.donation_box {
	margin: 40px 0 0 0;
	padding: 20px;
	box-sizing: border-box;
	display: flex;
	justify-content: center;
}

.submitbutton,
.submitbutton:active {
	background: #3BA85A;
	box-shadow:0 5px 0 rgb(59,133,90);
	font-size:95%;
	display:block;
	padding:10px;
	box-sizing: border-box;
	color:#fff;
	border-radius:6px;
	text-align:center;
	text-decoration: none;
	font-weight: bold;
}

.submitbutton:hover {
	background: rgb(59,133,90);
	-webkit-transform: translate3d(0px, 5px, 1px);
	-moz-transform: translate3d(0px, 5px, 1px);
	transform: translate3d(0px, 5px, 1px);
	box-shadow:none;
}
	
.sendMailResult {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	color: #FFF;
	text-align: center;
	font-weight: bold;
	z-index: 3000;
	padding: 20px 0;
}

.succeeded {
	float: left;
	background: rgba(48, 236, 180, 0.9);
	color: #FFF;
	text-align: center;
}

.validate_error {
	float: left;
	background: rgba(247, 102, 102, .9);
	color: #FFF;
	text-align: center;
}

.tel-contact {
	font-size: 200%;
	font-weight: bold;
	color: #e171a3;
	margin-top: 30px;
}


a[target="_blank"] {
	color: #00ACB4;
}

a[target="_blank"]:hover {
	color: #E0562A;
}


#volunteer-page td.week {
	background: #009b85;
}


#volunteer-page .days {
	background: #9CC;
}

li[data-scheduleid="none"]{
	background: #F99;
	font-weight: bold;
}


#volunteer-page #flow-ul,
#volunteer-page #calendar-ul {
	display: inherit;
}

#volunteer-page #calendar-ul>li {
	float: left;
	width: 100%;
}

#volunteer-page .calendar td {
	width: calc(100% / 7);
} 

.room_name {
	float: left;
	width: 100%;
}

.roomDl,
.roomDl dt,
.roomDl dd,
.roomDl ul,
.roomDl li {
	float: left;
	width: 100%;
}

.roomDl dd li {
	padding : 10px 0;
}


#volunteer-page h2 {
	width: 100%;
	font-size: 200%;
	text-align: center;
}

#volunteer-page table.calendar {
	border-bottom: 2px solid #333;
	margin: 20px 0;
}



#volunteer-page #calendar-ul {
	margin: 20px 0 0 0;
}

.volunteer_note {
	margin: 0 0 20px 0;
	color: #F99;
}

.fc_report_photos dt {
	padding: 10px 0 0 0;
}

.fc_report_photos dt:before {
	content: "■";
	
}


.fc_report_photos.w100 ul li {
	width: 49%;
}

.fc_report_photos.w100 ul li:nth-child(odd) {
	float: left;
}

.fc_report_photos.w100 ul li:nth-child(even) {
	float: right;
}

.genkan {
	height: 563px;
	overflow: hidden;
}
	
.forchildren_hello {
	margin: 0 0 60px 0;
}

.article_description {
	margin: 0 0 60px 0;
}


.to_reservation {
	position: fixed;
	width: 50px;
	height: 50px;
	bottom: 70px;
	text-align: center;
	left: calc(50% - 25px);
	font-size: 2rem;
	border: 1px dotted rgba(225,113,163,1);
	border-radius: 50%;
	background: rgba(225,113,163,.8);
	color: #FFF;
	animation: arrow_box 3s linear infinite;
  	transform-origin: 50% 50%;
  	margin: 1rem 0 !important;
}

@keyframes arrow_box {
  0% { transform: translateY(0) }
  33.33333% { transform: translateY(-10px) }
  66.66667% { transform: translateY(0) }
  100% { transform: translateY(0) }
}


.to_reservation:visited {
	color: #FFF;
}


.to_reservation:hover {
	color: #FFF;
}

.to_reservation .down_arrow {
	float: left;
	width: 90%;
	box-sizing: border-box;
	text-align: center;
	margin: -8px 0 0 3.2px;
	font-weight: lighter;
	transform: rotate(90deg) scale(.4, .8);
	font-family: 'Quicksand', sans-serif;
}

.to_reservation .arrow_str {
	margin: 8px 0 0 0;
}

.to_governance_compliance {
	padding: 80px 0 40px 0;
	font-size: 1.2rem;
	color: #e171a3;
	text-decoration: underline;
}

.to_contact {
	font-size: 1.2rem;
	color:#e171a3;
	font-weight: bold;
}

.contribution_title {
	width: 100%;
	padding: 40px 20px;
	box-sizing: border-box;
}

.contribution_title br {
	display: none;
}

.contribution {
	float: left;
	width: 100%;
	margin: 0 0	100px 0;
	font-size: 1.2rem;
	line-height: 180%;
}

.user_page #wrapper {
	width: 100%;
	padding: 20px;
	box-sizing: border-box;
	margin: 0 auto;
	max-width: 100vw;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

#checkinPage form {
	max-width: 100vw;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	box-sizing: border-box;
}

#checkinPage h2 {
	width: 100%;
	background: #3BA85A;
	color: #FFF;
	margin-top: 40px;
	padding: 10px;
	box-sizing: border-box;
}

#checkinPage input[type=text] {
	width: 100%;
	margin: 20px 0;
	height: 40px;
	border: 1px solid #333;
	border-radius: 4px;
	font-size: 1.2rem;
}

.user_page h1 {
	width: 100%;
	font-size: 1.5rem;
	background: #e2e2e2;
	padding: 10px;
	box-sizing: border-box;
	line-height: 140%;
}

.user_page p {
	font-size: 1.2rem;
}

#sendPledgePage p {
	margin: 40px 0;
}

#sendPledgePage input[type=text] {
	margin: 10px 0;
}

#sendPledgePage input[type=submit] {
	margin-bottom: 50px;
} 

.user_page input {
	font-size: 1.2rem;
}

@media all and (-ms-high-contrast: none){
  #main-nav{
	height: 60px; /* IE10以上 */
  }
}

@media(max-width: 1500px){
		
	.page #main-nav-ul,
	#top-page #main-nav-ul,
	#main-nav-ul {
		width: 100%;
	}
	
}

@media(max-width:1440px){
	
	#topAnnounceBox {
		right: 10px;	
	}
	
	.announceA {
		width: 400px;
	}
	
	#top-page #main-nav-ul.r {
		margin: 0 auto;
		font-size: .9rem;
	}
	
	.page #main-nav-ul.r {
		float: right;
		margin: 5px 0 0 0;
		font-size: .9rem;
	}
	
	.page #logo,
	#top-site-title #logo {
		width: 45px;
		float: left;
	}

	.page #site-title,
	#top-site-title {
		float: left;
		margin: 5px 0 0 20px;
	}

}

@media(max-width:1080px){
	
	html {
	  font-size: 13px;
	}
	
	body {
		font-size: 1rem;
	}
	
	#content-upper {
		background: url(images/ffh_web_main_lw.png) no-repeat;
		background-size: cover;
		background-position: center 60%;
		height: 100dvh;
		width: 100vw;
		position: relative;
	}
	
	#topAnnounceBox {
		position: absolute;
		top: 300px;
		left: 0;
		width: 100%;
		padding: 0;
		background: none;
	}
	
	.announceA {
		display: block;
		float: none !important;
		width: 80%;
		margin: 0 auto;
		border-top: 4px double #333;
		border-bottom: 4px double #333;
		padding: 10px;
		box-sizing: border-box;
		background: rgba(255,255,255,.9);
		
	}
	
	#topAnnounceBox h2 {
		display: none;	
	}
	
	.announceA:after { 
		content: " ";  
		display: block; 
		visibility: hidden; 
		clear: both; 
		height: 0.1px; 
		font-size: 0.1em; 
		line-height: 0; 
	} 
		
	#header {
		position: absolute;
		top: 10vh;
	}
	
	.to_reservation {
		bottom: 5px;
	}

	.to_reservation .down_arrow {
		float: left;
		width: 100%;
		box-sizing: border-box;
		text-align: center;
		margin: 0;
		font-weight: lighter;
		transform: rotate(90deg) scale(.5, 1.2);
		font-family: 'Quicksand', sans-serif;
	}
		
	#service-description {
		margin: 40px 0 40px 0;
		font-size: 120%;
		line-height: 180%;
		text-align: center;
	}
		
	#main-nav {
		position: fixed !important;
		top: 0;
		bottom: unset !important;
		z-index: 1000;
	}
	
	.page #main-nav,
	.fixnav { 
		z-index: 2000;
		padding: 0 0 10px 0;
		background: rgba(255,255,255,.95) !important;
	}
	
	.open {
		background: rgba(255,255,255,.95);
		z-index: 1000 !important;
		max-height: inherit !important;
	}
	
	#top-site-title {
		display: none;
	}
	
	#top-page #site-title {
		z-index: 800;
	}

	#main-nav-ul {
		width: 100% !important;
		display: none;
	}
	
	#main-nav-ul li {
		float: left;
		width: 100%;
		font-size: 120%;
	}
	
	#main-nav-ul li:after {
		border-right: none;
		height: inherit;
		top: inherit;
		border-bottom: 1px dotted #45485a;
		width: 100%;
		padding: 0 20px;
		box-sizing: border-box;
	}
		
	#top-page #main-nav-ul {
		width: 100%;
	}
	
	.container {
		width: 100%;
		padding: 0 10%;
		box-sizing: border-box;
	}
	
	#flow-ul,
	#calendar-ul {
		display: inherit;
	}
	
	#calendar-ul {
		float: left;
		width: 100%;
		margin: 0 0 0 0;
	}
	
	#flow-ul li,
	#calendar-ul li {
		float: left;
	}
	
	.form_table:before {
		display: none;
	}
	
	
	.mw100 {
		width: 100% !important;
	}
	
	.flow_img_wrapper {
		height: inherit;
	}
	
	#flow-ul>li,
	#calendar-ul>li {
		margin-bottom: 30px ;
	}
	
	.form_table {
		font-size: 120%;
		width: 100%;
		margin-top: 40px !important;
		overflow-x: hidden;
	}
	
	.fb-page {
		float: left;
		margin: 40px 0 0 0;
		width: 100% !important;
	}
	
	.page_article {
		padding: 40px 20px;
		box-sizing: border-box
	}
	
	#house-section div.r {
		margin: 60px 0 0 0;
	}
	
	.room_img_ul li {
		text-align: center;
		width: 100%;
		padding: 0 15%;
		box-sizing: border-box;
		height: auto;
		overflow: hidden;
		margin: 10px 0 0 0;
	}
	
	.fb_iframe_widget,
	.fb_iframe_widget span,
	.fb_iframe_widget iframe[style]{
		width: 100% !important;
	}
	
	.house_note {
		padding: 10px;
	}
	
	#service-description {
		font-weight: bold;
	}
	
	.mbs {
		display: inherit;
	}

	.mbh {
		display: none !important;
	}
	
	.logo {
		width: 100px;
		margin: 0 auto;
	}
	
	.logo_h1 {
		clear: left;
		width: 300px;
		margin: 10px auto;
	}
	
	#menu-button {
		position: relative;
		font-size: 200%;
		margin: 20px 20px 0 0;
		color: #45485a;
		z-index: 1000;
	}
	
	#introduction-page #content-upper {
		background: url(images/head_img_01_mb.png) no-repeat;
		background-position: -300px 0;
		background-size: 200%;
	}
	
	#house-page #content-upper {
		background: url(images/head_img_02_mb.png) no-repeat;
		background-position: 0 0;
		background-size: 150%;
	}
	

	
	#donation-page #content-upper,
	#contact-page #content-upper,
	#gc-page #content-upper {
		background: url(images/ffh_web_main_lw.png) no-repeat;
		background-size: cover;
		background-position: center 60%;
		height: 100vh;
		width: 100vw;
		position: relative;
	}
		
	.tel-contact {
		margin: 1em 0;
	}
	
	#volunteer-page {
	font-size: 200%;
	}
	
	#volunteer-page .week,
	#volunteer-page .days {
		font-size: 150%;
	}
	
	.volunteer_note {
		font-weight: bold;
		font-size: 150%;
		margin: 0 0 20px 0;
	}

	.genkan {
		height: auto;
	}
	
	.vacancy_note {
		font-weight: bold;
		margin: -30px 0 30px 0;
		text-align: left;
		line-height: 160%;
	}
	
	.no_vacancy_note {
		margin-bottom: 30px;
	}
	
	.form_table th {
		width: 25%;
	}

	.form_table td {
		width: calc(100% - 28%);
		padding: 10px 0 10px 20px;
	}

	.movies.mbs {
		position: static;
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		padding: 0 0 30px 0;
	}
	
	.movies.mbs iframe {
		max-width: 100%;
	}

	.article_description {
		margin: -30px 0 60px 0;
	}
	
}


@media screen and (max-width: 800px) {

	#topAnnounce {
		width: 100%;
	}
	
	#introduction-page #content-upper,
	#house-page #content-upper,
	#donation-page #content-upper,
	#contact-page #content-upper{
		height: 300px !important;
	}
		
	#introduction-page #content-upper {
		background-position: -50px 0;
		background-size: 120%;
	}
	
	#house-page #content-upper {
		background-position: 0 0;
		background-size: 120%;
	}

	.page #house-section {
		margin: 0 0 0 0;
	}
	
	
	.form_table {
  		table-layout: fixed;
		max-width: 100vw;
		overflow: hidden !important;
	}
	
	.form_table td {
		width: calc(100% - 20px);
		padding: 10px 0 10px 20px;
	}
	
	#newsWrapper {
		margin-top: 40px;
		width: 90%;
	}

	#newsList li a {
		align-items: flex-start;
	}

	#newsList li a p {
		padding: 0 10px;
	}


	.require {
		float: left;
		width: 50%;
		margin: 10px 40%;
		position: inherit;
		transform: inherit;
	}

	.container {
		width: 100%;
		padding: 0 4%;
		box-sizing: border-box;
	}

	.donation_ul {
		flex-wrap: wrap;
	}	


	.donation_ul li {
		width: 100%;
	}

	.donation_note {
		padding-top: 0;
		flex-wrap: wrap;
		flex-direction : inherit;
	}

	.donation_note p,
	.donation_note iframe {
		width: 100%;
	}

	.donation_iframe {
		height: 320px;
	}

	.donation_box {
		flex-wrap: wrap;
	}

	.acount_dl {
		margin: 0 auto;
		width: 77%;
		padding: 10px;
		box-sizing: border-box;
	}

	.acount_dl:last-child {
		margin-top: 10px;
	}
	
}

@media screen and (max-width: 480px) {
	
	#topAnnounce img,
	#topAnnounce p {
		width: 100%;
	}

	.contribution_title br {
		display: block;
	}

	#emergencyAnnounceContent {
		position: absolute;
		padding: 10px;
		box-sizing: border-box;
		border: 1px dotted #575555;
		width: 90%;
		top: 50%;
		left: 50%;
		transform: translateY(-50%) translateX(-50%);
		-webkit- transform: translateY(-50%) translateX(-50%);
	}
	
	#emergencyAnnounceContent p {
		font-size: 1.1rem;
	}
	
	#introduction-page #content-upper {
		background: url(images/head_img_01_mb.png) no-repeat;
		background-position: -300px 0;
		background-size: 200%;
	}
	
	#house-page #content-upper {
		background: url(images/head_img_02_mb.png) no-repeat;
		background-position: -100px 0;
		background-size: 150%;
	}
	
	#donation-page #content-upper,
	#contact-page #content-upper {
		background: url(images/head_img_03_mb.png) no-repeat;
		background-position: -100px 0;
		background-size: 200%;
	}
	
	#introduction-page #content-upper,
	#house-page #content-upper,
	#donation-page #content-upper,
	#contact-page #content-upper{
		height: 200px !important;
	}
		
	.checkbox04 .checkbox04-parts {
		width: 100%;
		margin: 5px 0;
		box-sizing: border-box;
	}
		
	.hospital_name_str,
	.hospital_department_str {
		float: left;
		margin: 5px 0 !important;
	}
	
	.fc_report_photos.w100 ul li {
		width: 100%;
		padding: 0 0 10px 0;
	}

	.form_table th {
		width: 25%;
	}

	.form_table td {
		width: 60%;
	}

	#loginPage form {
		max-width: 100vw;
		padding: 0 10px;
		box-sizing: border-box;
	}

}

