/*
Theme Name: original
Author URI: http://gallant-llc.com/
Description: layout style.
Author: gallant-kaori
Version: 1.0
*/

/* ==========================
   Link Reset
========================== */

a,
a:link,
a:visited,
a:hover,
a:active,
a:focus{
    color:inherit;
    text-decoration:none;
}

/* iPhone・Androidのタップ時の青ハイライトを消す */
a,
button,
input,
textarea,
select{
    -webkit-tap-highlight-color: transparent;
}

/* ボタンリセット */
button{
    appearance:none;
    -webkit-appearance:none;
    border:none;
    background:none;
    padding:0;
    margin:0;
    font:inherit;
    color:inherit;
    cursor:pointer;
}

/* フォーカス時の青枠を消す */
button:focus,
button:active,
a:focus,
a:active{
    outline:none;
    box-shadow:none;
}

/* Safari対策 */
a:focus-visible,
button:focus-visible{
    outline:none;
}

/* iOSの自動文字サイズ調整を防ぐ */
html{
    -webkit-text-size-adjust:100%;
}

/* =========================
NOISE
========================= */
html {
	scroll-behavior: smooth;
}
body::before {
	content: "";
	position: fixed;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background-image: url("../img/noise.png");
	background-repeat: repeat;
	opacity: .08;
	z-index: 9999;
	pointer-events: none;
	mix-blend-mode: multiply;
	animation: noiseMove 32s steps(10) infinite;
}

/*トップのseoテキスト*/
.sr-only{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
}
/* =========================
ANIMATION
========================= */

@keyframes noiseMove {

	0% {
		transform: translate(0,0);
	}

	10% {
		transform: translate(-5%,-5%);
	}

	20% {
		transform: translate(10%,5%);
	}

	30% {
		transform: translate(-5%,10%);
	}

	40% {
		transform: translate(5%,-15%);
	}

	50% {
		transform: translate(-10%,5%);
	}

	60% {
		transform: translate(15%,0%);
	}

	70% {
		transform: translate(0%,10%);
	}

	80% {
		transform: translate(-15%,0%);
	}

	90% {
		transform: translate(10%,5%);
	}

	100% {
		transform: translate(5%,0%);
	}

}


/* =========================
BASE
========================= */

html,
body {
	margin: 0;
	padding: 0;
}

body {
	background: #f9f7f5;
	color: #391428;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 300;
	line-height: 2;
	letter-spacing: .03em;
	overflow-x: hidden;
}

img {
	width: 100%;
	height: auto;
	display: block;
}

a {
	transition: .3s;
	color: inherit;
}

a:hover {
	text-decoration: none;
	color: inherit;
}

.container {
	max-width: 1100px;
}


/* =========================
SECTION
========================= */

.section-padding {
	padding: 110px 0;
}

.section-subtitle {
	display: block;
	font-size: 1em;
	letter-spacing: .25em;
	margin-bottom: 15px;
	font-family: 'Italiana', serif;
	opacity: .7;
}

.section-title {
	font-size: 34px;
	line-height: 1.7;
	margin-bottom: 30px;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 300;
}

.section-heading {
	margin-bottom: 20px;
}


/* =========================
HEADER
========================= */

.site-header {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 10000;
	padding: 28px 0;
}
.site-header::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 140px;
	background: linear-gradient(
		to bottom,
		rgba(0,0,0,.45),
		rgba(0,0,0,0)
	);
	z-index: -1;
}
.header-inner {
	width: 92%;
	margin: 0 auto;

	display: flex;
	align-items: center;
	justify-content: space-between;
}


/* =========================
LOGO
========================= */

.site-logo {
	position: relative;
	z-index: 20;
	top:50px;
	left:10px;
}

.site-logo img {
	width: auto;
	height: 62px;
	display: block;
}


/* =========================
PC NAVIGATION
========================= */

.main-nav {
	position: relative;
	z-index: 20;
	top:50px;
}

.main-nav ul {
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
}

.main-nav li {
	list-style: none;
	margin-left: 35px;
}

.main-nav li a {
	color: #ECE7DF;
	font-size: 15px;
	font-family: 'Italiana', serif;
	letter-spacing: .4em;
	display: block;
}

