@charset "utf-8";
/* CSS Document */

body {
margin: 0;
	padding: 0;	
	font-family:YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";	
	width: 100%;
	overflow-x: hidden;
	background: url("../images/pexels-teona-swift-6913376.jpg");
	background-repeat: repeat;
	min-height: 100vh;
	background-size: 100% auto;
	background-attachment: fixed;
	background-position: top center;
	color: #333;
	}

@media screen and (max-width: 780px) {
	body {
		height: 100%;
		background-size: auto 100%;
		background-position: top left;
		
	}
}
	
	
	a{
	  text-decoration: none;
		color: #333;
	}
	
	li {
	list-style: none;
	}
	
	p {
		margin: 0;
	}
	

/*ヘッダー*/
/*ナビ*/
.pc-nav {
	width: 100%;
	height: 60px;
	z-index: 999;
	background-color: rgba(255,255,255,.9);
}

.pc-nav.sticky{
  position: fixed;
  top: 0;
  right: 0;	
}

.logo {
width: 60px;
padding-top: 17px;
padding-left: 60px;
}


.pc-nav ul {
	float: right;
    display: flex;
    flex-wrap: wrap;/*スマホ表示折り返し用なのでPCのみなら不要*/
    margin: 10px 60px 50px 0;
}

.navi-list a {
    display: block;
    padding: 4px 20px;
    text-decoration: none;
    color: #555968;
	font-size: 18px;
	font-family: 'EB Garamond', serif;
}

/*==================================================
　5-3-10 線が伸びて枠線になる
===================================*/

.navi-list {
    /*線の基点とするためrelativeを指定*/
  position: relative;
    margin:0 10px;
}

/*線の基点位置*/
.navi-list::before,
.navi-list::after{
    content:"";
    /*絶対配置で線の位置を決める*/
    position: absolute;
    background: #555968;
    /*線の形状*/
    width: 0;
    height: 1px;
    /*アニメーションの指定*/
    transition: all 0.2s linear;
}

.navi-list::before{
  right: 0;
  bottom: 0;
}

.navi-list::after{
  left: 0;
  top: 0;
}

/*線の基点位置2 spanタグ*/

.navi-list span{
    display: block;
}

.navi-list span::before,
.navi-list span::after{
  content:"";
    /*絶対配置で線の位置を決める*/
  position: absolute;
  background: #0481A2;
    /*線の形状*/
  width:1px;
  height:0;
/*アニメーションの指定*/
  transition: all 0.1s linear;
}

.navi-list span::before{
  left: 0;
  bottom: 0;
}

.navi-list span::after{
  right: 0;
  top: 0;
}

/*現在地とhoverした際の線の変化*/
.navi-list.current::before,
.navi-list.current::after,
.navi-list:hover::before,
.navi-list:hover::after{
  width: 100%;
}

.navi-list:hover::after{
  transition-delay: 0s;/*すぐ線を出現させる*/
}

.navi-list:hover::before{
  transition-delay: 0.3s;/*線の出現を0.3秒遅らせる*/
}

.navi-list.current span::before,
.navi-list.current span::after,
.navi-list:hover span::before,
.navi-list:hover span::after{
  height: 100%;
}

.navi-list:hover span::before{
  transition-delay: 0.5s;/*線の出現を0.5秒遅らせる*/
}

.navi-list:hover span::after{
  transition-delay: 0.2s;/*線の出現を0.2秒遅らせる*/
}
/*========= レイアウトのためのCSS ===============*/

.lead{
  padding: 50px 20px;
}

.sp-nav {
	display: none;
}

@media screen and (max-width: 1024px) {
	.logo {
		padding-left: 30px;
	}
	
	.pc-nav ul {
    margin-left: auto;
		margin-right: 20px;
		padding-left: 0;
}
	
	.navi-list a {
	font-size: 17px;
}
}


