@charset "utf-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css?family=Noto+Serif+JP:300,500,700&display=swap&subset=japanese');

/* -------------------------------------------------------------------------- */

/*	CSS Reset
/* -------------------------------------------------------------------------- */

html, body {
	border: none;
	margin: 0;
	padding: 0;
}
h1, h2, h3, h4, h5, h6, p, blockquote, address, big, cite, code, em, font, img, small, strike, sub, sup, li, ol, ul, fieldset, form, label, legend, button, table, caption, tr, th, td {
	border: none;
	font-size: inherit;
	line-height: inherit;
	margin: 0;
	padding: 0;
	text-align: inherit;
}
blockquote::before,
blockquote::after {
	content: "";
}

/* -------------------------------------------------------------------------- */

/*	 Document Setup
/* -------------------------------------------------------------------------- */

html {
	font-size: 62.5%; /* 1rem = 10px */
	scroll-behavior: smooth;
}
body {
	background: #fff;
	box-sizing: border-box;
	color: #000;
	font-family: -apple-system, BlinkMacSystemFont, "Caviar Dreams", "Kozuka Gothic Pr6N" , "Hiragino Sans", Meiryo, "sans-serif";
	font-size: 1.6rem;
	letter-spacing: -0.015em;
	text-align: left;
}
*,
*::before,
*::after {
	box-sizing: inherit;
	-webkit-font-smoothing: antialiased;
	word-break: break-word;
	word-wrap: break-word;
}

/* Clearing ---------------------------------- */

.group::after,
.entry-content::after {
	clear: both;
	content: "";
	display: block;
}

/* Fonts ------------------------------------- */

@font-face {
	font-family: "Caviar Dreams";
	font-weight: 100 900;
	font-style: normal;
	src: url('../fonts/CaviarDreams_Bold.woff2') format('woff2'),
		 url('../fonts/CaviarDreams_Bold.woff') format('woff'),
		 url('../fonts/CaviarDreams_Bold.ttf')  format('truetype'),
		 url('../fonts/CaviarDreams_Bold.eot') format('embedded-opentype');
}

.font-mincho {
	/*font-family: "Kozuka Mincho Pro", "Hiragino Mincho ProN", YuMincho, "Yu Mincho", "serif";*/
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
}
.font-gothic {
	font-family: "Kozuka Gothic Pr6N" , "Hiragino Sans", Meiryo, "sans-serif";
}

/* -------------------------------------------------------------------------- */

/*	2. Element Base
/* ---------------------------------------------*---------------------------- */

main {
	display: block;
}
.wrap {
	overflow: hidden;
}
h2,
h3,
h4,
h5,
h6,
.faux-heading {
	font-feature-settings: "lnum";
	font-variant-numeric: lining-nums;
	font-weight: 700;
	letter-spacing: -0.0415625em;
	line-height: 1.75;
}
p {
	line-height: 1.5;
	margin: 0 0 1em 0;
}
em,
i,
q,
dfn {
	font-style: italic;
}
em em,
em i,
i em,
i i,
cite em,
cite i {
	font-weight: bolder;
}
big {
	font-size: 1.2em;
}
small {
	font-size: 0.75em;
}
b,
strong,
.bold {
	font-weight: 700;
}
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sup {
	top: -0.5em;
}
sub {
	bottom: -0.25em;
}
address {
	line-height: 1.5;
	margin: 0 0 2rem 0;
}
a {
	color: #000;
	text-decoration: none;
	outline: none;
}
a:hover,
a:focus {
	outline: none;
	text-decoration: none;
}
hr {
	border-style: solid;
	border-width: 0.1rem 0 0 0;
	border-color: #898989;
	margin: 4rem 0 0;
	margin-left: auto;
	margin-right: auto;
	max-width: 100rem;
	width: calc(100% - 4rem);
}
hr.hr-dot {
	background: url("../images/common/line.svg") repeat-x;
	background-size: 1000px 3px;
	border: none;
	height: 0.3rem;
	overflow: visible;
	position: relative;
}
@media screen and ( min-width: 897px ) {
	.hover-img:hover img {
		opacity: 0.8;
		transition: opacity 0.3s linear;
	}
}

/* Lists ------------------------------------- */

ul,
ol {
	margin: 0 0 3rem 3rem;
}
ul {
	list-style: disc;
}
ul ul {
	list-style: circle;
}
ul ul ul {
	list-style: square;
}
ol {
	list-style: decimal;
}
ol ol {
	list-style: lower-alpha;
}
ol ol ol {
	list-style: lower-roman;
}
li {
	line-height: 1.5;
	margin: 0.5rem 0 0 2rem;
}
li > ul,
li > ol {
	margin: 1rem 0 0 2rem;
}
.reset-list-style,
.reset-list-style ul,
.reset-list-style ol {
	list-style: none;
	margin: 0;
}
.reset-list-style li {
	margin: 0;
}