.main-nav li a span {
	display: block;
	font-size: 10px;
	letter-spacing: .12em;
	opacity: .7;
	text-align:center;
	margin:0;
	font-family: 'Noto Sans JP', sans-serif;
}


/* =========================
TOP HERO SLIDER
========================= */

#top-slider {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
}

#top-slider .swiper {
	width: 100%;
	height: 100%;
}

#top-slider .swiper-wrapper {
	height: 100%;
}

#top-slider .swiper-slide {
	width: 100%;
	height: 100%;
}

#top-slider .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/* =========================
SLIDER OVERLAY
========================= */

.slider-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.28);
	z-index: 2;
}


/* =========================
HERO COPY
========================= */

.hero-copy {
	position: absolute;
	left: 7%;
	bottom: 10%;
	z-index: 10;
	color: #ECE7DF;
}

.hero-sub {
	display: block;
	font-size: 12px;
	letter-spacing: .25em;
	margin-bottom: 18px;
	font-family: 'Italiana', serif;

}

.hero-title {
	font-size: 24px;
	line-height: 1.6;
	color: #ECE7DF;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 300;
	letter-spacing:3px;
}


/* =========================
CONCEPT
========================= */

.concept-text {
	font-size: 15px;
}
.concept-flex {

	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 6%;
}

.concept-image {
	width: 26%;
	position: relative;
	overflow: hidden;
}

.concept-image img {

	width: 100%;
	height: 720px;

	object-fit: cover;

	border-radius: 2px;

	will-change: transform;
}

.concept-center {

	width: 36%;

	text-align: center;
}

.concept-copy {

	font-size: 14px;

	letter-spacing: .18em;

	margin-bottom: 35px;

	opacity: .7;
}

.concept-text {

	font-size: 14px;

	line-height: 2.5;
}
.concept-image{
    position:relative;
    overflow:hidden;
}

.concept-image img{
    width:100%;
    height:130%;
    object-fit:cover;
}
.concept-right{
    margin-top:-120px;
}

/*para*/
.parallax{
    overflow:hidden;
    position:relative;
}

.parallax img{
    width:100%;
    transition:transform .1s linear;
    will-change:transform;
}
/* =========================
system
========================= */
#system{
	background-image:url(../img/system.jpg);
	width:100%;
	height:100%;
	background-size:cover;
	object-fit:cover;
	

}
#system .section-subtitle,#system .section-title,#system .system_text{
	color:#ECE7DF;
}
.system-box{
    background:#f9f7f5;
    border:1px solid #e6ded1;
    padding:40px;
    box-shadow:0 8px 20px rgba(0,0,0,.05);
}



.system-box::before{
    content:"";
    display:block;
    width:60px;
    height:3px;
    background:#5C2733;
    margin-bottom:20px;
}
.system-box h3{
font-size:1.3rem;
margin-bottom:25px;
font-weight:600;
}
/*link**/

.circle-link{
    position:relative;
    width:220px;
    height:220px;
    margin-left:auto;

    display:flex;
    align-items:center;
    justify-content:center;

    text-decoration:none;
}

/* 円周テキスト */
.circle-text{
    position:absolute;
    width:100%;
    height:100%;

    opacity:0;

    transition:opacity .4s ease;
}

.circle-text text{
    fill:#ECE7DF;
    font-size:12px;
    letter-spacing:3px;
    font-family:'Italiana', serif;
}

/* AND MORE */
.circle-label{
    position:absolute;

    top:50%;
    left:50%;

    transform:translate(-50%,-50%);

    z-index:2;

    white-space:nowrap;

    font-family:'Italiana', serif;
    font-size:1rem;
    letter-spacing:.2em;

    color:#ECE7DF;

    transition:
        opacity .3s ease,
        transform .3s ease;
	font-size:.9rem;
    letter-spacing:.5em;
}

/* 矢印 */
.circle-arrow{
    position:absolute;

    top:68%;
    left:50%;

    width:30px;
	height:1px;
	opacity:.7;

    background:#ECE7DF;

    transform:translateX(-50%);

    transition:.7s ease;
}
.circle-arrow::after{
    content:"";

    position:absolute;

    right:0;
    top:50%;

    width:8px;
    height:8px;

    border-top:1px solid #ECE7DF;
    border-right:1px solid #ECE7DF;

    transform:
        translateY(-50%)
        rotate(45deg);
}
.circle-link:hover .circle-arrow{
    top:50%;
    transform:translateX(-50%) scale(1.1);
}
/* hover */
.circle-link:hover .circle-text{
    opacity:1;
    animation:rotateCircle 15s linear infinite;
}

