/* ========================================================================
ResetCss
======================================================================== */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
	margin:0;
	padding:0;
	border:0;
	outline:0;
	font-size:100%;
	font-weight: normal;
	vertical-align:baseline;
	background:transparent;
}

body {
	line-height:1;
	overflow-x: clip;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
	display:block;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content:'';
	content:none;
}

a {
	margin:0;
	padding:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
	outline: none;
	text-decoration: none;
}

ins {
	background-color:#ff9;
	color:#000;
	text-decoration:none;
}

mark {
	background-color:#ff9;
	color:#000;
	font-style:italic;
	font-weight:bold;
}

del {
	text-decoration: line-through;
}

abbr[title], dfn[title] {
	border-bottom:1px dotted;
	cursor:help;
}

table {
	border-collapse:collapse;
	border-spacing:0;
}

hr {
	display:block;
	height:1px;
	border:0;
	border-top:1px solid #cccccc;
	margin:1em 0;
	padding:0;
}

input, select {
	vertical-align:middle;
}

img {
	vertical-align: top;
	font-size: 0;
	line-height: 0;
}

*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

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

br {
	line-height: inherit;
}


/*  レスポンシブ用
-------------------------------------------------------------*/
.sp-only {display: none !important;}
.pc-only {display: block !important;}

@media screen and (max-width: 999px) {
	.pc-only {display: none !important;}
	.sp-only {display: block !important;}
}


/*  共通
-------------------------------------------------------------*/
html {
	width: 100%;
	height: 100%;
	font-size: 62.5%;
}

@media screen and (max-width: 1920px) {
	html { font-size: 0.7142857vw; }
}

@media screen and (max-width: 999px) {
	html { font-size: 2.6666667vw; }
}

body {
	font-family: "Noto Serif JP", "游明朝体", "Yu Mincho", serif;
	background: #fff;
	width: 100%;
	height: 100%;
	position: relative;
	margin: 0;
	font-size: 1.6rem;
	font-weight: 400;
	color: #303134;
	line-height: 1.75;
}

.en {font-family: "Roboto", sans-serif; font-weight: 400;}

