@charset "utf-8";
/*
Title: magazine biyoushi
Last Updated: 2024-11-15
Author: Ryu
*/

/*----------------------------------------
	全体
----------------------------------------*/

html{
	font-family:'游ゴシック体', 'Yu Gothic', YuGothic,'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif;
	font-size:62.5%;
	color: #000;
	-webkit-text-size-adjust:100%;
	line-height:1.5;
	font-weight: 500;
}
body{ font-size:1.4rem; font-size: 1.4em; }
img{ vertical-align: bottom; }

a{display: block;
	color:#cb3f48;
	transition: all 0.4s;
}
a:hover{
	color:#eb747c;
	transition: all 0.4s;
}
img {
	image-rendering: -webkit-optimize-contrast;
}
.op:hover{
	filter: alpha(opacity=70);
	-moz-opacity:070;
	opacity:0.70;
	transition: all 0.4s;
}
.op{
	transition: all 0.4s;
}


/*----------------------------------------
	layout
----------------------------------------*/

#container{
	overflow: hidden;
}
.main_frame{
	width: 100%;
	position: relative;
	box-sizing: border-box;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
	box-shadow: 0 0 50px 0px rgb(0,0,0,0.3);
}

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

	.main_frame{
		width: 100%;
		max-width: inherit;
	}

}/*END*/

/*----------------------------------------
	content
----------------------------------------*/

.btn_link{
	position: relative;
}
.btn01 {
    position: absolute;
    display: block;
    left: 50%;
    transform: translateX(-50%);
    bottom: 6%;
    transition: all 0.4s;
    width: 62.87%;
}
.btn02 {
    position: absolute;
    display: block;
    left: 50%;
    transform: translateX(-50%);
    bottom: 4%;
    transition: all 0.4s;
    width: 62.87%;
}
.rela{
	position: relative;
}
.abs{
	position: absolute;
}
.btn_official{
	bottom: 3%;
}


/* map */
.map {
	position: absolute;
    overflow: hidden;
    width: 87%;
    height: 19%;
    top: 76%;
    left: 50%;
    transform: translateX(-50%);
}
.map iframe{
	width: 100%;
	height: 100%;
	border: none;
	display: block;
	object-fit: contain;
}/*END*/


/*----------------------------------------
	追加
----------------------------------------*/

/* #container{
	background: url("../images/background.jpg") center top repeat-x #c6cad1;
	background-size: 100%;
	position: relative;
} */
#container::after{
	content: "";
	width: 100vw;
	height: 100vh;
	background: url("../images/background.jpg") center top repeat-x #c6cad1;
	position: fixed;
	top: 0;
	z-index: -1;
}
.ribbon_l{
	position: fixed;
	top: 0;
	left: 0;
	background: url("../images/background-rbn.jpg") center top repeat-y;
	background-size: 100%;
	height: 100vh;
	width: 4.5%;
	max-width: 50px;
	box-shadow: 0 0 8px 0px rgb(0 0 0 / 20%);
	z-index: 1;
}
.ribbon_r{
	position: fixed;
	top: 0;
	right: 0;
	background: url("../images/background-rbn.jpg") center top repeat-y;
	background-size: 100%;
	height: 100vh;
	width: 4.5%;
	max-width: 50px;
	box-shadow: 0 0 8px 0px rgb(0 0 0 / 20%);
	z-index: 1;
}
.background-logo{
	position: fixed;
	max-width: 254px;
	top: 5%;
	left: 10%;
	width: 12%;
}

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

	.background-logo{
		width: 10%;
	}

}/*END*/

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

	.background-logo{
		width: 8%;
	}

}/*END*/

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

	.background-logo{
		display: none;
	}

}/*END*/

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

	.ribbon_l{
		display: none;
	}
	.ribbon_r{
		display: none;
	}

}/*END*/


/*----------------------------------------
	slider
----------------------------------------*/

.slider-container {
    position: relative;
    width: 100%;
    overflow: hidden;
    margin: auto;
}

.slider {
    display: flex;
    transition: transform 0.5s ease-in-out;
    width: 1000%; 
	white-space: nowrap;
}

.slider img {
    width: 10%;
    flex-shrink: 0;
}

/* 矢印ボタン */
.arrow {
    position: absolute;
    top: 27.5%;
    transform: translateY(-50%);
    font-size: 40px; 
    width: 30px;  
    height: 30px;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 10;
    opacity: 0.9;
}

.prev {
    left: 35px; 
}

.prev::before {
    content: "";
    display: block;
    width: 18px;
    height: 18px;
    border-top: 2px solid #2f2725;  
    border-left: 2px solid #2f2725;
    transform: rotate(-45deg);
    position: absolute;
    top: 50%;
    left: 0;  
    transform: translateY(-50%) rotate(-45deg);
}