.circle-link:hover .circle-label{
    opacity:0;
}

.circle-link:hover .circle-arrow{
    top:50%;
    transform:translate(-50%,-50%) scale(1.15);
}

/* 回転 */
@keyframes rotateCircle{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }

}
/* =========================
menu
========================= */

.menu-guide-wrap{
    display:flex;
    align-items:center;
    gap:80px;
}

.menu-list{
    flex:1;
}

.menu-link{
    display:flex;
    align-items:center;

    padding:25px 0;
	font-family: 'Italiana', serif;


    border-bottom:1px solid #e3e0e0;

    font-size:2rem;
    font-weight:600;
    text-decoration:none;
	letter-spacing:3px;
}

.menu-link span{
    margin-right:20px;
    color:#93403e;
	font-family: 'Italiana', serif;
	font-style:italic;


}

.menu-preview{
    width:450px;
    flex-shrink:0;
}


.menu-preview img{
    width:100%;
    display:block;
    opacity:1;
    transition:opacity .4s ease;
}

@media (min-width:992px){

    .menu-preview img{
        aspect-ratio: 3 / 4;
        object-fit: cover;
    }

}

.menu-link{
	position:relative;
	display:flex;
	align-items:center;
	padding:25px 80px 25px 0;
	text-decoration:none;
}
.menu-link::before{
	content:"";
	position:absolute;
	right:0;
	top:50%;
	width:40px;
	height:1px;
	background:#5C2733;
	transform:translateY(-50%);
	transition:.3s ease;
}

.menu-link::after{
	content:"";
	position:absolute;
	right:0;
	top:50%;
	width:6px;
	height:6px;
	border-top:1px solid #5C2733;
	border-right:1px solid #5C2733;
	transform:translateY(-50%) rotate(45deg);
	transition:.3s ease;
}
.menu-link:hover::before{
	width:60px;
}

.menu-link:hover::after{
	right:-10px;
}

/* =========================
JOURNAL
========================= */

.journal-card {
	padding: 25px 0;
	border-bottom: 1px solid rgba(0,0,0,.08);
	display: block;
}

.journal-card:first-child {
	border-top: 1px solid rgba(0,0,0,.08);
}

.journal-date {
	font-size: 12px;
	letter-spacing: .08em;
	opacity: .7;
}

.journal-title {
	font-size: 17px;
	line-height: 1.8;
	margin-top: 10px;
}



/* =========================
ACCESS
========================= */
#access{
	background-color:#eae9e7;
}
.access-text {
	margin-bottom: 10px;
}


/* =========================
DRAWER MENU
========================= */

.check{
	display:none;
}

/* MENU BUTTON */

.menu-btn{
	position:fixed;
	top:0;
	right:0;
	width:70px;
	height:75px;
	cursor:pointer;
	z-index:111111111114;
	background-color:#3c3934;
	display:none;
}

/* 3本線 */

.bar{
	position:absolute;
	left:20px;
	width:34px;
	height:1px;
	background:#ECE7DF;
	transition:.5s;
	transform-origin:center center;
}
.bar.top{
	top:20px;
}

.bar.middle{
	top:30px;
}

.bar.bottom{
	top:40px;
}

/* MENU文字 */

.menu-btn__text{
	position:absolute;
	left:53%;
	bottom:5px;
	transform:translateX(-50%);
	color:#ECE7DF;
	font-size:12px;
	letter-spacing:2px;
	font-family:'Italiana', serif;
	font-weight: bold;
}

/* DRAWER */

.drawer-menu{
	position:fixed;
	top:0;
	right:0;
	width:60%;
	height:100%;
	padding:100px 0;
	background:#292626;
	transform:perspective(500px) rotateY(-90deg);
	transform-origin:right center;
	transition:.5s;
	opacity:0;
	z-index:1111111111;
	overflow-y:auto;
}

.drawer-menu nav ul{
	padding:20px;
	margin:0;
}