a {transition: all .2s; -webkit-transition: all .2s; -moz-transition: all .2s; -ms-transition: all .2s; color: #333;}
a:hover {opacity: 0.7; transition: .2s all; text-decoration: none;}
a img {transition: .2s all;}
a img:hover {opacity: 0.7; transition: .2s all;}
button {transition: .2s all; cursor: pointer;}
button:hover {opacity: 0.7; transition: .2s all;}
form {margin: 0;}

main {position: relative; z-index: 1;}
.inner {width: 100%; max-width: 128rem; margin: 0 auto; position: relative; padding: 0 4rem;}

@media screen and (max-width: 999px) {
	.inner {padding: 0 2rem;}
}

.list {display: flex; flex-wrap: wrap;}

body.no-scroll {overflow: hidden;}


#contents {width: 100%; padding-top: 0; padding-bottom: 0; overflow: inherit;}
#sub-column {display: none;}
#main-column {float: none; width: 100%; margin-bottom: 0; padding: 0 !important;}
#main-column img {display: none;}
.w100 .freeArea2 {padding: 0; margin: auto;}

#main-column h2 {border-top: 0; letter-spacing: inherit; padding: 0 !important;}


#main-column main img {display: block;}
#main-column header img {display: block;}

#gnav {display: none;}
#contents {padding-top: 0;}
.header_area,
.footer_area {display: none !important;}

#gnav div.cart-nav ul li a:hover, #gnav div.cart-nav ul li a:active, #gnav nav ul li a:hover, #gnav nav ul li a:active, article a:hover p, div.cart-article a:hover p, #sub-column div.snav_mailMag_cont input.submit_mailMag:hover, #Journal a .more:hover, input[type="submit"].btn-confirmPost:hover, input[type="button"].btn-confirmBack:hover, #contact input.btn-confirmNext:hover, #contact .btn-enq input.btn-confirmNext:hover, #contact .mailMF input.btn-confirmNext:hover, #contact .mailMC input.btn-confirmNext:hover, #sub-column .link.keyword nav ul li a:hover, #sub-column div.snav_mailMag_cont input.submit_mailMag:hover {background-color: inherit;}

div#main-column > section {width: 100%; max-width: 100%;}

#page-top a::before {content: none;}
#page-top img {display: block;}


/* =================================================================
パンくず
=================================================================*/
.breadcrumbs {padding: 1.5rem 0;}
.breadcrumbs ul {display: flex; align-items: center; gap: 1rem;}
.breadcrumbs li {display: flex; align-items: center; gap: 1rem; font-size: 1.3rem;}
.breadcrumbs li:after {content: "/"; display: block; color: #999;}
.breadcrumbs li:last-child::after {display: none;}

@media screen and (max-width: 999px) {
	.breadcrumbs .inner {overflow-x: auto;}
	.breadcrumbs ul {white-space: nowrap;}
}

/* =================================================================
フロート
=================================================================*/
.float {position: fixed; right: 2.4rem; bottom: 2.4rem; z-index: 100; box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.10);}
.float .float-inner {background: #fff; border-radius: 1rem; width: 20rem; height: 19.9rem; display: flex; flex-direction: column; align-items: flex-start; padding: 2rem; text-align: center;}
.float h2 {color: #303134; text-align: center; font-family: "Noto Serif JP"; font-size: 2rem; font-style: normal; font-weight: 700; line-height: 120%;}
.float p {color: #303134; font-size: 1.4rem; line-height: 1.5; margin-top: 1rem;}
.float .button {display: flex; padding: 1rem 2rem; justify-content: center; align-items: center; width: 100%; border-radius: .5rem; background: #2250E3; color: #fff; font-size: 1.6rem; font-family: "Noto Serif JP"; font-weight: 700; margin-top: 2rem;}
.float .close {position: absolute; display: block; width: 2.4rem; height: 2.4rem; right: -1.2rem; top: -1.2rem;}
.float .close img {display: block;}

@media screen and (max-width: 999px) {
	.float {right: 2rem; bottom: 3rem;}
	.float .float-inner {width: 12.9rem; height: 10.1rem; padding: 1rem;}
	.float h2 {font-size: 1.4rem;}
	.float p {display: none;}
	.float .button {font-size: 1.2rem; margin-top: 1rem; padding: 1rem;}
}

/* =================================================================
ヘッダー
=================================================================*/
header {position: fixed; top: 0; left: 0; width: 100%; z-index: 9999; padding: 1rem;}
header .header-inner {display: flex; justify-content: space-between; align-items: center; height: 8.5rem; padding: 0 4rem; max-width: 100%; background: rgba(255, 255, 255, 0.90);}


header .logo {display: flex; align-items: center; gap: 2rem;}
header .logo a {display: flex; align-items: center;}
header .logo img {height: 4.5rem; width: auto;}
header .logo span {font-size: 1.4rem; line-height: 120%; font-weight: 700;}


header nav {display: flex; align-items: center; gap: 3rem;}
header nav .gnav {display: flex; align-items: center; gap: 2rem;}
header nav .gnav a {font-size: 1.6rem; font-weight: 500; color: #303134; font-family: "Noto Serif JP", serif; letter-spacing: .02em;}
header nav .gnav a:hover {}
header nav .gnav li:last-child {margin-left: 2rem;}
header nav .gnav li:last-child a {background: #2250e3; color: #fff; padding: 1rem 2.5rem; font-weight: 700; font-family: "Noto Serif JP", serif; border-radius: .5rem;}
header nav .gnav li:last-child a:hover {background: #1a40c2; opacity: 1;}

header .sp-menu-button {display: none;}

/* SPメニューボタン */
@media screen and (max-width: 999px) {
	header {padding: 0;}
	header .header-inner {height: 5rem; padding: 0 2rem; background: #fff;}
	header .logo img {height: 2.8rem;}
	header .logo span {display: none;}
	header nav {gap: 0;}
	header nav .gnav,
	header nav .header-contact {display: none;}
	header .sp-menu-button {display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .8rem; width: 4.4rem; height: 4.4rem; cursor: pointer; background: none; border: 0; padding: .5rem; opacity: 1;}
	header .sp-menu-button span {display: block; width: 4rem; height: .2rem; background: #2250e3; transition: .3s all;}
	header .sp-menu-button.active {gap: 0;}
	header .sp-menu-button.active span {width: 2.4rem; background: #303134;}
	header .sp-menu-button.active span:nth-child(1) {transform: rotate(45deg);}
	header .sp-menu-button.active span:nth-child(2) {transform: rotate(-45deg); margin-top: -.2rem;}
}


/* =================================================================
SPドロワーメニュー
=================================================================*/
#head_submenu {position: fixed; inset: 0; z-index: 9998; background: rgba(0,0,0,.5); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .35s ease, visibility .35s ease; display: none;}

@media screen and (max-width: 999px) {
	#head_submenu {display: block;}
	#head_submenu.open {opacity: 1; visibility: visible; pointer-events: auto;}
	#head_submenu .head {position: absolute; top: 0; right: 0; width: 100%; height: 100%; background: #fff; overflow-y: auto; padding: 8rem 2rem 4rem;}

	/* SPナビ */
	#head_submenu .sp-gnav {display: flex; flex-direction: column;}
	#head_submenu .sp-gnav a {display: flex; justify-content: space-between; align-items: center; font-size: 1.6rem; font-weight: 500; color: #333; padding: 1.8rem 0; border-bottom: .1rem solid #ADADAD; font-family: "Noto Serif JP", serif; letter-spacing: .02em; width: 100%;}
	#head_submenu .sp-gnav a::after {content: ""; display: block; width: 1.2rem; height: .7rem; background-image: url(../img/common/icon-button-arrow.svg); background-size: contain; background-repeat: no-repeat; background-position: center; flex-shrink: 0;}

	/* お問い合わせボタン */
	#head_submenu .sp-contact {display: flex; align-items: center; justify-content: space-between; text-decoration: none; width: 28rem; height: 6rem; flex-shrink: 0; border-radius: 5px; background: linear-gradient(90deg, #2250E3 0%, #52A8FD 50%, #2250E3 100%); padding: 0 2rem; margin: 2rem auto 0;}
	#head_submenu .sp-contact-link-body {display: flex; flex-direction: column; gap: .8rem;}
	#head_submenu .sp-contact-link-title {font-size: 1.6rem; font-weight: 700; color: #fff; line-height: 1.4; font-family: "Noto Serif JP", serif;}
	#head_submenu .sp-contact-link-arrow {width: 3rem; height: 3rem; background: #fff; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: .5rem;}
	#head_submenu .sp-contact-link-arrow::before {content:""; background-image: url("../img/common/icon-button-arrow.svg"); background-size: cover; display: block; height: .7rem; width: 1.2rem;}

	/* Instagram */
	#head_submenu .drawer-instagram {display: flex; justify-content: center; margin-top: 4rem;}
	#head_submenu .drawer-instagram img {width: 3.2rem; height: 3.2rem;}


}


/* =================================================================
フッター
=================================================================*/
footer {background: #fff; color: #303134; padding: 6rem 0 0;}

footer .footer-inner {display: flex; justify-content: space-between; align-items: flex-start; gap: 4rem;}
footer .footer-logo img {height: 4.5rem; width: auto;}
footer .footer-logo p {font-size: 1.4rem; font-weight: 700; color: #303134; margin-top: 1rem; line-height: 1.7; font-family: "Noto Serif JP", serif;}
footer .footer-logo .instagram img {width:3.2rem; height: 3.2rem; margin-top: 4rem; display: block;}

footer .footer-nav {display: flex; gap: 6rem;}
footer .footer-nav .nav-col {display: flex; flex-direction: column; gap: 2rem;}
footer .footer-nav .nav-col a {font-size: 1.6rem; font-weight: 500; color: #303134; font-family: "Noto Serif JP", serif; letter-spacing: .03em;}
footer .footer-nav .nav-col a:hover {color: #2250e3; opacity: 1;}

footer .footer-bottom {margin-top: 8rem; padding: 0rem 0 8rem; display: flex; justify-content: center; align-items: center;}
footer .footer-bottom .copy {font-size: 1.4rem; font-weight: 500; color: #303134; font-family: "Noto Serif JP", serif;}
footer .footer-bottom .footer-links {display: flex; gap: 2.4rem;}
footer .footer-bottom .footer-links a {font-size: 1.2rem; color: #888;}

@media screen and (max-width: 999px) {
	footer {padding: 5rem 0 0;}

	/* ロゴエリア：中央寄せ */
	footer .footer-inner {flex-direction: column; gap: 4rem;}
	footer .footer-logo {display: flex; flex-direction: column; align-items: center; text-align: center;}
	footer .footer-logo a {display: flex; justify-content: center;}
	footer .footer-logo img {height: auto; width: 100%;}
	footer .footer-logo p {margin-top: 1.4rem; text-align: center;}
	footer .footer-logo .instagram {margin-top: 3rem;}
	footer .footer-logo .instagram img {width: 3.2rem; height: 3.2rem; margin-top: 0; display: block;}

	/* ナビ：1カラム＋矢印 */
	footer .footer-nav {flex-direction: column; gap: 0; width: 100%;}
	footer .footer-nav .nav-col {gap: 0; flex-direction: column;}
	footer .footer-nav .nav-col a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 1.6rem 0;
		border-bottom: .1rem solid #ADADAD;
		font-size: 1.6rem;
	}
	footer .footer-nav .nav-col:first-child a:first-child {padding-top: 0;}
	footer .footer-nav .nav-col a::after {
		content: "";
		display: block;
		width: 1.2rem;
		height: .7rem;
		background-image: url(../img/common/icon-button-arrow.svg);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
		flex-shrink: 0;
	}
	footer .footer-nav .nav-col a:hover {color: #2250e3; opacity: 1;}

	/* フッターボトム */
	footer .footer-bottom {margin-top: 6rem; padding: 0 0 4.8rem; flex-direction: column; align-items: center; gap: 0; text-align: center;}
	footer .footer-bottom .footer-links {display: none;}
}


/* =================================================================
共通ボタン
=================================================================*/
.btn {display: inline-flex; align-items: center; justify-content: center; gap: 1rem; height: 5.6rem; padding: 0 3.2rem; font-size: 1.5rem; font-weight: 600; font-family: "Poppins", sans-serif; letter-spacing: .08em; transition: .2s all; cursor: pointer; border: 0;}

.btn-primary {background: #2250e3; color: #fff;}
.btn-primary:hover {background: #1a40c2; color: #fff; opacity: 1;}

.btn-outline {background: transparent; color: #2250e3; border: .2rem solid #2250e3;}
.btn-outline:hover {background: #2250e3; color: #fff; opacity: 1;}

.btn-white {background: #fff; color: #2250e3;}
.btn-white:hover {background: #f0f5ff; color: #2250e3; opacity: 1;}

.btn-entry {background: #E53E3E; color: #fff;}
.btn-entry:hover {background: #c53030; color: #fff; opacity: 1;}

@media screen and (max-width: 999px) {
	.btn {height: 5.2rem; font-size: 1.4rem; padding: 0 2.8rem;}
}


/* =================================================================
共通セクションタイトル
=================================================================*/
.sec-title {display: flex; flex-direction: column; gap: .8rem;}
.sec-title .label {font-size: 2rem; font-weight: 500; color: #2250e3; font-family: "Noto Serif JP", serif; letter-spacing: .05em;}
.sec-title .label.en {font-family: "Roboto", sans-serif; letter-spacing: .12em; text-transform: uppercase;}
.sec-title .en {font-size: 6.4rem; font-weight: 700; line-height: 120%; color: #2250e3; font-family: "Roboto", sans-serif;}
.sec-title .jp {font-size: 1.5rem; font-weight: 400; color: #666; margin-top: .4rem;}

@media screen and (max-width: 999px) {
	.sec-title {gap: 1rem;}
	.sec-title .label {font-size: 1.6rem;}
	.sec-title .en {font-size: 3.2rem;}
}


/* =================================================================
AOS 初期設定
=================================================================*/
[data-aos] {
	transition-duration: .8s;
}
