
/* --------------------------------------
  Google Fonts
-------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@100;200;300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair:ital,opsz,wght@0,5..1200,300..900;1,5..1200,300..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&family=Playfair:ital,opsz,wght@0,5..1200,300..900;1,5..1200,300..900&display=swap');

/* --------------------------------------
  General
-------------------------------------- */
body, html {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
}

img, iframe {
  max-width: 100%;
  height: auto;
}

/* --------------------------------------
  Header
-------------------------------------- */

header {
	text-align: center;
	padding: 4em 0;
	position: relative;
}

header h1.header-logo img {
	width: 500px;
	height: auto;
}

header img.header-logo-sp {
	display: none;
}

header p {
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.5em;
}

/* --------------------------------------
  Language Switcher
-------------------------------------- */

.lang-switcher {
	position: absolute;
	top: 1.5em;
	right: 1.5em;
}

.lang-switcher .btn {
	color: #1a1a1a;
	border: 1px solid #1a1a1a;
	border-radius: 5px;
	padding: 0.5em 1.1em;
	font-family: "Lato", sans-serif;
	font-size: 12px;
	letter-spacing: 0.05em;
	background: #fff;
	position: relative;
	overflow: hidden;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
}

.lang-switcher .btn i {
	font-size: 12px;
}

.lang-switcher .btn:hover,
.lang-switcher .btn[aria-expanded="true"] {
	border-color: #1a1a1a;
	background: #dfdfdf;
}

.lang-switcher .dropdown-menu {
	min-width: auto;
	width: 100%;
	border: none;
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
	font-family: "Lato", sans-serif;
	font-size: 12px;
	padding: 0.4em;
}

.lang-switcher .dropdown-item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	border-radius: 5px;
	padding: 0.55em 0.8em;
}

.lang-switcher .dropdown-item .flag {
	font-size: 14px;
	line-height: 1;
	position: relative;
	top: -2px;
}

.lang-switcher .dropdown-item .lang-text {
	line-height: 1;
}

.lang-switcher .dropdown-item.active,
.lang-switcher .dropdown-item:active,
.lang-switcher .dropdown-item:hover {
	background-color: #dfdfdf;
	color: #1a1a1a;
}

/* --------------------------------------
  Main
-------------------------------------- */

.shop-wrapper {
	position: relative;
}

.shop-item {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 1.5em 1.5em;
}

.shop-header {
	color: #FFF;
	text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.2);
}

.shop-header h2 {
	font-size: 42px;
	font-family: "Playfair", serif;
	font-weight: 100;
	line-height: 1;
	margin: 0 0 10px;
}

.shop-header p {
	font-size: 18px;
	font-family: "Playfair", serif;
	font-weight: 100;
	line-height: 1;
	margin: 0;
}

.shop-image img {
	width: 100%;
	height: auto;
	border-radius: 5px;
}

.shop-btn {
	width: 100%;
	position: relative;
}

.shop-btn a.btn {
 	color: #FFF;
 	border: 1px solid #FFF;
 	border-radius: 5px;
 	padding: 0.75em 1em;
 	width: 100%;
 	position: relative;
 	overflow: hidden;
 	z-index: 1;
}

.shop-btn a.btn::before {
 	content: '';
 	position: absolute;
 	top: 0;
 	left: -100%;
 	width: 100%;
 	height: 100%;
 	background: rgba(255, 255, 255, .8);
 	transition: left 0.1s ease-in-out;
 	z-index: -1;
}

.shop-btn a.btn:hover::before {
 	left: 0;
}

.shop-btn a.btn:hover {
 	color: #1a1a1a;
 	border: 1px solid rgba(255, 255, 255, .8);
}

.shop-btn a.btn,
.recruit-btn a.btn {
	text-align: left;
}

.shop-btn a.btn::after {
	content: ">";
    position: absolute;
    top: 50%;
	right: 1em;
    transform: translateY(-50%);
    font-size: 16px;
	font-weight: bold;
}

.shop-btn a.btn h3,
.recruit-btn a.btn h3 {
	font-family: "IBM Plex Sans JP";
	font-weight: 700;
	font-size: 15px;
	margin: 0;
	letter-spacing: 0.1em;
}

.shop-btn a.btn p,
.recruit-btn a.btn p {
	font-family: "Lato", sans-serif;
	font-weight: 400;
	font-size: 10px;
	margin: 0;
	letter-spacing: 0.1em;
}

html[lang="en"] .shop-btn a.btn p,
html[lang="en"] .recruit-btn a.btn p {
	display: none;
}

html[lang="en"] .shop-btn a.btn h3,
html[lang="en"] .recruit-btn a.btn h3 {
	font-family: "Lato", sans-serif;
}