dt,
dd {
	line-height: 1.5;
}
dt {
	font-weight: 700;
}
dt + dd {
	margin-top: 0.5rem;
}
dd + dt {
	margin-top: 1.5rem;
}

/* Media ------------------------------------- */

figure {
	display: block;
	margin: 0;
}
iframe {
	display: block;
	max-width: 100%;
}
video {
	display: block;
}
svg,
img,
embed,
object {
	display: block;
	height: auto;
	max-width: 100%;
}
figcaption,
.caption-text {
	color: #000;
	display: block;
	font-weight: 500;
	line-height: 1.2;
	margin-top: 1.5rem;
}
figcaption a,
.caption-text a {
	color: inherit;
}

/* GALLERIES */

.gallery {
	display: flex;
	flex-wrap: wrap;
	margin: 3em 0 3em -0.8em;
	width: calc(100% + 1.6em);
}
.gallery-item {
	margin: 0.8em 0;
	padding: 0 0.8em;
	width: 100%;
}
.gallery-caption {
	display: block;
	margin-top: 0.8em;
}


/* Tables ------------------------------------ */

table {
	border-collapse: collapse;
	border-spacing: 0;
	empty-cells: show;
	font-size: 1.6rem;
	margin: 4rem 0;
	max-width: 100%;
	overflow: hidden;
	width: 100%;
}
.alignleft > table {
	margin: 0;
}
.alignright > table {
	margin: 0;
}
th,
td {
	line-height: 1.4;
	margin: 0;
	overflow: visible;
	padding: 0.5em;
}
caption {
	background: #dcd7ca;
	font-weight: 600;
	padding: 0.5em;
	text-align: center;
}
thead {
	vertical-align: bottom;
	white-space: nowrap;
}
th {
	font-weight: 700;
}

/* -------------------------------------------------------------------------- */

/*	3. Helper Classes
/* -------------------------------------------------------------------------- */

/* Layout ------------------------------------ */

.no-margin {
	margin: 0 !important;
}
.no-margin-top {
	margin-top: 0 !important;
}
.no-margin-bottom {
	margin-bottom: 0 !important;
}
.no-padding {
	padding: 0 !important;
}
.no-padding-top {
	padding-top: 0 !important;
}
.no-padding-bottom {
	padding-bottom: 0 !important;
}

/* Sections ---------------------------------- */

section {
	padding: 5rem 0;
	width: 100%;
}
.section-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 100rem;
	width: calc(100% - 4rem);
}
.section-inner.max-percentage {
	width: 100%;
}
.section-inner.thin {
	max-width: 52rem;
}
.section-inner.small {
	max-width: 84rem;
}
.section-inner.medium {
	max-width: 95.5rem;
}
.section-inner.no-margin {
	margin: 0;
}

/* Typography -------------------------------- */

.font-size-xl {
	font-size: 1.25em;
}
.font-size-xs {
	font-size: 0.8em;
}

/* -------------------------------------------------------------------------- */

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

.header {
	background: #fff;
	position: relative;
}
.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 100rem;
	margin: 0 auto;
	width: calc(100% - 4rem);
	z-index: 100;
}

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

.header-title a {
	background: url("../images/common/logo.svg") no-repeat;
	display: block;
	font-size: 0;
}

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

.header-navigation ul li a {
	font-size: 1.5rem;
	text-decoration: none;
}

/* Header Button Menu ------------------------- */

.header-btn-menu{
	display: none;
}

