@charset "UTF-8";

.vertmiddle:before {
	content: '';
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}

.vertmiddle > * {
	display: inline-block;
	vertical-align: middle;
}

html {
	font-family: "游ゴシック","游ゴシック体","Yu Gothic","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro",YuGothic,verdana,"メイリオ","Meiryo","Osaka",sans-serif;
	font-weight: 500;
	/*font-family: "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "游明朝", YuMincho, "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;*/
	font-size: 100px;
	font-feature-settings: "palt";
}

@media print, screen and (min-width: 461px) {
	html {
		line-height: 1.5;
	}
}

@media screen and (max-width: 460px) {
	html {
		-webkit-text-size-adjust: 100%;
	}
}

@media print, screen and (min-width: 1440px) and (max-width: 1599px) {
	html {
		font-size: 90px;
	}
}

@media print, screen and (min-width: 1366px) and (max-width: 1439px) {
	html {
		font-size: 85px;
	}
}

@media print, screen and (min-width: 1280px) and (max-width: 1365px) {
	html {
		font-size: 80px;
	}
}

@media print, screen and (min-width: 461px) and (max-width: 1279px) {
	html {
		font-size: 75px;
	}
}

@media screen and (min-width: 400px) and (max-width: 460px) {
	html {
		font-size: 110px;
	}
}

html.edge {
	-ms-text-size-adjust: 100%;
}

html.safari {
	-webkit-font-smoothing: antialiased;
}

@media print, screen and (min-width: 461px) {
	html.safari {
		font-feature-settings: "pkna";
	}
}

body {
	position: relative;
	margin: 0;
	padding: 0;
	font-size: .11rem;
}

@media print, screen and (min-width: 461px) {
	body {
		min-width: 1024px;
	}
}