@media screen and (max-width: 800px) {
/*スマホナビ*/
.pc-nav {
	display: none;
}

.sp-nav {
	display: block;
	width: 100%;
	height: 80px;
	position: fixed;
	top: 0;
	left: 0;
	position: relative;
}
	
.sp-nav .logo {
	display: block;
	width: 44px;
	padding: 0;
	position: absolute;
	top: 28px;
	right: 16px;
	}
	
.openbtn{
	z-index: 999;
	margin-right: auto;
	position: fixed;
	left: 10px;
	top: 20px;
	width: 42px;
    height:42px;
	cursor: pointer;
	background:#555968;
	border-radius: 50%;
}
	
/*ボタン内側*/

.openbtn span{
    display: inline-block;
    transition: all .4s;/*アニメーションの設定*/
    position: absolute;
	right: 10px;
    height: 2px;
	background-color: #fff;
  }


.openbtn span:nth-of-type(1) {
	top:14px;	
  	width: 50%;
}

.openbtn span:nth-of-type(2) {
	top:24px;
  	width:30%;
}

/*activeクラスが付与されると線が回転して×に*/

.openbtn.active span:nth-of-type(1) {
    top: 14px;
    left: 14px;
    transform: translateY(6px) rotate(-45deg);
    width: 35%;
}

.openbtn.active span:nth-of-type(2) {
    top: 26px;
    left: 14px;
    transform: translateY(-6px) rotate(45deg);
    width: 35%;
}
	
/*スマホナビリスト*/
	.sp-nav-wrap {
		  /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
		position:fixed;
		z-index: 999;
		/*ナビのスタート位置と形状*/
		top:-120%;
		left:0;
		width:100%;
		height: 300px;/*ナビの高さ*/
		background-color: rgba(255,255,255,.9);
		/*動き*/
		transition: all 1s;
		padding-top: 40px;
		text-align: center;
	}
	
	/*アクティブクラスがついたら位置を0に*/
	.sp-nav-wrap.panelactive{
    top: 80px;
	}
	
	.sp-nav ul {
		padding: 0;
	}
	
	.sp-nav .navi-list {
		height: 50px;
	}
		.navi-list::before,
	.navi-list::after{
		display: none;
	}
}

/*ヘッダーここまで*/
/*見出し共通*/
h1 {
width: 35%;
margin: 0;	
padding: 30px 0;	
font-size: 48px;
font-family: 'EB Garamond', serif;
font-weight: 400;
background-color: #555968;
color: #fff;	
text-align: center;
animation: SlideIn 2s;
margin-top: 180px;	
margin-bottom: 0;	
}