.drawer-menu li{
	list-style:none;
}

.drawer-menu li a{
	display:block;

	color:#ECE7DF;
	font-weight:bold;
	padding:15px 20px !important;
	border-bottom:1px solid #3c3934;
	letter-spacing:4px;
	font-family:'Italiana', serif;
}
.drawer-menu li a span{
	display:block;
	font-size:.6em;
}
/* OPEN */

.check:checked ~ .drawer-menu{
	transform:none;
	opacity:1;
}

.check:checked ~ .menu-btn .menu-btn__text{
	opacity:0;
}

.check:checked ~ .menu-btn .bar.top{
	width:34px;
	top:34px;
	transform:rotate(45deg);
}

.check:checked ~ .menu-btn .bar.middle{
	opacity:0;
}

.check:checked ~ .menu-btn .bar.bottom{
	width:34px;
	top:34px;
	transform:rotate(-45deg);
}
/* =========================
SP
========================= */

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

	.section-padding {
		padding: 70px 0;
	}

	.section-title {
		font-size: 25px;
	}

	.site-header {
		padding: 20px 0;
	}

	.header-inner {
		width: 90%;
	}

	.site-logo img {
		height: 34px;
	}

	.main-nav {
		display: none;
	}

	.menu-btn {
		display: block;
	}

	.hero-copy {
		left: 7%;
		right: 7%;
		bottom: 8%;
	}
	.hero-title{
	font-size:18px;
	line-height:1.8;
	letter-spacing:1px;
}
	.hero-sub{
		font-size: .8em;
	}
	.drink-title {
		font-size: 14px;
	}

	.journal-title {
		font-size: 15px;
	}

	.drawer-menu {
		width: 85%;
	}
	/**concept*/
	.concept-flex{
		display:block;
	}

	.concept-image,
	.concept-center{
		width:100%;
	}

	.concept-image{
		margin-bottom:30px;
		width:60%

	}

	.concept-image img{
		height:150px;
	}

	.concept-right{
		margin-top:40px;
		margin-left:auto;
	}
	/*system**/
	.system-box{
	padding:25px;
	}
	/*menu**/
	.menu-guide-wrap{
	display:block;
	}

	.menu-preview{
		width:100%;
		margin-top:30px;
	}

	
	.section-padding{
	padding:60px 0;
	}
	
}
@media(max-width:991px){

    .parallax img{
        transform:none !important;
    }
	.section-subtitle{
		font-weight: bold;
	}

}

/*top_menu*/
@media screen and (max-width:991px){

	.menu-preview{
		display:none;
	}

	.menu-guide-wrap{
		display:block;
	}

	.menu-list{
		display:grid;
		grid-template-columns:1fr 1fr;
		gap:15px;
	}

	.menu-link{
		position:relative;
		height:180px;

		display:flex;
		flex-direction:column;
		justify-content:flex-end;

		padding:20px;
		border:none;

		color:#fff;

		background-size:cover;
		background-position:center;

		overflow:hidden;
		z-index:1;

		text-shadow:0 2px 5px rgba(0,0,0,.5);
	}

	.menu-link::before{
		display:none;
	}
	.menu-link::after{
		display:none;
	}

	.menu-link span{
		position:relative;
		z-index:2;

		margin:0;
		color:#fff;
		font-size:1.1rem;
	}

	.menu-list a{
		font-size:1.1rem;
		letter-spacing:1px;
		color:#f9f7f5;
	}

	.menu-link > *{
		position:relative;
		z-index:2;
	}
	.menu-list{
		padding:15px
	}
	
}
/*footer**/
footer{
	background-color:#deddda;
	padding:3rem 0;
}
.insta a{
	display:block;
	width:60px;
	margin:10px auto;


}
.insta a img{
	width:60px;
	height:60px;
	height:auto;
	background-color:#f6f6f5;
	border-radius:50%;
	padding:16px;
	display:block;
	transition:.4s linear;
}
.insta a:hover img{
	background-color:#eee;
}
.footer-logo a{
	display:block;
	max-width:220px;
	margin:30px auto;
}
.f_tel{

}
.f_tel img {
	width: 23px;
	display: inline-block;
	margin-right: 10px;
	vertical-align: middle;
	margin-top: -5px;
}