.recruit-btn {
	display: flex;
	width: 100%;
}

.recruit-btn a.btn {
	color: #FFF;
	padding: 0.75em 1em;
	width: 100%;
}

.recruit-btn a.cast-btn,
.recruit-btn a.staff-btn {
	position: relative;
}


.recruit-btn a.cast-btn::after,
.recruit-btn a.staff-btn::after {
	content: ">";
    position: absolute;
    top: 50%;
	right: 1em;
    transform: translateY(-50%);
    font-size: 16px;
	font-weight: bold;
}

.recruit-btn a.cast-btn {
	background: #f27186;
	margin-right: 4px;
}

.recruit-btn a.staff-btn {
	background: #3f5767;
	margin-left: 4px;
}

.recruit-btn a.cast-btn:active {
	color: #FFF;
	background: #f27186;
	border: 1px solid #f27186;
	opacity: .7;
}

.recruit-btn a.staff-btn:active {
	color: #FFF;
	background: #3f5767;
	border: 1px solid #3f5767;
	opacity: .7;
}

/* --------------------------------------
  Footer
-------------------------------------- */

footer {
	width: 100%;
	min-height: calc(100vh - 811px);
	background: #0f0f0f;
	text-align: center;
	margin: 6em 0 0;
	padding: 3em 0 1em;
}

footer div.footer-contents {
	color: #FFF;
	margin-bottom: 1em;
	display: flex;
	justify-content: space-around;
}

footer div.footer-logo {
	margin-bottom: 2em;
}

footer div.footer-logo img {
	width: 300px;
	height: auto;
}

footer div.footer-logo p{
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	font-size: 11px;
	letter-spacing: 0.5em;
	margin-top: 2em;
}

footer nav.footer-nav {
	display: flex;
	justify-content: center;
}

footer div.footer-nav-groups {
	margin-left: 2em;
	width: 220px;
	text-align: left;
}

footer nav.footer-nav h4.footer-nav-title {
	border-bottom: 1px solid #ADADAD;
	font-family: "Lato", sans-serif;
	font-size: 20px;
	margin-bottom: 0.75em;
	padding-bottom: 0.2em;
}

footer nav.footer-nav ul {
	list-style: none;
	padding: 0;
}

footer nav.footer-nav li {
	margin-bottom: 0.5em;
}

footer nav.footer-nav li a {
	font-size: 14px;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-weight: 400;
	color: #ADADAD;
	text-decoration: none;
}

footer nav.footer-nav li a::after {
	content: ">";
	font-size: 12px;
	margin-left: 0.7em;
	vertical-align: 1px;
}

footer nav.footer-nav div.footer-nav-item {
	display: flex;
	align-items: center;
	line-height: 1;
	vertical-align: middle;
	margin-bottom: 0.5em;
}

footer nav.footer-nav div.footer-nav-item > :first-child {
	flex-grow: 2;
}

footer nav.footer-nav div.footer-nav-item span {
	font-family: "Lato", sans-serif;
	font-size: 14px;
	color: #FFF;
}

footer nav.footer-nav div.footer-nav-item a {
	color: #ADADAD;
	margin-left: 0.7em;
}

footer nav.footer-nav div.footer-nav-item i {
	font-size: 24px;
	color: #ADADAD;
}

footer nav.footer-nav div.footer-nav-item i.fa-tiktok {
	font-size: 21px;
}

footer p.copyright {
	font-family: "Lato", sans-serif;
	font-weight: 400;
	font-size: 11px;
	color: #ADADAD;
	letter-spacing: 0.35em;
	padding-top: 2em;
	border-top: 1px solid #ADADAD;
}

/* --------------------------------------
  max-width 1400px まで
-------------------------------------- */

@media screen and (max-width:1400px) {
	.shop-header h2 {
		font-size: 38px;
	}

	.shop-header p {
		font-size: 16px;
	}

	html[lang="en"] .shop-btn a.btn h3, html[lang="en"] .recruit-btn a.btn h3 {
    font-size: 12px;
	}
}

/* --------------------------------------
  max-width 1200px まで
-------------------------------------- */

@media screen and (max-width:1200px) {
	.shop-header h2 {
		font-size: 32px;
		margin-bottom: 5px;
	}

	.shop-header p {
		font-size: 14px;
	}

	.shop-btn a.btn h3,
	.recruit-btn a.btn h3 {
		font-size: 12px;
		letter-spacing: 0.1em;
	}

	.shop-btn a.btn p,
	.recruit-btn a.btn p {
		font-size: 10px;
		letter-spacing: 0.1em;
	}

	.shop-btn a.btn,
	.recruit-btn a.btn {
		padding: 0.6em 0.6em;
	}

	.shop-btn a.btn::after,
	.recruit-btn a.cast-btn::after,
	.recruit-btn a.staff-btn::after {
		font-size: 10px;
		right: 0.7em;
	}
}