.touchevents * {
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.chrome body {
	image-rendering: -webkit-optimize-contrast;
}

h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ol, ul, li, td, th, figure {
	margin: 0;
	padding: 0;
}

article, aside, footer, header, main, nav, section, figcaption, figure {
	display: block;
}

img {
	-ms-interpolation-mode: bicubic;
	border-style: none;
}

svg:not(:root) {
	overflow: hidden;
}

hr {
	height: 0;
	overflow: visible;
	box-sizing: border-box;
}

b, strong {
	font-weight: inherit;
	font-weight: bolder;
}

a {
	outline: 0;
	text-decoration: none;
	color: inherit;
	background-color: transparent;
	-webkit-text-decoration-skip: objects;
}

li {
	list-style: none;
}

sub, sup {
	position: relative;
	vertical-align: baseline;
	line-height: 0;
}

sub {
	bottom: -.25em;
}

sup {
	top: -.5em;
}

audio, video {
	display: inline-block;
}

audio:not([controls]) {
	display: none;
	height: 0;
}

canvas {
	display: inline-block;
}

input, select, button, optgroup, textarea {
	font-family: inherit;
	appearance: none;
	background: none;
	border: none;
	outline: 0;
	margin: 0;
	padding: 0;
}

button, input {
	overflow: visible;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

button:-moz-focusring,
input:-moz-focusring {
	outline: 1px dotted ButtonText;
}

button, select {
	cursor: pointer;
	text-transform: none;
}

[type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner, button::-moz-focus-inner {
	border: none;
}

select::-ms-expand {
	display: none;
}

/* プリント対応 */
[data-hidePrintMessageArea] {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 10px;
	pointer-events: none;
	opacity: 0;
}

@media print {
	body {
		position: relative;
		top: 100px;
	}
	body:before {
		content: "ページを印刷する際は一番下までスクロールして下さい。";
		display: none;
		white-space: pre;
		font-size: 20px;
		padding: 10px 10px;
		border: 3px solid #000;
		background-color: #FFF;
		color: #000;
		position: absolute;
		top: -100px;
		left: 0px;
		right: 0px;
		text-align: center;
		box-sizing: border-box;
	}
	.chrome body:before {
		content: "ページを印刷する際は一番下までスクロールして下さい。\A画像を表示させる場合は、「基本設定」→「背景のグラフィック」を有効にして下さい。";
	}
	.ie body:before {
		content: "ページを印刷する際は一番下までスクロールして下さい。\A画像を表示させる場合は、「印刷プレビュー」→「ページ設定」→「背景の色とイメージを印刷する」を有効にして下さい。";
	}
	.safari body:before {
		content: "ページを印刷する際は一番下までスクロールして下さい。\A画像を表示させる場合は、「詳細を表示」→「背景をプリント」を有効にして下さい。";
	}
	.edge body:before {
		content: "※Microsoft Edgeは背景や画像を印刷できません。";
	}
	.addPrintMessage body:before {
		display: block;
	}
	* {
		background-attachment: scroll !important;
	}
}

/* 721px以上は消す */
@media print, screen and (min-width: 461px) {
	[data-sc-sp] {
		display: none !important;
	}
}

/* 720px以下は消す */
@media screen and (max-width: 460px) {
	[data-sc-pc] {
		display: none !important;
	}
}

.mod_main {
	overflow: hidden;
}

.device-tablet .mod_main {
	width: calc(100% + 1px);
}

/* 自動高さ調整 */
[data-autoheight],
[data-pc-autoheight],
[data-sp-autoheight] {
	transition: none !important;
}

/* 遅延読み込み */
[data-lf] {
	opacity: 0;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	transition: opacity 1s;
}

[data-lf][src],
[data-lf][style*="background-image"],
[data-lf].load_view {
	opacity: 1;
}

@media print, screen and (min-width: 461px) {
	@supports (display: flow-root) {
		.col_base.col_1 {
			display: flow-root;
		}
	}
	@supports not (display: flow-root) {
		.col_base.col_1 {
			display: block;
		}
		.col_base.col_1:after {
			content: '';
			display: block;
			clear: both;
		}
	}
	.ie .col_base.col_1 {
		display: block;
		width: calc(100% + 1px);
	}
	.ie .col_base.col_1:after {
		content: '';
		display: block;
		clear: both;
	}
	.col_base.col_1 > * {
		margin: 0px 0 0 0px;
		width: calc(100% / 1 - 0px);
		float: left;
	}
	.ie .col_base.col_1 > * {
		width: calc(calc(100% - 1px) / 1 - 0px);
	}
	.col_base.col_1 > *:nth-child(1n+1) {
		margin-left: 0;
	}
	.col_base.col_1 > *:nth-child(-n+1) {
		margin-top: 0;
	}
}

@media print, screen and (min-width: 461px) {
	@supports (display: flow-root) {
		.col_base.col_2 {
			display: flow-root;
		}
	}
	@supports not (display: flow-root) {
		.col_base.col_2 {
			display: block;
		}
		.col_base.col_2:after {
			content: '';
			display: block;
			clear: both;
		}
	}
	.ie .col_base.col_2 {
		display: block;
		width: calc(100% + 1px);
	}
	.ie .col_base.col_2:after {
		content: '';
		display: block;
		clear: both;
	}
	.col_base.col_2 > * {
		margin: 0px 0 0 0px;
		width: calc(100% / 2 - 0px);
		float: left;
	}
	.ie .col_base.col_2 > * {
		width: calc(calc(100% - 1px) / 2 - 0px);
	}
	.col_base.col_2 > *:nth-child(2n+1) {
		margin-left: 0;
	}
	.col_base.col_2 > *:nth-child(-n+2) {
		margin-top: 0;
	}
}

@media print, screen and (min-width: 461px) {
	@supports (display: flow-root) {
		.col_base.col_3 {
			display: flow-root;
		}
	}
	@supports not (display: flow-root) {
		.col_base.col_3 {
			display: block;
		}
		.col_base.col_3:after {
			content: '';
			display: block;
			clear: both;
		}
	}
	.ie .col_base.col_3 {
		display: block;
		width: calc(100% + 1px);
	}
	.ie .col_base.col_3:after {
		content: '';
		display: block;
		clear: both;
	}
	.col_base.col_3 > * {
		margin: 0px 0 0 0px;
		width: calc(100% / 3 - 0px);
		float: left;
	}
	.ie .col_base.col_3 > * {
		width: calc(calc(100% - 1px) / 3 - 0px);
	}
	.col_base.col_3 > *:nth-child(3n+1) {
		margin-left: 0;
	}
	.col_base.col_3 > *:nth-child(-n+3) {
		margin-top: 0;
	}
}

@media print, screen and (min-width: 461px) {
	@supports (display: flow-root) {
		.col_base.col_4 {
			display: flow-root;
		}
	}
	@supports not (display: flow-root) {
		.col_base.col_4 {
			display: block;
		}
		.col_base.col_4:after {
			content: '';
			display: block;
			clear: both;
		}
	}
	.ie .col_base.col_4 {
		display: block;
		width: calc(100% + 1px);
	}
	.ie .col_base.col_4:after {
		content: '';
		display: block;
		clear: both;
	}
	.col_base.col_4 > * {
		margin: 0px 0 0 0px;
		width: calc(100% / 4 - 0px);
		float: left;
	}
	.ie .col_base.col_4 > * {
		width: calc(calc(100% - 1px) / 4 - 0px);
	}
	.col_base.col_4 > *:nth-child(4n+1) {
		margin-left: 0;
	}
	.col_base.col_4 > *:nth-child(-n+4) {
		margin-top: 0;
	}
}

@media print, screen and (min-width: 461px) {
	@supports (display: flow-root) {
		.col_base.col_5 {
			display: flow-root;
		}
	}
	@supports not (display: flow-root) {
		.col_base.col_5 {
			display: block;
		}
		.col_base.col_5:after {
			content: '';
			display: block;
			clear: both;
		}
	}
	.ie .col_base.col_5 {
		display: block;
		width: calc(100% + 1px);
	}
	.ie .col_base.col_5:after {
		content: '';
		display: block;
		clear: both;
	}
	.col_base.col_5 > * {
		margin: 0px 0 0 0px;
		width: calc(100% / 5 - 0px);
		float: left;
	}
	.ie .col_base.col_5 > * {
		width: calc(calc(100% - 1px) / 5 - 0px);
	}
	.col_base.col_5 > *:nth-child(5n+1) {
		margin-left: 0;
	}
	.col_base.col_5 > *:nth-child(-n+5) {
		margin-top: 0;
	}
}

.clearfix {
	content: "";
	display: block;
	clear: both;
}

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

共通レイアウト

----------------------------------------------------------------------------- */
a {
	transition: opacity 0.6s;
}

a:hover {
	opacity: 0.7;
}

footer {
	width: 100%;
	padding: 1.2rem 0 1.9rem 0;
	background-color: #ececec;
	display: flex;
	justify-content: center;
	position: relative;
}

@media screen and (max-width: 460px) {
	footer {
		padding: 0.6rem 0 0.95rem 0;
		display: block;
	}
	footer img {
		width: 1.29rem;
		display: block;
		margin: auto;
	}
}

footer .copylight {
	font-size: 0.12rem;
	letter-spacing: 0.05em;
	position: absolute;
	bottom: 0.4rem;
	left: 50%;
	transform: translateX(-50%);
}

@media screen and (max-width: 460px) {
	footer .copylight {
		font-size: 0.11rem;
		bottom: 0.2rem;
		width: 100%;
		text-align: center;
	}
}

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

WEBフォント

----------------------------------------------------------------------------- */
.hannari {
	font-family: "Hannari";
	font-weight: 400;
	line-height: 1;
}

.cormorant_reg {
	font-family: 'Cormorant Infant', serif;
	font-weight: 400;
}

.cormorant_mid {
	font-family: 'Cormorant Infant', serif;
	font-weight: 500;
}