@keyframes SlideIn {
  0% {
    opacity: 0;
    transform: translateX(-64px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.main {
	width: 100%;
	margin-top: 150px;
	position: relative;
}

@media screen and (max-width: 1380px) {
	h1 {
		margin-top: 100px;
	}
}
@media screen and (max-width: 1200px) {
	h1 {
		font-size: 28px;
		padding: 20px 0;
	}
	
		
	.main {
		margin-top: 100px;
	}
}

@media screen and (max-width: 1024px) {
	h1 {
		width: 50%;
		margin-top: 60px;
	}
	
	  .main {
		margin-top: 60px;
		  
	}
	
}

@media screen and (max-width: 599px) {

	h1{
		width: 80%;
		font-size: 24px;
		padding: 10px 0;
	}
}
/*共通ここまで*/


.letter, .article {
	width: 100%;
	padding: 50px 0;
	margin-bottom: 250px;
	color: #555;
	z-index: 000;
	background:rgba(255,255,255,.9);
}

h2 {
	display: flex;
	font-size: 24px;
	color: #555968;
	margin-top: 0;
	font-family: 'EB Garamond', serif;
}


h2::after {
	content: "";
  flex-grow: 1;
  height: 1px; /* 線の太さ */
  background: #ccc; /* 線の色 */
  display: block;
  margin: 16px 0 0 10px;
}

.wrap {
	width: 70%;
	margin: 0;
	margin-left: auto;
	margin-right: auto;
}

@media screen and (max-width: 1500px) {
	.wrap {
		width: 80%;
	}
}

@media screen and (max-width: 1200px) {
	.letter {
		padding: 80px 0;
	}
	
	.article {
		margin: 100px 0;
		padding: 80px 0;
	}

	
}

@media screen and (max-width: 1029px) {
	.wrap {
		width: 90%;
	}
	
}

@media screen and (max-width: 599px) {
	.letter, .article {
		padding: 40px 0;
	}

	h2 {
		font-size: 20px;
		margin-bottom: 0;
	}
}

/*letter*/
.letter .wrap {
	position: relative;
}

.date {
	margin: 40px 0;
	text-align: center;
}

.date p {
	font-size: 20px;
	font-weight: bolder;
}

.date span {
	font-size: 18px;
	margin-right: 40px;
}

.date p br {
	display: none;
}

.letter-img img {
	display: block;
	width: 55%;
	margin-bottom: 20px;
	margin-left: auto;
	margin-right: auto;
}

.past-letters {
	color: #555;
}

.past-letters p {
	font-size: 18px;
	position: absolute;
	bottom: 5px;
	right: 50px;

}

.past-letters p::before {
content: '\f0da';
font-family: 'Font Awesome 5 Free';
font-weight: 700;
font-size: 18px;
padding-right: 20px;	
}

.past-letters:hover {
	color: #ccc;
}

@media screen and (max-width:1024px){
	.letter-img img {
		width: 80%;
	}

	.past-letters p {
		bottom: -50px!important;
		font-size: 14px;
	}
	
		.date p br {
		display: block;
	}
}

@media screen and (max-width:599px){
	.date {
		width: 100%;
		margin-left: auto;
		margin-right: auto;
	}

	.date p {
		font-size: 15px;
	}

	.date span {
		font-size: 14px;
		margin-right: 20px;
	}

	.letter-img img {
		width: 95%;
	}
}

/*article*/
.wrap ul {
	padding: 0;
	display: flex;
	justify-content: center;
	flex-direction: row;
	flex-wrap: wrap;
	width: 100%;
}

.wrap ul::after {
	display: block;
	content: "";
	width: 50%;
}

.wrap li {
	list-style: none;
	position: relative;
	width: 40%;
	height: 280px;
	margin-left: auto;
	margin-right: auto;
	border-bottom: 1px dashed #ccc;
}

.wrap li img {
	display: block;
	width: 35%;
	position: absolute;
	left: 20px;
	top: 50%;
	transform: translate(0, -50%);
}

.wrap li img:hover {
	opacity: 0.7;
}


.article-txt {
	position: absolute;
	top: 60px;
	right: 0;
	width: 55%;
}

.article-txt p {
	color: #555;
	font-size: 14px;
}

.article-txt p:hover {
	color: #ccc;
}

.article-txt p:first-child {
	font-weight: bolder;
	font-size: 16px;
	margin-bottom: 10px;
}

@media screen and (max-width:1200px) {
	.wrap li {
		width: 45%;
		height: 220px;
	}

	.wrap li img {
		width: 30%;
		left: 0;
	}
	
	.article-txt {
		top: 60px;
		left: 35%;
	}

	.article-txt p {
		margin-bottom: 10px;
	}
}

@media screen and (max-width:1024px) {
	.wrap li {
		width: 90%;
	}

	.wrap li img {
		width: 20%;
		left: 20px;
	}

	.article-txt {
		top: 60px;
		left: 30%;
		width: 70%;
	}

}

@media screen and (max-width:599px) {
	.wrap li {
		width: 100%;
		height: 160px;
	}

	.wrap li img {
		width: 25%;
		left: 0;
	}

	.article-txt {
		top: 30px;
		left: 30%;
	}

	.article-txt p {
		font-size: 12px;
	}

	.article-txt p:first-child {
		font-size: 13px;
	}

}


/*フッター*/
footer {
background-color:  rgba(85, 89, 104);
width: 100%;
height: 300px;
color: #fff;
position: relative;
	
}

.footer-shop {
width: 50%;
position: relative;	
	top: 40px;
	left: 10%;

}

.shop-txt {
white-space: nowrap;
}

.shop-txt h4 {
font-size: 18px;
font-weight: bolder;
margin: 0;
}

.shop-txt p,.time-txt p {
font-size: 13px;
margin: 0;
}

.time {
position: relative;
}

.time-txt {
position: absolute;
top: 0;
left: 210px;
}


/*インスタ,note*/

.footer-link {
	margin-top: 50px;
	width: 50%;
	margin-left: 0;
}


.sakai-img {
	display: block;
	width: 160px;
	}


.icon-wrap {
	position: relative;
	width: 280px;
	margin-left: 240px;
	margin-top: -30px;
}

.insta-icon {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(0,-50%);
	font-size: 40px;
	color: #fff;
}

.rc-img {
	display: block;
	width: 50px;
	position: absolute;
	top: 50%;
	left:  32%;
	transform: translate(0,-50%);
}

.rc-img img {
	width: 100%;
}

.note-img {
	display: block;
	width: 100px;
	position: absolute;
	top: 50%;
	right:  0;
	transform: translate(0,-50%);
}

.note-img img {
	width: 100%;
}

.insta-icon:hover, .note-img:hover, .rc-img:hover {
	opacity: 0.7;
}

	.br_sp {
		display: none;
	}


/*メニューリスト*/
.footer-navi {
position: absolute;
width: 25%;
left: 63%;
top: 40px;
}

.footer-navi ul {
padding: 0;
width: 100%;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
}

.footer-navi-list {
width: 50%;
margin-bottom: 10px;
list-style: none;
}

.footer-navi-list a {
text-decoration: none;
  color: #fff;
	white-space: nowrap;
	font-family: 'EB Garamond', serif;
}

.footer-navi-list a:hover {
color: rgba(255,255,255,0.6);
}

.footer-navi ul::after {
display: block;
	content: "";
	width: 50%;
}


/*コピーライト*/
.copyright p {
position: absolute;
left: 50%;
transform: translate(-50%);
bottom: 0;
font-size: 8px; 
white-space: nowrap;
color: #fff;
}


@media(max-width: 1200px) {
	.shop-txt {
		width: 50%;
	}
	.time-txt {
		left: 180px;
	}
.icon-wrap {
	position: relative;
	}

}

@media(max-width: 1024px) {	
	footer {
		height: 360px;
	}
	.footer-shop {
		left: 8%;
	}
	
.shop-txt {
		width: 60%;
	}
	
.shop-txt h4 {
font-size: 16px;
}
	
	.time-txt {
		left: 0;
		top: 25px;
	}
	
	.footer-link {
		margin-top: 80px;
	}

	.footer-navi {
		width: 30%;

}
}

@media(max-width: 780px) {
	footer {
		height: 600px;
	}
	
	footer p {
		font-size: 14px!important;
	}
	
	.footer-shop {
		width: 90%;
		left: 50%;
		transform: translate(-50%);
		margin-bottom: 40px;
	}

.shop-txt {
		width: 80%;
	margin-left: auto;
	margin-right: auto;
	}
	
	.time-txt {
		left: 50px;
		top: 20px;
	}

	.footer-link {
		width: 90%;
		margin-left: auto;
		margin-right: auto;
	}
	
	.sakai-img {
		width: 28%;
		margin-left: 0;
		margin-right: auto;
	}
	
	.icon-wrap {
		width: 60%;
		margin-left: auto;
		margin-right: 0;
	}
	
	.insta-icon {
		font-size: 38px;
	}
	
	.rc-img {
		width: 50px;
	}
	
	.note-img {
		width: 110px;
	}
	
	.shop-txt h4 {
		font-size: 18px;
	}
	
	.footer-navi {
		width: 90%;
		top: 340px;
		left: 50%;
		transform: translate(-50%);
		border-top: 1px #fff dashed;
		border-bottom: 1px #fff dashed;
	}
	
	
	.footer-navi-list {
		text-align: center;
		margin-bottom: 0;
		margin: 10px 0;
	}
	
	.footer-navi-list a {
		font-size: 16px;
	}
	
	.copyright p {
		font-size: 10px!important;
	}

}

@media(max-width: 600px) {
	.shop-txt {
		width: 90%;
	}
	


}


@media(max-width: 500px) {
		footer {
		height: 760px;
	}
	

	.shop-txt {
		width: 95%;
	}
	
.footer-link {
		position: absolute;
	top: 180px;
	left: 50%;
	transform: translate(-50%);
	margin: 0;
	}
	
		.sakai-img {
		width: 50%;
			margin-left: auto;
			margin-right: auto;
			margin-top: 40px;
	}
	
	.icon-wrap {
		width:90%;
		margin-top: 80px;
		margin-left: auto;
		margin-right: auto;
			
	}
	
	.note-img {
		right: -10px;
	}
	

	.br_sp {
		display: block;
	}
	
		.footer-navi {
		top: 500px;
	}
}








/* page-top */
#page-top {
    position: fixed;
    right: 5px;
    bottom: 20px;
    height: 50px;
    text-decoration: none;
    font-weight: bold;
    transform: rotate(90deg);
    font-size: 90%;
    line-height: 1.5rem;
    color: #ccc;
    padding: 0 0 0 35px;
    border-top: solid 1px;
	z-index: 999;
}

#page-top::before {
    content: "";
    display: block;
    position: absolute;
    top: -1px;
    left: 0px;
    width: 15px;
    border-top: solid 1px;
    transform: rotate(35deg);
    transform-origin: left top;
}

@media screen and (max-width: 599px){
	#page-top {
		padding-bottom: 30px;
		padding-right: 10px;
	}
	
}