/* --------------------------------------
  max-width 991px まで
-------------------------------------- */

@media screen and (max-width:991px) {
	.shop-item-group {
		margin-bottom: 7rem;
	}

	.last-item {
	    margin-bottom: 3rem;
	}

	.shop-header h2 {
		font-size: 52px;
		margin-bottom: 0.2em;
	}

	.shop-header p {
		font-size: 24px;
	}

	.shop-btn a.btn h3,
	.recruit-btn a.btn h3 {
		font-size: 18px;
		letter-spacing: 0.1em;
	}

	.shop-btn a.btn p,
	.recruit-btn a.btn p {
		font-size: 14px;
		letter-spacing: 0.1em;
	}

	.shop-btn a.btn,
	.recruit-btn a.btn {
		padding: 1.5em 1.5em;
	}

	.shop-btn a.btn::after,
	.recruit-btn a.cast-btn::after,
	.recruit-btn a.staff-btn::after {
		font-size: 24px;
		right: 1em;
		top: 45%;
	}

	html[lang="en"] .shop-btn a.btn h3, html[lang="en"] .recruit-btn a.btn h3 {
    font-size: 18px;
	}

	footer {
		margin: 4em 0 0;
	    padding: 4em 0;
	}

	footer div.footer-contents {
		display: block;
	}

	footer div.footer-logo {
	    margin-bottom: 4em;
	}

	footer div.footer-nav-groups:first-child {
	    margin-left: 0;
	}

}

/* --------------------------------------
  max-width 576px まで
-------------------------------------- */

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

	figure {
		margin-bottom: 0.75rem;
	}

	header {
		padding: 3em 0;
	}

	header h1.header-logo img.header-logo-pc {
		display: none;
	}

	header h1.header-logo img.header-logo-sp {
		display: block;
		width: 80%;
		margin: 0 auto 1rem;
	}

	header p {
		font-size: 2.5vw;
		letter-spacing: 0.5em;
	}

	.lang-switcher {
		top: 0.5em;
		right: 0.5em;
	}

	.lang-switcher .btn {
		padding: 0.4em 0.7em;
		font-size: 2.5vw;
	}

	.shop-item-group {
        margin-bottom: 3rem;
    }

    .last-item {
	    margin-bottom: 1rem;
	}

	.shop-header h2 {
		font-size: 10.5vw;
	}

	.shop-header p {
		font-size: 5vw;
	}

	.shop-btn a.btn,
	.recruit-btn a.btn {
	 	padding: 1em 1em;
	}

	.shop-btn a.btn h3,
	.recruit-btn a.btn h3 {
		font-size: 3.5vw;
		letter-spacing: 0.05em;
	}

	.shop-btn a.btn p,
	.recruit-btn a.btn p {
		font-size: 2.5vw;
		letter-spacing: 0.1em;
	}

	.shop-btn a.btn::after,
	.recruit-btn a.cast-btn::after,
	.recruit-btn a.staff-btn::after {
	    top: 50%;
		right: 1em;
	    transform: translateY(-50%);
	    font-size: 4vw;
	}

	html[lang="en"] .shop-btn a.btn h3, html[lang="en"] .recruit-btn a.btn h3 {
    font-size: 3vw;
	}

	footer {
		margin: 4em 0 0;
	    padding: 3em 0;
	}

	footer div.footer-contents {
		margin-bottom: 3em;
	}

	footer div.footer-logo img {
	    width: 70%;
	}

	footer div.footer-logo p {
		font-size: 2.2vw;
		letter-spacing: 0.5em;
		margin-top: 2em;
	}

	footer nav.footer-nav {
		display: block;
    }

	footer nav.footer-nav ul {
		line-height: 1.7;
		padding: 0;
	}

	footer nav.footer-nav li {
	    margin-bottom: 0;
	}

	footer nav.footer-nav a {
		font-size: 3vw;
	}

	footer nav.footer-nav a::after {
		font-size: 2.5vw;
		margin-left: 0.5em;
	}

	footer div.footer-nav-groups {
		margin-left: 0;
		width: 70%;
		text-align: left;
		margin: 0 auto;
	}

	    footer div.footer-nav-groups:first-child {
        margin: 0 auto 3em;
    }

	footer p.copyright {
	    font-size: 2vw;
	    line-height: 1.7;
	    letter-spacing: 0.35em;
	    padding-top: 3em;
	}
}