@media screen and ( min-width: 897px ) {
	.header-inner {
		padding: 5rem 0 4rem;
	}
	.header-title a {
		background-size: 137px 83px;
		width: 137px;
		height: 83px;
	}
	.header-title a:hover {
		opacity: 0.8;
		transition: opacity 0.3s linear;
	}
	.header-navigation {
		display: block !important;
	}
	.header-navigation ul {
		display: flex;
		margin-top: 3rem;
	}
	.header-navigation ul li {
		margin-left: 2.7rem;
	}
	.header-navigation ul li a:hover {
		color: #e60012;
		transition: color 0.2s linear;
	}
}
@media screen and ( max-width: 896px ) {
	.header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		background: #fff;
		z-index: 100;
	}
	.header-inner {
		padding: 1.5rem 0;
	}

	.header-title a {
		background-size: 90px 56px;
		width: 95px;
		height: 56px;
	}

	.header-navigation {
		display: none;
		background: #fff;
		position: absolute;
		top: 86px;
		left: 0;
		width: 100%;
		padding-bottom: 1rem;
		z-index: 101;
	}
	.header-navigation ul {
		display: flex;
		flex-wrap: wrap;
	}
	.header-navigation ul li {
		text-align: center;
		padding: 1rem;
		width: 50%;
	}

	.header-btn-menu {
		background: #fff;
		display: block;
		font-size: 1.2rem;
		padding: 0.5rem;
		position: relative;
		width: 50px;
		text-align: center;
		z-index: 102;
	}
	.header-btn-menu span {
		background: #000;
		display: block;
		width: 32px;
		height: 3px;
		top: 0;
		right: 0;
		left: 0;
		margin: 0.8rem auto;
		position: relative;
		transition: all 0.15s linear
	}
	.header-btn-menu span:before,
	.header-btn-menu span:after {
		content: "";
		position: absolute;
		right: 0;
		left: 0;
		margin: 0 auto;
		width: 32px;
		height: 3px;
		background: #000;
	}
	.header-btn-menu span:before {
		top: -6px;
	}
	.header-btn-menu span:after {
		bottom: -6px;
	}
	.header-btn-menu.is-show span{
		background: #fff;
	}
	.header-btn-menu.is-show span:before {
		transform: rotate(45deg);
	}
	.header-btn-menu.is-show span:after{
		top: -6px;
		bottom: 0;
		transform: rotate(135deg);
	}
}

/* -------------------------------------------------------------------------- */

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

.footer {
	padding: 3rem 0 4rem;
}
.footer address {
	font-size: 1.3rem;
	font-weight: bold;
	font-style: normal;
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	max-width: 100rem;
	width: calc(100% - 4rem);
}

/* -------------------------------------------------------------------------- */

/*	Site Content
/* -------------------------------------------------------------------------- */

.view-pc {
	display: inline-block;
}
.view-sp {
	display: none;
}
@media screen and ( max-width: 896px ) {
	.view-pc {
		display: none;
	}
	.view-sp {
		display: inline-block;
	}
}

/* Alignment Classes ------------------------- */

.ta-centet {
	text-align: center;
}
.ta-left {
	text-align: left;
}
.ta-right {
	text-align: right;
}

.alignnone,
.aligncenter,
.alignleft,
.alignright {
	margin-top: 4rem;
	margin-right: auto;
	margin-bottom: 4rem;
	margin-left: auto;
}

[class*="__inner-container"] > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright) {
	margin-left: auto;
	margin-right: auto;
}

/* Center */

.aligncenter,
.aligncenter img {
	margin-left: auto;
	margin-right: auto;
}
/* Left and right */

.alignleft,
.alignright {
	max-width: 50%;
}
.alignleft {
	/*rtl:ignore*/
	float: left;
	margin: 0.3rem 2rem 2rem 2rem;
}
.alignright {
	/*rtl:ignore*/
	float: right;
	margin: 0.3rem 2rem 2rem 2rem;
}

/* Grid ------------------------------- */

.grid {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	margin-right: -5px;
	margin-left: -5px;
}
.grid-el {
	position: relative;
	padding-right: 5px;
	padding-left: 5px;
	padding-bottom: 10px;
}
.grid-2 .grid-el {
	width: 50%;
}
.grid-3 .grid-el {
	width: 33.333334%;
}
.grid-4 .grid-el {
	width: 25%;
}
.grid-5 .grid-el {
	width: 20%;
}
.grid-sm {
	margin-right: -3px;
	margin-left: -3px;
}
.grid-sm .grid-el {
	padding-right: 3px;
	padding-left: 3px;
	padding-bottom: 6px;
}
.grid-lg {
	margin-right: -10px;
	margin-left: -10px;
}
.grid-lg .grid-el {
	padding-right: 10px;
	padding-left: 10px;
	padding-bottom: 10px;
}
@media screen and ( max-width: 896px ) {
	.sp-grid-1 .grid-el {
		width: 100%;
	}
	.sp-grid-2 .grid-el {
		width: 50%;
	}
	.sp-grid-3 .grid-el {
		width: 33.333334%;
	}
	.sp-grid-4 .grid-el {
		width: 25%;
	}
}

/* Button ------------------------------- */

.btn-more {
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
	font-size: 1.5rem;
	display: block;
	margin-right: auto;
	margin-left: auto;
	width: 84px;
	padding: 0.5rem 0;
	text-align: center;
	text-decoration: none;
}
@media screen and ( min-width: 897px ) {
	.btn-more:hover {
		width: 120px;
		transition: width 0.3s linear;
	}
}

