.hcal-large {
    position:relative;
}

.hcal-header {
    font-family: "Barlow", sans-serif;
}
.hcal-header .monthNum{
    color: #F4F2EF;
}
.hcal-header .monthName{
    color: #0247AB;
}
.hcal-month{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.hcal-month .prev,
.hcal-month .next{
    position: relative;
}
.hcal-month .prev:before,
.hcal-month .next:before{
    content: "";
    background-color: #fff;
    box-shadow: 3px 3px 20px rgba(0,0,0,0.1);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 1.1rem;
    border-radius: 50%;
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
.hcal-month .prev:before{
    background-image: url("../images/hcal-prev.svg");
    left: 0;
}
.hcal-month .next:before{
    background-image: url("../images/hcal-next.svg");
    right: 0;
}
.hcal-table{
    width: 100%;
}
.hcal-table .top td{
    color: #5C5C5C;
}
.hcal-table td a{
    color: #718D29;
    display: block;
}
.hcal-table td .day{
    display: inline-block;
    text-align: center;
    font-family: "Barlow", sans-serif;
}
.hcal-table td.gray{
    color: #CCC;
}
.hcal-table td.state-3{
    color: #999;
}
.hcal-table td.state-3 .day{
    color: #fff;
    background-color: #DDD;
}

.hcal-table td.state-1 .state{
    display:none;
}
.hcal-table td.state-2 .day{
    background-color: #F2F7FD;
}
.hcal-table td.state-2 .state{
    color: #0247AB;
}
.hcal-table td.state-4{
    color: #F85656;
}
.hcal-table td.state-4 .day{
    background-color: #F08C8C;
    color: #FFF;
}
.hcal-table td.state-5 .day{
    background-color: #4682b4;
    color: #FFF;
}

.hcal-guide{
    display: flex;
    justify-content:flex-start;
}
.hcal-guide li{
    position: relative;
}
.hcal-guide li.itibu{
    color: #0247AB;
}
.hcal-guide li.kyukan{
    color: #999;
}
.hcal-guide li.rinji{
    color: #F85656;
}
.hcal-guide li:before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}
.hcal-guide li.state-2:before{
    background-color: #F2F7FD;
}
.hcal-guide li.state-3:before{
    background-color: #DDD;
}
.hcal-guide li.state-4:before{
    background-color: #F08C8C;
}
.hcal-guide li.state-5:before{
    background-color: #4682b4;
}
.hcal-notes{
    font-size: 1.3rem;
    letter-spacing: .05em;
}
@media screen and (min-width: 769px) {
    .hcal-header {
        display: flex;
        justify-content: space-between;
		align-items:flex-end;
        font-size: 1.6rem;
        font-family: "Barlow", sans-serif;
        margin-bottom: 4.8rem;
        letter-spacing: .05em;
    }
    .hcal-title-sp{
		display: none;
    }
    .hcal-title-pc{
        line-height: 1;
		display: flex; 
		align-items:flex-end;
    }
    .hcal-title-pc .monthNum{
        font-size: 12rem;
        font-weight: bold;
		position: relative;
		bottom: -1.2rem;
		
    }
    .hcal-title-pc .monthDayName{
		margin-left: 1rem;
    }
    .hcal-title-pc .monthName{
        font-size: 2.4rem;
        font-weight: 600;
    }
    .hcal-month{
        width: 33.2rem;
		min-height: 6rem;
    }
    .hcal-month.sp{
        display: none;
    }
    .hcal-month .prev:before,
    .hcal-month .next:before{
        width: 6rem;
        height: 6rem;
        background-size: 1.1rem;
		vertical-align: middle;
    }
    .hcal-month .prev,
	.hcal-month .next{
        height: 6rem;
        padding-left: 8.4rem;
		vertical-align: middle;
		display: flex; 
		align-items: center;
		cursor: pointer;
    }
    .hcal-month .prev{
        padding-left: 8.4rem;
    }
    .hcal-month .next{
        padding-right: 8.4rem;
    }
    .hcal-table{
        font-size: 1.4rem;
        margin-bottom: 5rem;
        table-layout: fixed;
    }
    .hcal-table th{
        width: calc( 100% / 7 );
        background-color: #F4F4F4;
        text-align: center;
        padding: 2.2rem;
        font-weight: bold;
    }
    .hcal-table th:first-child{
        border-radius: 5px 0 0 5px;
    }
    .hcal-table th:last-child{
        border-radius: 0 5px 5px 0;
    }
    .hcal-table td{
        height: 12.5rem;
        border-top: 1px #EEE solid;
        border-left: 1px #EEE solid;
        vertical-align: top;
        padding: 1rem;
        word-break: break-all;
    }
    .hcal-table td a{
        /* width:100%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        -webkit-text-overflow: ellipsis;
        -o-text-overflow: ellipsis; */
        display:block;
    }
    .hcal-table td a:hover{
		text-decoration: underline;
    }
    .hcal-table td:first-child{
        border-left: none;
    }
    .hcal-table tbody tr:first-child td{
        border-top: 2rem #FFF solid;
    }
    .hcal-table .top td a{
        font-size: 1rem;
        margin-bottom: 1rem;
        line-height: 1.27;
    }
    .hcal-table td .day{
        width: 3rem;
        height: 3rem;
        padding-top: 0.4rem;
        border-radius: 0.5rem;
        margin-bottom: 1.5rem;
    }
    .hcal-table td .state{
        font-size: 1.1rem;
        margin-bottom: 1rem;
    }
    .hcal-guide{
        font-size: 1.1rem;
        margin: 0 0 2.5rem 1rem;
    }
    .hcal-guide li{
        padding-left: 4.5rem;
        margin-right: 3rem;
    }
    .hcal-guide li:before{
        width: 3rem;
        height: 3rem;
        border-radius: 5px;
    }
	.hcal-guide.sp{
		display: none;
	}
}
@media screen and (max-width: 768px) {
    .hcal-title-pc{
		display: none;
    }
    .hcal-title-sp{
        display: flex; 
        justify-content: center;
        align-items: center;
        font-size: 1.6rem;
        line-height: 1;
        border-bottom: 1px #DDD solid;
        padding-bottom: 1rem;
        margin-bottom: 2rem;
    }
    .hcal-title-sp .monthNum{
        font-size: 9.6rem;
        font-weight: bold;
    }
    .hcal-title-sp .monthDay{
        margin-right: 1.5rem;
        text-align: right;
    }
    .hcal-title-sp .monthName{
        font-weight: 600;
        margin-left: 2rem;
    }
    .hcal-month{
        font-size: 1.6rem;
        padding: 2rem 0;
        margin-bottom: 3.5rem;
    }
    .hcal-month .prev:before,
    .hcal-month .next:before{
        width: 6rem;
        height: 6rem;
        background-size: 1.1rem;
    }
    .hcal-month .prev{
        padding-left: 8.5rem;
    }
    .hcal-month .next{
        padding-right: 8.5rem;
    }
    .hcal-table{
        font-size: 1.4rem;
        margin-bottom: 1.7rem;
        border-bottom: 1px #EEE solid;
    }
    .hcal-table th{
        display: none;
    }
    .hcal-table td{
        min-height: 5rem;
        border-top: 1px #DDD solid;
        padding: 1rem 1rem 1rem 6rem;
        display: block;
        position: relative;
        vertical-align: middle;
        word-break: break-all;
    }
    .hcal-table td:before{
        width: 5rem;
        height: 100%;
        content: "";
        background-color: #F5F5F5;
        text-align: center;
        padding-top: 2rem;
        color: #5C5C5C;
        font-size: 1.4rem;
        font-weight: bold;
        line-height: 1;
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
    }
    .hcal-table td:nth-of-type(8n + 1):before{
        content:"日";
        color: #F85656;
    }
    .hcal-table td:nth-of-type(8n + 2):before{
        content:"月";
    }
    .hcal-table td:nth-of-type(8n + 3):before{
        content:"火";
    }
    .hcal-table td:nth-of-type(8n + 4):before{
        content:"水";
    }
    .hcal-table td:nth-of-type(8n + 5):before{
        content:"木";
    }
    .hcal-table td:nth-of-type(8n + 6):before{
        content:"金";
    }
    .hcal-table td:nth-of-type(8n + 7):before{
        content:"土";
        color: #4A9ADE;
    }
    .hcal-table .top td a{
        font-size: 1.1rem;
        margin-bottom: 1rem;
        line-height: 1.27;
    }
    .hcal-table td .day{
        width: 3rem;
        height: 3rem;
        padding-top: 0.5rem;
        border-radius: 0.5rem;
        position: absolute;
        top: 1rem;
        left: 6rem;
        left: 6rem;
    }
    .hcal-table td .state{
        font-size: 1.1rem;
        margin-bottom: 1rem;
        padding:0.7rem 0 0 3.5rem;
    }
    .hcal-guide{
        font-size: 1.1rem;
        margin-bottom: 1.5rem;
    }
    .hcal-guide li{
        padding-left: 3rem;
        margin-right: 2rem;
    }
    .hcal-guide li:before{
        width: 2rem;
        height: 2rem;
        border-radius: 5px;
    }
	.hcal-guide.pc{
		display: none;
	}
}

.hcal-loading{
    position:absolute;
    left:0;
    right:0;
    top:0;
    bottom:0;
    background-color:rgba(255,255,255,0.5);
}

.hcal-loader,
.hcal-loader:after {
  border-radius: 50%;
  width: 10em;
  height: 10em;

}
.hcal-loader {
margin:-5em 0 0 -5em;
  font-size: 10px;
  position: absolute;
  top:50%;
  left:50%;
  text-indent: -9999em;
  border-top: 1.1em solid rgba(2,71,171, 0.5);
  border-right: 1.1em solid rgba(2,71,171, 0.5);
  border-bottom: 1.1em solid rgba(2,71,171, 0.5);
  border-left: 1.1em solid #ffffff;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: load8 1.1s infinite linear;
  animation: load8 1.1s infinite linear;
}
@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

.hcal-loader-fade-enter {
    opacity: 0;
}
.hcal-loader-fade-enter-active {
    transition: all .2s ease-in-out;
    opacity: 1;
}
.hcal-loader-fade-exit {
    opacity: 1; /* opacityの規定値は1だが、省略不可 */
}
.hcal-loader-fade-exit-active {
    transition: all .2s ease-in-out;
    opacity: 0;
}


/* トップ　カレンダー */

.calendar__main{
	background-color: #fff;
}
@media screen and (min-width: 769px) {
	.calendar__main{
		padding:5rem 8rem 0 8rem;
	}
}
@media screen and (max-width: 768px) {
	.calendar__main{
		padding-top:4rem;
	}
}

