@charset "UTF-8";

@media screen and (max-width: 768px) {	
body{
	line-height: 1.5;
	min-width:100%;
}
a.hover:hover img {
	opacity: 1.0;
	filter: alpha(opacity=100);
	-moz-opacity:1.00;
	opacity:1.00;
}
a:hover{
	text-decoration: none !important;
	opacity: 1.0 !important;
}
.hamburger {
	display: block;
}
.show_pc{
	display: none !important;
}
.show_sp{
	display: block !important;
}
.show_sp02{
	display: inline !important;
}

img{
	max-width: 100%;
}

/*
  追従ボタン
-------------------------*/
.fixed_info {
    position: fixed;
	left: 0;
    bottom: 0;
    z-index: 100;
	width: 100%;
}
.fixed_info .btns {
	display: flex;
	width: 100%;
}
.fixed_info .btn {
    width: 33.333%;
}



/*-------------------------
  header
-------------------------*/
.header{
    margin: 0;
	border: none;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	padding: 0;
    height: 51px;
    background-color: unset;
}
.header_in{
    padding: 15px;
    border-top: none;
	background-color: rgba(50,173,203, 0.9);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
}
.header_in .site_name {
    font-size: 1.4rem;
	color: #fff;
}
.header_top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0;
}
.header_top .header_info {
   display: none;
}

/* ナビ
-------------------------*/
.gnav{
	display: none;
}

.gnav .pcmenu {
    display: none;
}

/*-------------------------
  sp header
-------------------------*/
#overlay {
	display: block;
	width: 95%;
	max-height: 90vh;
	text-align: center;
	position: absolute;
	top: 51px;
	right: 0;
	z-index: 100;
	background: #fff;
	overflow-y: auto;
	transform: translateX(100vw);
	transition: all .3s linear;
}
#overlay.active {
	transform: translateX(0);
}
.overlay_in {
	height: auto;
	width: 100%;
	position: relative;
	left: 0;
}
#overlay .sp_info {
	display: flex;
	padding: 10px 15px;
}


ul.spmenu{
    margin: 0;
    padding: 0;
    list-style: none;
	width: 100%;
}
ul.spmenu li{
    margin: 0;
    padding: 0;
    position: relative;
}
ul.spmenu li a{
    margin: 0;
    padding: 15px;
	max-height: 50px;
    display: block;
    text-align: left;
	font-family: "Noto Serif JP", serif;
    font-size: 1.4rem;
    font-weight: bold;
	color: #333;
	/* background-color: #D8F1FF; */
    border-bottom: 1px solid #FFFFFF;
}
ul.spmenu > li > a{
	background-color: #D8F1FF;
}
ul.spmenu .sub a {
	border-bottom: dotted 2px #ccc;
}
ul.spmenu .sub li:last-of-type a {
	border: none;
}
ul.spmenu  li .icon {
    position: absolute;
    top: 10px;
    right: 10px;
	display: block;
	width: 30px;
}
ul.spmenu li .icon img {
    display: block;
}
ul.spmenu li.open .icon {
	transform: rotate(-180deg);
}
ul.spmenu li .sub {
	display: none;
}
ul.spmenu li .sub li a {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.3rem;
    font-weight: 500;
    position: relative;
}
ul.spmenu li:not(.acd) a::after {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    border-bottom: 2px solid #37ADCB;
    border-right: 2px solid #37ADCB;
    transform: rotate(-45deg);
    position: absolute;
    right: 27px;
    top: 20px;
}



/*-------------------------
  footer
-------------------------*/
.footer{
    margin: 0;
    padding: 20px 0 18.5vw;
}
.footer .site_name {
    font-size: 1.4rem;
}
.footer .site_name span {
    font-size: 1.6rem;
}
.footer_in{
    margin: 20px auto 0;
    padding: 10px 0 15px;
}
.copyright {
    font-size: 1.2rem;
}

#pagetop{
    bottom: 21vw;
	right: 10px;
	width: 40px;
	height: 40px;
}


/*-------------------------
   mv
-------------------------*/
.mv {
    width: 100%;
    height: auto;
    background: none;
    margin: 0;
}
.mv .img {
    margin: 0 auto
}


/*-------------------------
   共通
-------------------------*/
.sec {
    padding: 45px 10px;
}
.sec_title {
    font-size: 2.4rem;
}
.sec_title span {
    font-size: 2.8rem;
}
.sec_title::after {
    width: 50px;
    margin: 10px auto 0;
    height: 3px;
}
.inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0;
}