.next {
    right: 35px;
}

.next::before {
    content: "";
    display: block;
    width: 18px;
    height: 18px;
    border-top: 2px solid #2f2725;
    border-right: 2px solid #2f2725;
    transform: rotate(45deg);
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%) rotate(45deg);
}

.black-arrows .prev::before,
.black-arrows .next::before {
    border-color: black;
}

@media screen and (max-width: 749px) {
    .arrow {
        width: 25px;
        height: 25px;
    }
    .prev::before, .next::before {
        width: clamp(0.625rem, -0.074rem + 3.5vw, 1.563rem);
        height: clamp(0.625rem, -0.074rem + 3.5vw, 1.563rem);
        border-width: 2.5px;
    }
	.prev {
    	left: 30px;  
	}
	.next {
		right: 30px; 
	}
}

.dots-container {
    position: absolute;
    text-align: center;
    left: 50%;
    transform: translateX(-50%);
    top: 15%;
	width: auto;
	white-space: nowrap; 
}
.dot {
	height: 10px;
    width: 10px;
    margin: 11px;
	border-radius: 50%;
	background-color: #9c9c9c;
	display: inline-block;
	cursor: pointer;
	transition: background-color 0.3s;
}

.dot.active {
    background-color: #000; 
}
@media screen and (max-width: 749px) {
	.dot {
		height: 12px;
		width: 12px;
		margin: 12px;	
	}
}
@media screen and (max-width: 400px) {
	.dot {
		height: 7px;
		width: 7px;
		margin: 8px;
		
	}
}
/*END*/


/*----------------------------------------
	header
----------------------------------------*/

header{
	position: relative;
}
.drawer{
	position: fixed;
	background: rgba(0,0,0,0.85);
	background-size: contain;
	background-position: center top;
	top: 0;
	right: 0;
	width: 100%;
	height: 100vh;
	display: flex;
	justify-content: center;
	visibility: hidden;
	opacity: 0;
	transform: translateX(100%);
	transition: 0.5s ease-in-out;
	z-index: 50;
}
.drawer > nav{
	display: flex;
	padding-top: 70px;
}
.drawer ul{
	text-align: center;
	width: 100%;
	margin: 0 auto;
}
.drawer ul li a{
	display: inline-block;
	font-size: 1.8rem;
	color: #fff;
	text-decoration: none;
	padding: 10px;
	line-height: 1.6;
}
.drawer ul li{
	position: relative;
	transform: translateX(-150px);
	transition: transform 0.5s ease;
}

.drawer ul li:nth-child(2){ transition-delay: 0.15s; }
.drawer ul li:nth-child(3){ transition-delay: 0.25s; }
.drawer ul li:nth-child(4){ transition-delay: 0.35s; }
.drawer ul li:nth-child(5){ transition-delay: 0.45s; }
.drawer ul li:nth-child(6){ transition-delay: 0.55s; }
.drawer ul li:nth-child(7){ transition-delay: 0.65s; }
.open .drawer{
	visibility: visible;
	opacity: 1;
	transform: translateX(0);
	overflow: auto;
}
.open .drawer ul li{
	transform: translateX(0);
	z-index: 51;
}

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

	.drawer > nav{
		display: flex;
		align-items: flex-start;
		padding-top: 9vh;
		padding-bottom: 0;
	}
	.drawer ul li a{
		font-size: 1.6rem;
	}

}/*END*/
@media screen and (max-width: 479px){

	.drawer ul li a{
		font-size: 1.4rem;
	}

}/*END*/

.head_btn{
	display: none;
	position: fixed;
	right: 10px;
	top: 10px;
	right: calc(50% - 240px);
	z-index: 51;
	background: #285579;
	border-radius: 50%;
	width: 70px;
	height: 70px;
	cursor: pointer;
}
.head_btn span{
	position: absolute;
	transition: all 0.4s;
}
.head_btn span{
	background: #fff;
	height: 2px;
}
.head_btn span:nth-child(1){
	width: 70%;
	right: 13%;
	top: 30px;
}
.head_btn span:nth-child(2){
	width: 55%;
	right: 13%;
	top: 39px
}
.open .head_btn span:nth-child(1){
	transform: rotate(45deg);
	top: 33px;
	width: 55%;
	right: 20%;
}
.open .head_btn span:nth-child(2){
	transform: rotate(-45deg);
	width: 55%;
	top: 33px;
	right: 20%;
}

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

	.head_btn{
		right: 0;
	}

}/*END*/