/*-------------------------
   sec01
-------------------------*/
.sec01 {
    background-image: url(../img/sec01_bg_sp.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding-left: 20px;
    padding-right: 20px;
}
.sec01 .sec_title {
    font-size: 2.8rem;
    line-height: 1.5;
    margin-bottom: 15px;
}
.sec01_in {
    flex-direction: column;
}
.sec01_in .img {
    max-width: 100%;
    width: 100%;
}
.sec01_in .content {
    flex: none;
    width: 100%;
    padding: 25px 0 0 0;
    line-height: 2;
}

/*-------------------------
   sec02
-------------------------*/
.sec02 .desc {
    padding: 20px 0 35px;
    font-size: 1.6rem;
    text-align: left;
}
.sec02_in + .sec02_in {
    margin-top: 45px;
}
.sec02_in .sub_title {
    padding: 10px;
    font-size: 2.4rem;
}
.sec02_in .block {
    margin-bottom: 20px;
    padding: 0 17px 50px;
}
.sec02_in .block .attention {
    width: 100%;
    margin: 0 auto;
    padding: 6px;
    font-size: 1.8rem;
}
.sec02_in .block .box {
    padding: 40px 0 0;
}
.sec02_in .block .box:not(:last-of-type){
    background-image: url(../img/bg_border.png);
    background-position: bottom;
    background-repeat: repeat-x;
    background-size: 20px;
    padding: 34px 0;
}
.sec02_in .block .box .text {
    margin-bottom: 10px;
}
.sec02_in .block .box dl dt,
.sec02_in .block .box dl dd {
    margin-bottom: 2px;
    padding: 8px;
}
.sec02_in .block .box dl dt {
    width: 31.5%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.sec02_in .block .box dl dd {
    width: 66.7%;
}
.sec02_in .note {
    font-size: 1.6rem;
    line-height: 1.8;
}
.sec02_in._01 .block {
    padding-top: 40px;
}
.sec02_in .box .memo {
    text-indent: -1.6rem;
    padding-left: 16px;
    line-height: 1.8;
}
.sec02_in .block .text01 {
    padding: 40px 0 20px 16px;
    text-indent: -1.6rem;
}
.sec02_in .block .scroll_box {
    padding: 10px 15px;
}
.sec02_in .block .scroll_box p {
    line-height: 1.8;
}
.sec02_in .block .scroll_box p +p {
    margin-top: 30px;
}

/*-------------------------
   info
-------------------------*/
.info {
    padding: 0;
}
.info .title {
    margin-bottom: 15px;
    padding: 7px;
    font-size: 2rem;
}
.info .title span {
    font-size: 2.4rem;
}
.info .text {
    margin-bottom: 5px;
    font-size: 1.6rem;
}
.info_in {
    flex-direction: column;
    gap: 0;
    padding: 10px 10px 25px;
}
.info_in .box + .box {
    margin-top: 20px;
}
.info_in .box .img {
    margin: 10px auto 0;
}

/*-------------------------
   sec03
-------------------------*/
.sec03 {
    background-image: url(../img/sec03_bg01_sp.jpg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top left;
}
.sec03::before {
    content: none;
}
.sec03::after {
    width: 335px;
    height: 40px;
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
    top: 99.9%;
}
.sec03_in {
    position: relative;
    justify-content: space-between;
}
.sec03_in .content {
    max-width: 100%;
    width: 100%;
    z-index: 10;
}
.sec03_in .sec_title {
    width: 58%;
    margin: 30px 0 60px;
    font-size: 3.9rem;
    line-height: 1.3;
    letter-spacing: -.05em;
}
.sec03_in .sec_title::after {
    content: none;
}
.sec03_in .sec_title span {
    width: 100%;
    margin: 0 auto;
    padding: 3px 10%;
    font-size: 2.2rem;
}
.sec03_in .box {
    width: 100%;
    padding: 20px 15px 20px;
}
.sec03_in .box_in {
    padding-bottom: 5px;
}
.sec03_in .box_in .icon {
    width: 25px;
    margin-right: 9px;
}
.sec03_in .box_in .text03 {
    font-size: 1.8rem;
    text-indent: -1.8rem;
    padding-left: 1.8rem;
    line-height: 1.3;
    margin-bottom: 5px;
}
.sec03_in .box_in .text03 span {
    line-height: 1.8;
}


/*-------------------------
   sec04
-------------------------*/
.sec04 {
    padding-top: 55px;
}
.sec04_in {
    margin: 25px auto 20px;
}
.sec04_in .block {
    margin-bottom: 20px;
    padding: 10px 15px 0;
}
.sec04_in .block .text {
    padding-bottom: 12px;
    padding-right: 30px;
}
.sec04_in .block .text span {
    width: 14px;
    height: 14px;
    border-bottom: 4px solid #37ADCB;
    border-right: 4px solid #37ADCB;
    right: 5px;
    top: 10px;
}
.sec04_in .block .text.open span {
    transform: rotate(-135deg);
}
.sec04_in .block .box {
    display: none;
}

.sec04_in .block dl dt,
.sec04_in .block dl dd {
    margin-bottom: 2px;
    padding: 8px;
}
.sec04_in .block dl dt {
    width: 31.5%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.sec04_in .block dl dd {
    width: 66.7%
}
.sec04_in .block .item:last-of-type {
    padding-bottom: 30px;
}


/*-------------------------
   sec05
-------------------------*/
.sec05 .desc {
    padding: 20px 0 24px;
    text-align: left;
}
.sec05_in .sub_title {
    padding: 10px;
    font-size: 2rem;
}
.sec05_in .sub_title span {
    font-size: 2.4rem;
}
.sec05_in .sub_title span > span {
    font-size: 2rem;
}
.sec05_in .block {
    margin-bottom: 20px;
    padding: 35px 10px;
}
.sec05_in .box {
    flex-direction: column;
}
.sec05_in .box + .box {
    margin-top: 35px;
}
.sec05_in .box .img {
    max-width: 100%;
    width: 100%;
    margin-bottom: 15px;
}
.sec05_in .box .content {
   flex: none;
   width: 100%;
   padding: 0 ;
}
.sec05_in .box .content .title {
    letter-spacing: -.01em;
}
.sec05_in .box._02 {
    flex-direction: column;
}
.sec05_in .box._02 .content {
    padding: 0;
}
.sec05_in._02 {
    margin-top: 40px;
}

/*-------------------------
   sec06
-------------------------*/
.sec06_in {
    margin-top: 50px;
    background-image: url(../img/bg_border.png);
    background-position: left top;
    background-size: 20px;
    background-repeat: repeat-x;
}
.sec06_in .item {
    background-image: url(../img/bg_border.png);
    background-position: left bottom;
    background-size: 20px;
    background-repeat: repeat-x;
}
.sec06_in .item .q,
.sec06_in .item .a_in {
    display: flex;
    align-items: baseline;
}
.sec06_in .item .q {
    padding: 20px 25px 20px 6px;
}
.sec06_in .item .a {
    padding: 0 6px 20px;
    display: none;
}
.sec06_in .item .q .icon,
.sec06_in .item .a .icon {
    font-size: 2.2rem;
}
.sec06_in .item .q .text,
.sec06_in .item .a .text {
    flex: 1;
}
.sec06_in .item .q span {
    width: 14px;
    height: 14px;
    border-bottom: 4px solid #37ADCB;
    border-right: 4px solid #37ADCB;
    right: 20px;
    top: 30px;
    bottom: inherit;
}


/*-------------------------
   sec07
-------------------------*/
.sec07 {
    background-image: url(../img/sec07_bg.jpg);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: auto 100%;
}
.sec07_in {
    margin-top: 25px;
    margin-bottom: 35px;
}
.sec07_in:last-of-type {
    margin-bottom: 0;
}
.sec07_in .title {
    padding: 10px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.sec07_in .title span.en {
    margin: 0;
}
.sec07_in .block  {
    padding: 10px 10px 30px;
}
.sec07_in .block .flex {
    flex-direction: column;
}
.sec07_in .block .img {
    max-width: 100%;
    width: 100%;
}
.sec07_in .block .img img +img {
    margin-bottom: 15px;
}
.sec07_in .block .content {
    max-width: 100%;
    width: 100%;
}
.sec07_in .block .content .address {
    padding-top: 10px;
    line-height: 1.8;
}
.sec07_in .block .btns {
   flex-direction: column;
    padding: 15px 0 0;
}
.sec07_in .block .btns a {
    display: block;
    max-width: 315px;
    margin: 5px auto;
}

/* 20250226 */
.info_top {
    width: calc(100% - 20px);
    margin: 0 auto 10px;
    padding: 0 0 20px;
    background-image: url(../img/bg_border.png);
    background-position: bottom;
    background-repeat: repeat-x;
    background-size: 25px;
}


}
