@charset "UTF-8";
/*
Theme Name: MOON-3710Lab Theme
Theme URI: https://muuru-yoron.com/
Description: This is our original theme.
Author: Open Hand Service
Author URI: www.open-hand.jp
Version:1.0
/*

/*-------------------------------------------------
	Reset
-------------------------------------------------*/
*,*::before,*::after{box-sizing:border-box;}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,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{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;background:none;}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block;}body{line-height:1;color:#000;background:#fff;}ul,ol{list-style:none;}table{border-collapse:collapse;border-spacing:0;}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto;}button,input,select,textarea{font:inherit;color:inherit;margin:0;background:none;border:none;padding:0;appearance:none;box-shadow:none;}a{color:inherit;text-decoration:none;background:none;}blockquote,q{quotes:none;}blockquote::before,blockquote::after,q::before,q::after{content:'';}hr{border:0;border-top:1px solid #ccc;margin:2em 0;}mark{background:#ff9;color:#222;}:focus:not(:focus-visible){outline:none;}

/*-------------------------------------------------
	Base
-------------------------------------------------*/
:root {
	--font-en-ja: "Inter", "Noto Sans JP", "Hiragino Sans", sans-serif;
	--font-ja: "Noto Sans JP", "Hiragino Sans", sans-serif;
	--key-color: #009CAD;
	--key-color-special: #007B99;
	--key-color-permanent: #005C73;
	--key-color-study: #4D4D4D;
	--text-color: #1A1A1A;
	--hdr-height: 62px;
	--g-nav-width: 318px;
	--g-nav-list-gap: 15px;
	--cols: 10;
	--max-width: 1920px;
	--gutter: clamp(10px, 2.04vw, 60px);
	--low: 30px;
	--mid: 60px;
	--mid-high: 90px;
	--high: 120px;
	--highest: 150px;
	--font-size-xs: 13px;
	--font-size-s: 14px;
	--font-size-base: 16px;
	--font-size-l: 18px;
	--font-size-xl: 20px;
}
@media screen and (max-width: 768px) {
	:root {
		--cols: 1;
		--gutter: 20px;
		--pd-side-slim: 24px;
		--pd-side-base: 27px;
		--pd-side-wide: 36px;
		--lowest: 7px;
		--low: 15px;
		--low-mid: 20px;
		--mid: 30px;
		--mid-plus: 45px;
		--mid-high: 60px;
		--high: 90px;
		--highest: 120px;
		--font-size-s: 13px;
		--font-size-l: 16px;
		--font-size-xl: 20px;
	}
}
@media (max-width: 390px) {
	:root {
		--font-size-s: 12px;
	}
}
@media (max-width: 374px) {
	:root {
		--font-size-s: 10px;
	}
}

body {
	display: flex;
	flex-direction: column;
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	min-height: 100svh;
	font-family: var(--font-en-ja);
	font-weight: normal;
	font-style: normal;
	font-size: 100%;
	line-height: 1;
	letter-spacing: .02em;
	color: var(--text-color);
	background-color: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: anywhere; /* 収まらない場合に折り返す */
	word-break: normal; /* 単語の分割はデフォルトに依存 */
	line-break: strict; /* 禁則処理を厳格に適用 */
	/* text-autospace: normal; */
}
@supports (min-height: 100svh) {
	body { min-height: 100svh; }
}
.loading {
	opacity: 1;
	transition: opacity 0.3s ease;
	width: 100%;
	height: 100%;
	background: #fff;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99999;
}
.loading.hidden {
	opacity: 0;
	pointer-events: none;
}
/* スクリプト無効時は非表示（既存のルールを尊重） */
@media (scripting: none) {
	.loading { display: none !important; }
}
a:link,
a:visited {
	font-family: var(--font-en-ja);
	color: var(--text-color);
	text-decoration: none;
	outline: none;
	opacity: 1;
	transition: all .36s;
}
@media (hover: hover) {
	a:hover {
		text-decoration: none;
		opacity: .7;
		cursor: pointer;
	}
}
img {
	width: 100%;
	height: auto;
	user-select: none;
	-webkit-user-select: none;
	-webkit-touch-callout: none;
	-webkit-user-drag: none;
	-khtml-user-drag: none;
	-moz-user-drag: none;
	-o-user-drag: none;
	pointer-events: none;  /* スマホ用に追加 */
}
/* リンク付き画像はクリック可能にする */
a {
  display: inline-block;  /* 重要！ */
}
a img {
  pointer-events: auto;  /* リンクは有効化 */
}
@media (max-width: 768px) {
	/* モバイル横スクロールでスクロールバーを隠す（スクロールは可能） */
	.swiper.is-mobile-scroll {
		/* Firefox */
		scrollbar-width: none;
		/* 旧Edge/IE */
		-ms-overflow-style: none;
	}
	/* Chrome/Safari（WebKit系） */
	.swiper.is-mobile-scroll::-webkit-scrollbar {
		display: none;   /* 一部環境では幅0指定がより確実 */
		width: 0;
		height: 0;
	}

	/* レイアウトの揺れを減らしたい場合（任意） */
	.swiper.is-mobile-scroll {
		scrollbar-gutter: stable; /* サポート環境でスクロールバー領域の確保を安定化 */
	}
}

/*-------------------------------------------------
	Commons
-------------------------------------------------*/
.ly_container {
	position: relative;
	flex: 1;
}
.ly_contents {
	margin-inline: auto;
	padding: calc(var(--hdr-height) + 90px) 0 150px;
	width: 100%;
	/* max-width: var(--max-width); */
	max-width: 100%;
	height:100%;
}
body.home .ly_contents {
	padding-top: 0;
	padding-bottom: var(--mid);
}
body.category-shop .ly_contents,
body[class*="category-shop-"] .ly_contents {
	padding-top: calc(var(--hdr-height) + 45px);
}
/* 汎用グリッド */
.ly_grid {
	display: grid;
	grid-template-columns: repeat(var(--cols), 1fr);
	gap: 0 var(--gutter);
	align-items: start;
}
.ly_grid_inner {
	grid-column: 2 / 10; /* 左に1カラムずらした位置＝中央寄せ */
	display: grid;
  	grid-template-columns: repeat(8, 1fr); /* 内側は8列 */
	gap: 0 var(--gutter);
}
/* ユーティリティ：何列分占めるかを指定 */
.ly_span_1 { grid-column: span 1; }
.ly_span_2 { grid-column: span 2; }
.ly_span_3 { grid-column: span 3; }
.ly_span_4 { grid-column: span 4; }
.ly_span_5 { grid-column: span 5; }
.ly_span_6 { grid-column: span 6; }
.ly_span_6_c { grid-column: 2 / 8; }
.ly_span_7 { grid-column: span 7; }
.ly_span_8 { grid-column: span 8; }
.ly_span_9 { grid-column: span 9; }
.ly_span_10 { grid-column: span 10; }
@media (max-width: 768px) {
	.ly_contents {
		padding: calc(var(--hdr-height) + var(--mid-high)) 0 var(--high);
	}
	body.shop .ly_contents {
		padding-top: calc(var(--hdr-height) + var(--pd-side-slim));
	}
	.ly_grid {
		grid-template-columns: repeat(var(--cols), 1fr);
		padding-inline: var(--pd-side-base);
	}
	.ly_grid.sm_side_wide {
		padding-inline: var(--pd-side-wide);
	}
	.ly_grid.sm_side_slim {
		padding-inline: var(--pd-side-slim);
	}
	body.home .ly_grid {
		padding-inline: var(--pd-side-wide);
	}
	.ly_grid_inner {
		grid-column: 1 / -1;
		grid-template-columns: 1fr;
		gap: 0;
	}
	.ly_span_1,
	.ly_span_2,
	.ly_span_3,
	.ly_span_4,
	.ly_span_5,
	.ly_span_6,
	.ly_span_6_c,
	.ly_span_7,
	.ly_span_8,
	.ly_span_9,
	.ly_span_10 {
		grid-column: 1 / -1;
	}
}

/* Layout */
.ly_fL {
	float: left;
}
.ly_fR {
	float: right;
}
.ly_flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.ly_flex.fdC {
	flex-direction: column;
}
.ly_flex.fdR {
	flex-direction: row-reverse;
}
.ly_flex.jcC {
	justify-content: center;
}
.ly_flex.jcFs {
	justify-content: flex-start;
}
.ly_flex.aiC {
	align-items: center;
}
.ly_w_100 {
	width: 100%;
}
.ly_w_wide {
	max-width: 1200px;
}
.ly_w_mid {
	max-width: 900px;
}
.ly_w_slim {
	max-width: 750px;
}
.hp_mA,
.ly_w_wide,
.ly_w_mid,
.ly_w_slim {
	width: 100%;
	margin-inline: auto;
}
@media screen and (max-width: 768px) {
	.sm_floatNone {
		float: none;
	}
	.sm_flexNone {
		display: block;
	}
	.sm_w_100 {
		width: 100% !important;
	}
	.sm_w_100vw {
		margin-left: calc( -1 * var(--pd-side-base)) !important;
		width: calc(100% + (var(--pd-side-base) * 2)) !important;
		overflow: hidden;
	}
	.sm_w_100vw_wide {
		margin-left: calc( -1 * var(--pd-side-wide)) !important;
		width: calc(100% + (var(--pd-side-wide) * 2)) !important;
		overflow: hidden;
	}
	.sm_w_100vw_slim {
		margin-left: calc( -1 * var(--pd-side-slim)) !important;
		width: calc(100% + (var(--pd-side-slim) * 2)) !important;
		overflow: hidden;
	}
}
/* Helper */
.la_dn, .la_dn_ib {
	display: none;
}
.sm_dn {
	display: block;
}
.sm_dn_ib {
	display: inline-block;
}
span.ib {
	display: inline-block;
}
.hp_pos_rel {
	position: relative;
}
.hp_overflow_visible {
	overflow: visible !important;
}
.hp_overflow_hidden {
	overflow: hidden !important;
}
.hp_txtA_c {
	text-align: center !important;
}
.hp_txtA_l {
	text-align: left !important;
}
.hp_txtA_r {
	text-align: right !important;
}
.hp_txt_bw {
	word-break: break-all;
}
.hp_txt_palt {
	font-feature-settings: "palt";
}
.hp_lineClamp {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.hp_lineClamp.line_1 {
	-webkit-line-clamp: 1;
	line-clamp: 1;
}
.hp_lineClamp.line_2 {
	-webkit-line-clamp: 2;
	line-clamp: 2;
}
.hp_lineClamp.line_3 {
	-webkit-line-clamp: 3;
	line-clamp: 3;
}
.hp_fontW_m {
	font-weight: 500;
}
.hp_color_red {
	color: #E32619 !important;
}
@media screen and (max-width: 768px) {
	.la_dn {
		display: block;
	}
	.la_dn_ib {
		display: inline-block;
	}
	.sm_dn, .sm_dn_ib {
		display: none !important;
	}
	.sm_w_100 {
		width: 100% !important;
	}
	.sm_w_100vw {
		margin-left: calc( -1 * var(--pd-side-base));
		width: calc(100% + (var(--pd-side-base) * 2));
	}
	.hp_lineClamp.sm_line_2 {
		-webkit-line-clamp: 2;
		line-clamp: 2;
	}
}
/* Margin */
.mgn_top_highest {
	margin-bottom: var(--highest);
}
.mgn_top_high {
	margin-bottom: var(--high);
}
.mgn_top_mid-high {
	margin-bottom: var(--mid-high);
}
.mgn_top_mid {
	margin-bottom: var(--mid);
}
.mgn_top_low {
	margin-bottom: var(--low);
}
.mgn_btm_highest {
	margin-bottom: var(--highest);
}
.mgn_btm_high {
	margin-bottom: var(--high);
}
.mgn_btm_mid-high {
	margin-bottom: var(--mid-high);
}
.mgn_btm_mid {
	margin-bottom: var(--mid);
}
.mgn_btm_low {
	margin-bottom: var(--low) !important;
}
.mgn_btm_0 {
	margin-bottom: 0 !important;
}
@media screen and (max-width: 768px) {
	.sm_mgn_btm_highest {
		margin-bottom: var(--highest) !important;
	}
	.sm_mgn_btm_high {
		margin-bottom: var(--high) !important;
	}
	.sm_mgn_btm_mid-high {
		margin-bottom: var(--mid-high) !important;
	}
	.sm_mgn_btm_mid {
		margin-bottom: var(--mid) !important;
	}
	.sm_mgn_btm_low {
		margin-bottom: var(--low) !important;
	}
	.sm_mgn_btm_lowest {
		margin-bottom: var(--lowest) !important;
	}
	.sm_mgn_btm_0 {
		margin-bottom: 0 !important;
	}
	.sm_mgn_top_low-mid {
		margin-top: var(--low-mid) !important;
	}
	.sm_mgn_top_mid {
		margin-top: var(--mid) !important;
	}
}
/* Heading + Text */
p {
	font-size: var(--font-size-base);
	line-height: 2;
	letter-spacing: .02em;
	text-align: justify;
}
p:not(:last-of-type) {
	margin-bottom: 1em;
}
@media screen and (max-width: 768px) {
	p {
		line-height: 1.95;
		letter-spacing: .01em;
	}
	p.sm_lead_1,
	.sm_lead_1 p {
		line-height: 1.5;
		letter-spacing: 0;
	}
	p.sm_lead_2,
	.sm_lead_2 p {
		line-height: 1.7;
		letter-spacing: 0;
	}
	p.sm_lead_3,
	.sm_lead_3 p {
		line-height: 1.95;
		letter-spacing: .01em;
	}
}
/* Button */
.el_btn_pageLink {
	position: relative;
	display: inline-flex;
	align-items: center;
	font-weight: 500;
	font-size: var(--font-size-base);
	line-height: 1;
	letter-spacing: .04em;
	color: var(--text-color);
	text-decoration: none;
	color: #000;
}
.el_btn_pageLink::after {
	content: "▶";
	display: inline-block;
	margin-left: .8em;
	padding-right: 2em;
	font-size: .85em;
	color: var(--key-color);
	text-shadow:
		1em 0 0 currentColor,  /* 2個目 */
		2em 0 0 currentColor;  /* 3個目 */
}
.el_btn_pill {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: .6em 1em;
	width: 18.368vw;
	font-weight: 500;
	font-size: var(--font-size-base);
	line-height: 1;
	letter-spacing: .08em;
	color: var(--text-color);
	text-align: center;
	border: 3px solid var(--key-color);
	border-radius: 9999px;
	text-decoration: none !important;
	background-color: #fff;
	transition: color .36s, background-color .36s;
}
.el_btn_pill.hp_exLink::after {
	content: '';
	display: inline-block;
	margin-left: .2em;
	width: 20px;
	height: 20px;
	background: center / contain no-repeat url("./img/cmn/icon_external-link.svg");
	transition: background-image .36s;
}
@media (hover: hover) {
	.el_btn_pill:hover {
		color: #fff;
		background-color: var(--key-color);
		opacity: 1;
	}
	.el_btn_pill.hp_exLink:hover::after {
		background-image: url("./img/cmn/icon_external-link_wh.svg");
	}
}
@media screen and (max-width: 768px) {
	.el_btn_pageLink.sm {
		font-size: var(--font-size-s);
	}
	.el_btn_pageLink::after {
		font-size: 1em;
	}
	.el_btn_pill {
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 0;
		width: 200px;
		height: 30px;
		font-size: var(--font-size-s);
	}
}

/*-------------------------------------------------
	Header
-------------------------------------------------*/
.ly_hdr {
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 24px;
	width: 100%;
	height: var(--hdr-height);
	border-bottom: 1px solid #b3b3b3;
	background-color: #fff;
	z-index: 100;
}
/* Header-Logo */
.un_hdrLogo {
	display: block;
	width: 86px;
	height: auto;
}
/* Hamburger Menu */
.un_btn_hbg {
	display: block;
	position: relative;
	margin-left: -10px;
	width: 46px;
	height: 30px;
	z-index: 102;
	cursor: pointer;
}
.un_btn_hbg > span {
	display: block;
	position: absolute;
	left: 10px;
	width:  26px;
	height: 2px;
	background-color: #4d4d4d;
	transition: all .36s;
}
.un_btn_hbg span:nth-of-type(1) {
	top: 10px;
}
.un_btn_hbg span:nth-of-type(2) {
	top: 18px;
}
.un_btn_hbg.active span:nth-of-type(1) {
	transform: translateY(4px) translateX(0) rotate(45deg);
}
.un_btn_hbg.active span:nth-of-type(2) {
	transform: translateY(-4px) translateX(0) rotate(-45deg);
}
/* Global-Nav */
body.no_scroll_gNav {
	overflow-y: hidden !important;
}
.un_gNav_overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.1);
    z-index: 99;
}
.ly_gNav {
	position: fixed;
	top: var(--hdr-height);
	left: calc(-1 * var(--g-nav-width));
	padding: 80px 40px;
	width: var(--g-nav-width);
	height: 100%;
	background-color: #fff;
	transition: left .36s ease;
}
.ly_gNav.active {
	left: 0;
}
.bl_gNav > li {
	font-weight: 500;
	font-size: 20px;
	line-height: 1.5;
	letter-spacing: .04em;
}
.bl_gNav > li + li {
	margin-top: var(--g-nav-list-gap);
}
.bl_gNav > li > a {
	display: inline-block;
	color: var(--text-color);
	border-bottom: 2px solid var(--key-color);
}
.un_add_text > a::after {
	content: '';
	display: inline-block;
	margin-left: .25em;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: .025em;
}
.un_add_text.special > a::after {
	content: '\2013  SPECIAL';
}
.un_add_text.permanent > a::after {
	content: '\2013  PERMANENT';
}
.un_add_text.study > a::after {
	content: '\2013  STUDY';
}
/* .un_add_text.practice > a::after {
	content: '\2013  PRACTICE';
} */
/* SNS Links */
.bl_gNav + .un_snsLinks_ttl {
	margin-top: 45px;
}
.un_snsLinks_ttl {
	margin-bottom: 10px;
	font-weight: 500;
	font-size: var(--font-size-base);
	letter-spacing: .04em;
	color: var(--text-color);
}
.bl_snsLinks {
	display: inline-flex;
	gap: 8px;
}
.bl_snsLinks a {
	position: relative;
	display: inline-block;
	width: 24px;
	height: 24px;
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
}
.bl_snsLinks .un_add_icon a::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 24px;
	height: 24px;
	background: center / contain no-repeat;
}
.bl_snsLinks .un_add_icon.instagram a::after {
	background-image: url(./img/cmn/icon_instagram.svg);
}
.bl_snsLinks .un_add_icon.note a::after {
	background-image: url(./img/cmn/icon_note.svg);
}
/* Header-Search */
.un_btn_search {
	display: block;
	width: 20px;
	height: 20px;
	background: center / contain no-repeat url("./img/cmn/icon_search.svg");
	cursor: pointer;
	transition: opacity .36s;
}
@media (hover: hover) {
	.un_btn_search:hover {
		opacity: .7;
	}
}
/* Search */
.wrp_search {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, .95);
	z-index: 99999;
}
.el_btn_close {
	position: absolute;
	top: calc(var(--hdr-height) + 10px);
	right: calc(var(--hdr-height) + 10px);
	width: 40px;
	height: 40px;
	background: center / contain no-repeat url("./img/cmn/icon_close.svg");
	cursor: pointer;
	transition: opacity .36s;
}
@media (hover: hover) {
	.el_btn_close:hover {
		opacity: .7;
	}
}
.bl_search {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.bl_search__form {
	display: flex;
    flex-direction: row;
    align-items: center;
	gap: 15px;
}
.el_search__field {
	padding: 1em;
	width: clamp(420px, 38.775vw, 570px);
	font-size: 16px;
	text-align: center;
	color: var(--text-color);
	border: 2px solid var(--key-color);
	border-radius: 9999px;
	background-color: #fff;
}
.el_search__submit {
	display: block;
	width: 30px;
	height: 30px;
	text-indent: -9999px;
	background: center / contain no-repeat url("./img/cmn/icon_search.svg");
	cursor: pointer;
	transition: opacity .36s;
}
@media (hover: hover) {
	.el_search__submit:hover {
		opacity: .7;
	}
}
@media screen and (max-width: 768px) {
	.bl_search__form {
		gap: 10px;
	}
	.el_btn_close {
		top: 20px;
		right: 20px;
		width: 30px;
		height: 30px;
	}
	.el_search__field {
		padding: .75em;
		width: clamp(220px, 75vw, 570px);
	}
	.el_search__submit {
		width: 24px;
		height: 24px;
	}
}

/*-------------------------------------------------
	Top Page (Home)
-------------------------------------------------*/
body.home .ly_hdr {
	top: calc(-1 * var(--hdr-height));
	transition: top .36s ease;
}
body.home .ly_hdr.scrolled {
	top: 0;
}
.el_top_lv1H {
	display: inline-block;
	justify-content: space-between;
	align-items: flex-end;
	padding-bottom: .5em;
	font-weight: 500;
	line-height: 1;
	letter-spacing: .04em;
	border-bottom: 3.5px solid var(--key-color);
}
.el_top_lv1H > span.el_ja_ttl {
	font-size: 32px;
	color: var(--text-color);
}
/* .el_top_lv1H > span.el_ja_ttl.hp_fontS_la {
	font-size: 40px;
} */
.el_top_lv1H > span.el_ja_ttl.hp_fontS_mid {
	font-size: 32px;
}
.el_top_lv1H > span.el_ja_ttl.hp_letterS_wide {
	letter-spacing: .13em;
}
.el_top_lv1H > span.el_en_ttl {
	padding-left: 2em;
	font-size: 15px;
	letter-spacing: .13em;
	color: var(--key-color);
}
.el_top_lv1H.special {
	display: flex;
	border-color: var(--key-color);
	border-width: 4px;
}
.el_top_lv1H.permanent {
	display: flex;
	border-width: 2px;
	border-color: var(--key-color-permanent);
}
.el_top_lv1H.study {
	border-width: 2px;
	border-color: var(--key-color-study);
}
.el_top_lv1H.special > span.el_en_ttl {
	color: var(--key-color);
}
.el_top_lv1H.permanent > span.el_en_ttl {
	color: var(--key-color-permanent);
}
.el_top_lv1H.study > span.el_en_ttl {
	color: var(--key-color-study);
}
.ly_top_section {
	padding: var(--high) 0;
}
.hp_bg__lightblue {
	background-color: #E5ECEC;
}
.hp_bg__lightgrey {
	background-color: #F5F7F7;
}
@media (max-width: 768px) {
	.el_top_lv1H > span.el_en_ttl {
		font-size: 13px;
	}
	.el_top_lv1H > span.el_ja_ttl {
		font-size: 28px;
	}
}

/* #first-view */
.ly_fV {
	position: relative;
	width: 100%;
	height: 100svh;
	min-height: 400px;
	background-color: #eee;
}
.ly_fV__logo {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	width: 100%;
	height: var(--high);
	background-color: #fff;
}
.el_fV__logo {
	margin-bottom: -1.225vw;
	width: 28.572vw;
	max-width: 550px;
	z-index: 1;
}
.ly_fv__img,
.ly_fv__img picture {
	width: 100%;
	height: calc(100svh - var(--high));
	min-height: 400px;
	overflow: hidden;
}
.ly_fv__img picture,
.ly_fv__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
.ly_fv__img video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
@media (min-width: 769px) { /* desktop */
	.fv-video--sm, .fv-image--sm { display: none !important; }
}
@media (max-width: 768px) { /* mobile */
	.fv-video--pc, .fv-image--pc { display: none !important; }
}
/* ユーザーが動きを好まない設定の場合は動画非表示（画像優先） */
/* @media (prefers-reduced-motion: reduce) {
	.fv-video { display: none !important; }
	.fv-image--pc, .fv-image--sm { display: block !important; }
} */
.un_fv__overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	padding: var(--gutter);
	width: 100%;
	height: auto;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0)     0%,
		rgba(0, 0, 0, 0.05)  20%,
		rgba(0, 0, 0, 0.15)  50%,
		rgba(0, 0, 0, 0.24)  75%,
		rgba(0, 0, 0, 0.3)   100%
	);
	z-index: 1;
}
.ly_fv__txt {
	position: relative;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 0 calc(var(--gutter) / 2);
	z-index: 2;
}
.el_fv__lv2H {
	font-weight: 400;
	font-size: 33px;
	line-height: 1;
	letter-spacing: .04em;
	font-feature-settings: "palt";
	color: #fff;
}
.el_fv__lv2H > span {
	display: inline-block;
	margin-right: .25em;
	font-weight: 400;
	font-size: var(--font-size-l);
	letter-spacing: .075em;
}
p.el_fv__txt {
	display: none;
}
.el_fv__date {
	font-size: var(--font-size-s);
	letter-spacing: .04em;
	font-feature-settings: "palt";
	line-height: 1;
	color: #fff;
}
.el_fv__date > span {
	margin: 0 .05em;
	font-size: 39px;
}
.el_fv__btn {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: .5em 1.1em;
	width: auto;
	height: 40px;
	font-size: var(--font-size-base);
	line-height: 1;
	letter-spacing: .04em;
	border: 1px solid #fff;
	background-color: transparent;
	transition: background-color .36s;
}
.el_fv__btn > span {
	display: block;
	color: #fff;
	transition: color .36s;
}
@media (hover: hover) {
	.el_fv__btn:hover {
		background-color: #fff;
		opacity: 1;
		cursor: pointer;
	}
	.el_fv__btn:hover > span {
		color: var(--key-color-special);
	}
}
.un_fv__control {
	position: absolute;
	right: var(--gutter);
	bottom: var(--gutter);
	width: 40px;
	height: 40px;
	z-index: 2;
}
/* ボタン本体 */
.un_fv__btn {
	width: 100%;
	height: 100%;
	display: block;
	position: relative;
	border: none;
	padding: 0;
	cursor: pointer;
	transition: opacity .2s ease;
	/* 透け防止の土台（任意。不要なら削除） */
	background-color: rgba(0,0,0,.35);
	border-radius: 50%;
	/* アイコン画像（再生中＝pause） */
	background-image: url("./img/cmn/icon_pause.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	opacity: .7;
	transition: opacity .36s;
}
@media (hover: hover) {
	.un_fv__btn:hover {
		opacity: 1;
	}
}
/* 一時停止中＝play アイコン */
.un_fv__btn.is-paused {
	background-image: url("./img/cmn/icon_play.svg");
}
.un_fv__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}
/* スクリーンリーダー用（視覚非表示） */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.el_fv__scrollBtn {
	position: absolute;
	/* top: calc(var(--high) + var(--gutter)); */
	top: var(--gutter);
	right: var(--gutter);
	width: 26px;
	height: 130px;
	z-index: 2;
}
@media (max-width: 1024px) {
	:root {
		--pd-fv-slim: 24px;
	}
	.un_fv__overlay {
		padding: 75px var(--pd-fv-slim) var(--pd-fv-slim);
		background: linear-gradient(
			to bottom,
			rgba(0, 0, 0, 0)     0%,
			rgba(0, 0, 0, 0.024) 10%,
			rgba(0, 0, 0, 0.096) 20%,
			rgba(0, 0, 0, 0.192) 30%,
			rgba(0, 0, 0, 0.288) 40%,
			rgba(0, 0, 0, 0.36)  60%,
			rgba(0, 0, 0, 0.408) 80%,
			rgba(0, 0, 0, 0.432) 100%
		);
	}
	.el_fv__lv2H {
		margin-bottom: 3px;
	}
	.el_fv__lv2H > span {
		font-size: 16px;
	}
	.ly_fv__txt {
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		gap: 10px 0;
	}
	.el_fv__date {
		margin-bottom: 12px;
	}
	.el_fv__date > span {
		font-size: clamp(24px, 9.42vw, 39px);
	}
}
@media (max-width: 768px) {
	.ly_fV {
		height: auto;
	}
	.ly_fV__logo {
		height: auto;
	}
	.el_fV__logo {
		margin-top: var(--mid-high);
		margin-bottom: -2.657vw;
		width: calc(100% - (var(--pd-side-slim) * 2));
	}
	.ly_fv__img,
	.ly_fv__img picture {
		height: calc(100svh - var(--mid-high) - 16vw);
		max-height: 200vw;
	}
	.un_fv__overlay {
		padding: 100px var(--pd-fv-slim) 50px;
	}
	.el_fv__lv2H {
		margin-bottom: 7px;
	}
	.el_fv__date {
		margin-bottom: 6px;
	}
	p.el_fv__txt {
		display: -webkit-box;
		margin-bottom: -6px;
		font-size: var(--font-size-s);
		line-height: 1.75;
		letter-spacing: .04em;
		color: #fff;
	}
	.un_fv__control {
		right: 30px;
		bottom: 30px;
		width: 54px;
		height: 54px;
	}
	.el_fv__scrollBtn {
		top: 9.662vw;
		right: 9.662vw;
		width: 21px;
		height: auto;
	}
}

/* #nf-logo */
.ly_nfLogo {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: calc(-1 * var(--hdr-height));
	padding-top: var(--hdr-height);
	width: 100%;
	height: calc(var(--highest) + var(--hdr-height));
	background-color: #fff;
}
.el_nfLogo__img {
	max-width: 310px;
}
@media (max-width: 768px) {
	.ly_nfLogo {
		margin-top: 0;
		padding: 100px 0 70px;
		height: auto;
	}
}

/* #top-about */
.ly_topAbout__logo {
	display: grid;
	justify-content: center;
	align-content: center;
}
.el_topAbout__logo {
	width: clamp(190px, 21vw, 310px);
}
@media (max-width: 768px) {
	.ly_topAbout__logo {
		justify-content: start;
		align-content: start;
		margin-bottom: 50px;
	}
	.el_topAbout__logo {
		width: clamp(190px, 56.522vw, 310px);
	}
	/* #top-about p {
		text-align: left;
	} */
	#top-about .el_btn_pageLink {
		margin-top: 20px;
	}
}

/* #top-news */
#top-news .el_page_lv1H {
	font-size: 20px;
}
@media (max-width: 768px) {
	#top-news .el_page_lv1H {
		margin-bottom: 24px;
		letter-spacing: .04em;
	}
	.sm_newsList .bl_card__thumb.square {
		width: clamp(70px, 24.155vw, 100px);
		height: clamp(70px, 24.155vw, 100px);
	}
	.sm_newsList .bl_newsList__txt {
		margin-left: 12px;
	}
	.sm_newsList .el_card__ttl {
		letter-spacing: .02em;
	}
	.sm_newsList p.bl_card__meta {
		font-weight: 400;
		letter-spacing: 0;
	}
	.sm_newsList .bl_card__meta > span {
		position: absolute;
		right: 0;
		bottom: 0;
		margin-right: 0;
	}
}
@media (max-width: 425px) {
	.sm_newsList p.bl_card__excerpt {
		display: none;
	}
}
@media (max-width: 389px) {
	.sm_newsList .bl_card__meta > span {
		font-size: 11px;
	}
}

/* #top-special */
.el_page_special__ttl + p.el_top_special__period {
	margin-top: .5em;
}
.el_top_special__ttl {
	font-size: 36px;
	line-height: 1.3;
	letter-spacing: .04em;
}
p.el_top_special__period {
	margin: 1em 0 24px;
	font-weight: 400;
	font-size: var(--font-size-s);
	line-height: 1;
	letter-spacing: .04em;
	color: var(--text-color);
}
@media (max-width: 768px) {
	.el_top_special__ttl {
		font-size: 36px;
	}
}

/* Basic Slider */
:root {
	--swiper-button-size: 45px;
}
.el_swiperButton_prev,
.el_swiperButton_next {
	position: absolute;
	top: calc(50% - (var(--swiper-button-size) / 2));
	width: var(--swiper-button-size);
	height: var(--swiper-button-size);
	border: 2px solid var(--key-color);
	border-radius: 9999px;
	background-color: #fff;
	opacity: 0;
	transition: opacity .36s;
	cursor: pointer;
	z-index: 1;
}
.swiper:hover .el_swiperButton_prev,
.swiper:hover .el_swiperButton_next {
	opacity: 1;
}
.el_swiperButton_prev::after,
.el_swiperButton_next::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 14px;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-style: solid;
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent;
	border-left: 17px solid var(--key-color);
	border-right: 0;
}
.el_swiperButton_prev {
	left: calc((-1 * var(--swiper-button-size)) / 2);
	transform: rotate(180deg);
}
.el_swiperButton_next {
	right: calc((-1 * var(--swiper-button-size)) / 2);
}
.el_swiperButton_prev.swiper-button-disabled {
	opacity: 0 !important;
}
.el_swiperButton_next.swiper-button-disabled {
	opacity: 0.6 !important;
	filter: grayscale(100%);
	cursor: auto;
}
.wrap_basic_slider--3 .el_swiperButton_prev,
.wrap_basic_slider--3 .el_swiperButton_next {
	/* top: calc(16.768vw - (var(--swiper-button-size) / 2)); */
	top: calc(12.244vw - (var(--swiper-button-size) / 2));
}
.wrap_basic_slider--4 .el_swiperButton_prev,
.wrap_basic_slider--4 .el_swiperButton_next {
	top: calc(12.244vw - (var(--swiper-button-size) / 2));
}
.wrap_basic_slider--5 .el_swiperButton_prev,
.wrap_basic_slider--5 .el_swiperButton_next,
.wrap_basic_slider--5-2 .el_swiperButton_prev,
.wrap_basic_slider--5 .el_swiperButton_next {
	top: calc(9.523vw - (var(--swiper-button-size) / 2));
}
.sm_newsList {
	display: none;
}
@media (max-width: 768px) {
	body.home .ly_indexList.news {
		display: none;
	}
	.sm_newsList {
		display: block;
	}

	/* 外枠マスク：左右のグリッドパディングを打ち消してフルブリード＋切り取り */
	.mobile-scroll-mask {
		margin-left: calc(-1 * var(--pd-side-wide));
		width: calc(100% + (var(--pd-side-wide) * 2));
		overflow: hidden !important;
	}
	.sm_newsList .mobile-scroll-mask {
		margin-left: 0;
		width: 100%;
	}

	/* 横スクロール本体（全スライダー共通） */
	.swiper.is-mobile-scroll {
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		touch-action: pan-x pan-y;  /* 両方許可 */

		/* 左側の見切り＋スナップ補正 */
		padding-inline: var(--pd-side-wide);
		scroll-padding-inline: var(--pd-side-wide);
	}

	/* gapは使わず margin で間隔を作る（末尾の数値ズレ防止） */
	.swiper.is-mobile-scroll .swiper-wrapper {
		display: flex;
		gap: 0;
		transform: none !important;
		will-change: auto;
	}
	/* 末尾スペーサー（右36pxを保証） */
	.swiper.is-mobile-scroll .swiper-wrapper::after {
		content: "";
		flex: 0 0 var(--pd-side-wide);
	}

	.swiper.is-mobile-scroll .swiper-slide {
		flex: 0 0 auto;
		min-width: 0;
		scroll-snap-align: start;
		margin-right: var(--snap-gap, 26px);  /* デフォルトの間隔。セクションで上書き可 */
		margin-top: 24px; /* NEWマーク用余白 */
	}
	/* 末尾だけ margin をゼロ（右余白は ::after に任せる） */
	.swiper.is-mobile-scroll .swiper-slide:last-child { margin-right: 0; }

	/* hp_overflow_visible の上書き（横スクロール優先） */
	.swiper.is-mobile-scroll.hp_overflow_visible {
		overflow-x: auto !important;
		overflow-y: hidden !important;
	}

	/* セクション別の間隔（gapの代わり） */
	.swiper.is-mobile-scroll .swiper-wrapper { --snap-gap: 26px; }
	.wrap_basic_slider--1.is-mobile-scroll .swiper-wrapper { --snap-gap: 32px; }

	/* セクション別の“チラ見せ量”をpxで固定（設計値） */
	.wrap_basic_slider--1.is-mobile-scroll .swiper-slide {
		/* width: calc(100% - 123px); */
		width: calc(100% - 12.319vw);
	}
	.wrap_basic_slider--3.is-mobile-scroll .swiper-slide,
	.wrap_basic_slider--4.is-mobile-scroll .swiper-slide {
		/* width: calc(100% - 90px); */
		width: calc(100% - 21.739vw);
	}
	.wrap_basic_slider--5.is-mobile-scroll .swiper-slide,
	.wrap_basic_slider--5-2.is-mobile-scroll .swiper-slide {
		/* width: calc(100% - 151px); */
		width: calc(100% - 36.473vw);
	}

	/* スライド／カードは必ずスライド幅にフィット */
	.swiper .bl_card { width: 100%; min-width: 0; }
	.swiper-slide > * { width: 100%; min-width: 0; }

	/* タイトルは幅計算を安定化（保険） */
	.el_card__ttl { max-width: 100%; min-width: 0; overflow: hidden; }

	/* モバイルの矢印は非表示 */
	.el_swiperButton_prev, .el_swiperButton_next { display: none; }

	.wrap_basic_slider--1 .el_card__ttl {
		font-size: var(--font-size-l) !important;
	}
}

/*-------------------------------------------------
	Page
-------------------------------------------------*/
body.page .ly_grid + .ly_grid {
	margin-top: var(--mid);
}
body.home .ly_grid + .ly_grid {
	margin-top: 0 !important;
}
.ly_page_header {
	/* margin-bottom: var(--mid); */
	text-align: center;
}
.el_page_lv1H,
.el_page_lv2H {
	font-weight: 500;
	font-size: 22px;
	line-height: 150%;
	letter-spacing: .13em;
}
.el_page_lv1H > span,
.el_page_lv2H > span {
	display: inline-block;
	padding: 0 0 1px;
	border-bottom: 3px solid var(--key-color);
}
.el_page_lv1H > span.special {
	border-color: var(--key-color-special);
}
.el_page_lv1H > span.permanent {
	border-color: var(--key-color-permanent);
}
.el_page_lv1H > span.study {
	border-color: var(--key-color-study);
}
.el_page_lv1H + .el_page_special__ttl {
	margin-top: 1.25em;
}
.el_page_lv2H {
	margin-bottom: 1.25em;
	font-size: var(--font-size-xl);
	text-align: left;
}
/* p + .el_page_lv2H {
	margin-top: 2em;
} */
.el_page_special__ttl {
	font-family: var(--font-ja);
	/* font-size: 24px; */
	font-size: 33px;
	line-height: 1.5;
	letter-spacing: .04em;
}
.el_page_special__ttl + p {
	margin-top: 0.75em;
}
.el_page_special__period {
	font-weight: 500;
	font-size: var(--font-size-s);
	line-height: 1;
	letter-spacing: .04em;
	text-align: center;
	color: var(--key-color-special);
}
@media (max-width: 768px) {
	body.page .ly_grid + .ly_grid {
		margin-top: var(--mid-high);
	}
	.el_page_lv1H,
	.el_page_lv2H {
		font-size: var(--font-size-base);
	}
	.el_page_special__ttl {
		font-size: 24px;
	}
	.el_page_special__ttl + p {
		margin-top: 0.3em;
	}
	/* .ly_page_txt {
		margin-top: calc(-1 * var(--low));
	} */
	.sm_bleed_right.wide {
		margin-right: calc(-1 * var(--pd-side-wide));
		width: calc(100% + (var(--pd-side-wide)));
	}
}

/* Article Index */
.el_index__count {
	margin-bottom: calc(var(--low) + 24px);
	text-align: center;
}
.ly_indexList {
	row-gap: var(--mid);
}
.bl_card__label {
	position: absolute;
	top: -26px;
	left: 0;
	font-size: var(--font-size-base);
	line-height: 1;
}
.bl_card__label--new {
	font-weight: 700;
	letter-spacing: .08em;
	color: #E32619;
}
.bl_card__thumb {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background-color: #eee;
}
.bl_card__thumb .bl_card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
.bl_card__thumb + .el_card__ttl {
	margin-top: 10px;
}
.el_card__ttl {
	font-weight: 500;
	font-size: var(--font-size-xl);
	line-height: 1.5;
	letter-spacing: 0;
}
p.bl_card__excerpt {
	margin-top: 10px;
	margin-bottom: 10px;
	font-size: var(--font-size-s);
	line-height: 1.5;
	letter-spacing: 0;
}
p.bl_card__meta {
	margin-top: 10px;
	font-weight: 500;
	font-size: var(--font-size-s);
	line-height: 1.5;
	letter-spacing: .04em;
}
#top-study .el_card__ttl {
	font-size: var(--font-size-base);
}
#top-practice .el_card__ttl {
	font-weight: 400;
	font-size: var(--font-size-base);
}
#top-practice p.bl_card__excerpt {
	display: none;
}
@media (max-width: 768px) {
	.el_index__count {
		/* margin: -28px 0 24px; */
		margin: -28px 0 46px;
	}
	.ly_indexList {
		display: flex;
		flex-wrap: wrap;
		/* gap: 32px 16px; */
		gap: 49px 16px;
	}
	.ly_indexList.shop {
		gap: 35px 16px;
	}
	.ly_indexList .bl_card {
		width: calc(50% - 8px);
	}
	.bl_card__thumb + .el_card__ttl {
		margin-top: 14px;
	}
	.el_card__ttl {
		font-size: var(--font-size-base);
	}
	body.home .el_card__ttl {
		font-size: var(--font-size-xl);
	}
	body.page-practice .el_card__ttl {
		font-weight: 400;
	}
	p.bl_card__excerpt {
		margin-top: 3px;
		margin-bottom: 0;
	}
	p.bl_card__meta {
		margin-top: 6px;
	}
	body.page .bl_card__label,
	body.category .bl_card__label {
		top: -24px;
		font-size: 14px;
	}
	.sm_label--new .bl_card__label--new {
		top: -22px !important;
		font-size: 14px;
	}
}

/* News */
.ly_indexList.news {
	row-gap: var(--mid);
}
.bl_newsList {
	display: flex;
	justify-content: space-between;
	position: relative;
}
.bl_card__thumb.square {
	aspect-ratio: 1 / 1;
	width: clamp(75px, 10.204vw, 300px);
	height: clamp(75px, 10.204vw, 300px);
}
.bl_newsList__txt {
	display: flex;
    flex-direction: column;
    justify-content: space-between;
	flex: 1;
	margin-left: 1.36vw;
}
.bl_newsList__txt .el_card__ttl,
.bl_newsList__txt p.bl_card__excerpt {
	padding-right: .68vw;
}
.bl_card__meta > span {
	display: inline-block;
	margin-right: 0.9em;
	padding: 0.4em 0.55em;
	min-width: 4.15em;
	font-weight: 500;
	font-size: var(--font-size-s);
	line-height: 1;
	letter-spacing: .02em;
	color: #fff;
	text-align: center;
	border-radius: 3px;
	background-color: #4D4D4D;
}
.bl_card__meta > span.special {
	background-color: var(--key-color-special);
}
.bl_card__meta > span.permanent {
	background-color: var(--key-color-permanent);
}
/* @media (max-width: 1024px) {
	.ly_indexList.news .bl_card {
		grid-column: span 8;
	}
} */
@media (max-width: 768px) {
	.ly_indexList.news {
		row-gap: calc(var(--mid) + 10px);

		.bl_card {
			width: 100%;
		}
		.bl_card__thumb.square {
			width: clamp(90px, 26.57svw, 130px);
			height: clamp(90px, 26.57svw, 130px);
		}
		.bl_newsList__txt {
			margin-left: 12px;
		}
		.el_card__ttl {
			font-size: var(--font-size-s);
		}
		.bl_newsList__txt .el_card__ttl,
		.bl_newsList__txt p.bl_card__excerpt {
			padding-right: 0;
		}
	}
	.sm_mgn_top_mid .ly_indexList.news .bl_card__label--new {
		top: -17px !important;
		font-size: 13px;
	}
}

/* Pagination */
.bl_pagination {
	margin-top: var(--mid-high);
}
.bl_pagination .page-numbers {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	margin: 0 8px;
	width: 28px;
	height: 28px;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	border-radius: 50%;
	background: var(--key-color-special);
	color: #fff;
}
.bl_pagination .page-numbers.current {
	background: #fff;
	color: var(--key-color-special);
	border: 2px solid var(--key-color-special);
}
.bl_pagination .page-numbers.dots {
	background: transparent;
	border-radius: 0;
	width: auto;
	color: var(--text-color);
	vertical-align: text-bottom;
}
.bl_pagination .page-numbers.prev,
.bl_pagination .page-numbers.next {
	font-size: 1.1em;
	color: var(--key-color-special);
	background-color: transparent;
}
.bl_pagination .page-numbers.is-disabled {
	opacity: 0;
	/* filter: grayscale(100%); */
	cursor: auto;
}
@media (max-width: 413px) {
	.bl_pagination .page-numbers.prev,
	.bl_pagination .page-numbers.next {
		vertical-align: middle;
	}
	.bl_pagination .page-numbers {
		margin: 0 7px;
		width: 26px;
		height: 26px;
		font-size: 14px;
	}
}

@media (max-width: 768px) {
	.el_no_article {
		padding-left: var(--pd-side-wide);
	}
}

/*-------------------------------------------------
	Category
-------------------------------------------------*/
.bl_catFilter {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	/* margin: 60px 0 50px; */
	margin: 60px 0 75px;
}
body.category-archive .bl_catFilter,
body[class*="category-archive-"] .bl_catFilter {
	margin-bottom: 60px;
}
.el_catFilter__btn {
	padding: .5em 1em;
	font-weight: 500;
	font-size: var(--font-size-s);
	line-height: 1;
	letter-spacing: .02em;
	color: #737373;
	border: 2px solid #737373;
	border-radius: 9999px;
	background-color: #fff;
	transition: color .36s, border-color .36s, background-color .36s;
}
.el_catFilter__btn:hover,
.el_catFilter__btn.is-current {
	color: #fff;
	border-color: var(--key-color-special);
	background-color: var(--key-color-special);
	opacity: 1;
}
@media (max-width: 768px) {
	body.category-archive .bl_catFilter, body[class*="category-archive-"] .bl_catFilter {
		margin: var(--mid) 0;
	}
}

/* Shop */
.ly_shop_header {
	background-color: var(--key-color-special);
}
.el_shop_lv1H {
	display: flex;
    align-items: flex-end;
	margin-bottom: 30px;
	height: 160px;
}
.el_shop_lv1H__img {
	width: 270px;
}
.bl_shopList {
	display: flex;
	flex-direction: column;
	position: relative;
}
.bl_shopList .bl_card__thumb.square {
	width: 100%;
	height: auto;
}
.bl_shopList__txt {
	margin-top: 15px;
}
.bl_shopList__txt .el_card__ttl {
	font-size: var(--font-size-base);
}
.el_shop__price {
	font-size: var(--font-size-xl);
	opacity: .7;
}
span.el_shop__tax {
	margin-left: .5em;
	font-size: var(--font-size-base);
}
@media (max-width: 768px) {
	.el_shop_lv1H__img {
		width: 155px;
	}
	.bl_shopList__txt .el_card__ttl {
		font-size: var(--font-size-s) !important;
	}
	.el_shop__price {
		font-size: var(--font-size-base);
	}
	span.el_shop__tax {
		font-size: var(--font-size-s);
	}
}

/* Archive */
.ly_indexList.archive {
	row-gap: 25px;
}
.ly_indexList.archive .bl_card {
	padding-top: 20px;
	border-top: 1px solid #EDEDED;
}
.bl_archiveList__txt {
	padding-right: .68vw;
}
.bl_archiveList__txt .bl_card__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 1em;
}
.bl_archiveList__txt .bl_card__label--new {
	position: relative;
	top: unset !important;
	left: unset;
	margin-right: .5em;
}
.bl_archiveList__txt .el_card__ttl {
	font-weight: 400;
	font-size: var(--font-size-l) !important;
}
.bl_card__meta span.el_card__cat {
	padding: 0.6em 1em;
	border-radius: 8px;
	background-color: var(--key-color-special);
}
.bl_card__meta span.el_card__date {
	padding: 0;
	font-weight: 400;
	color: var(--text-color);
	background: transparent;
}
.bl_archiveList__txt p.bl_card__excerpt {
	margin-top: .5em;
    margin-bottom: 0;
}
@media (max-width: 768px) {
	.ly_indexList.archive {
		row-gap: 21px;
	}
	.ly_indexList.archive .bl_card {
		padding-top: 16px;
		width: 100%;
	}
	.bl_archiveList__txt {
		padding-right: 0;
	}
}

/*-------------------------------------------------
	Single
-------------------------------------------------*/
.ly_grid__single .ly_grid_inner,
.ly_grid__single .ly_article__content {
	display: contents;
}
.ly_grid__single .ly_article__header {
	grid-column: 2 / 10;
}
.ly_grid__single .ly_article__content strong {
	font-weight: 500;
}
.ly_grid__single .ly_article__content a,
.bl_shop__txt a,
.ly_breadcrumb a,
a.el_link_underline,
a .el_link_underline {
	text-decoration-line: underline;
	text-decoration-color: currentColor;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	text-decoration-skip-ink: auto;
}
.ly_grid__single .ly_article__content a,
.bl_shop__txt a {
	display: inline;
}
.ly_grid__single .ly_article__content > * {
	grid-column: 3 / 9;
}
h1.el_article__title {
	font-weight: 500;
	font-size: 32px;
	line-height: 150%;
	letter-spacing: .02em;
	color: var(--text-color);
	text-align: center;
}
.el_article__meta {
	margin-top: 1.25em;
	font-weight: 500;
	font-size: var(--font-size-s);
	line-height: 1.5;
	letter-spacing: .04em;
	color: var(--text-color);
	text-align: center;
}
.el_article__credit {
	margin-top: .75em;
	font-size: var(--font-size-s);
	line-height: 1.5;
	letter-spacing: .02em;
	color: #737373;
	text-align: center;
}
.wp-block-heading {
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: .04em;
	color: var(--text-color);
}
.wp-block-heading,
.ly_grid__single p {
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}
.wp-block-heading:first-child,
.wp-block-heading + .wp-block-heading {
	margin-top: 0;
}
h2.wp-block-heading {
	margin-top: var(--mid-high);
	margin-bottom: var(--mid-high);
	font-size: 24px;
	text-align: center;
}
h3.wp-block-heading {
	margin-top: 1.8em;
	margin-bottom: 1.8em;
	font-size: var(--font-size-xl);
}
.ly_grid__single p {
	margin-bottom: 0;
}
.ly_article__content p + p {
	margin-top: 2em;
}
.wp-element-caption {
	margin-top: 1em;
	margin-bottom: 0;
	font-size: var(--font-size-s);
	line-height: 1.5;
	letter-spacing: .02em;
	color: #4d4d4d;
	text-align: justify;
}
/* p / figure / div 同士が連続したときだけ、後ろ側に余白を付与 */
.ly_grid__single p + figure,
.ly_grid__single p + div,
.ly_grid__single figure + p,
.ly_grid__single figure + figure,
.ly_grid__single figure + div,
.ly_grid__single div + p,
.ly_grid__single div + figure,
.ly_grid__single div + div {
	margin-top: var(--mid-high);
}
/* WordPress ブロックの標準アラインをグリッドに対応付け（シングル記事内のみ） */
.ly_grid__single .wp-block-image.alignfull,
.ly_grid__single .wp-block-cover.alignfull,
.ly_grid__single .wp-block-gallery.alignfull,
.ly_grid__single .wp-block-group.alignfull {
	grid-column: 1 / -1;
	/* 真のフルブリードにするなら */
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.ly_grid__single .wp-block-image.alignwide,
.ly_grid__single .wp-block-group.alignwide,
.ly_grid__single .wp-block-cover.alignwide {
	/* 例: 幅広は中央8カラムに割り当てたい場合 */
	grid-column: 2 / 10;
}
.ly_grid__single .wp-block-image.alignleft,
.ly_grid__single .wp-block-group.alignleft {
	grid-column: 1 / 5;
	justify-self: start;
	float: none; /* グリッドで制御するため WP 既定の float を解除 */
}
.ly_grid__single .wp-block-image.alignright,
.ly_grid__single .wp-block-group.alignright {
	grid-column: 6 / 10;
	justify-self: end;
	float: none;
}
/* ブロック内部の2カラムなどは flex を併用（例） */
.ly_grid__single .block--two-col {
	display: flex;
	gap: var(--gutter);
}
.ly_grid__single .block--two-col .block__text { flex: 0 0 50%; }
.ly_grid__single .block--two-col .block__img  { flex: 0 0 50%; }

.wp-block-image {
	margin-bottom: 0;
}
.wp-block-image.ratio_16-9 img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.wp-block-image.ratio_2-1 img {
	aspect-ratio: 2 / 1;
	object-fit: cover;
}
.wp-block-image.ratio_21-9 img {
	aspect-ratio: 21 / 9;
	object-fit: cover;
}
/* Color */
.has-moon-blue-color {
	color: #009CAD;
}
.has-deep-moon-blue-color {
	color: #007B99;
}
.has-dark-gray-color {
	color: #4D4D4D;
}
.has-gray-color {
	color: #737373;
}
.has-light-gray-color {
	color: #B3B3B3;
}
.wp-block-accordion + .wp-block-image {
	margin-top: var(--low);
}
.wp-block-accordion-heading__toggle-icon {
	align-items: flex-start;
	font-size: 36px;
}
@media (max-width: 768px) {
	.ly_grid__single .ly_grid_inner {
		display: grid;
	}
	.wp-block-heading,
	.ly_grid__single p {
		padding-left: 0;
		padding-right: 0;
	}
	h1.el_article__title {
		font-size: 24px;
	}
	h2.wp-block-heading {
		margin-top: var(--mid-plus);
		margin-bottom: var(--mid-plus);
		font-size: 20px;
	}
	h3.wp-block-heading {
		margin-bottom: 1em;
		font-size: 18px;
	}
	.ly_grid__single p + figure,
	.ly_grid__single p + div,
	.ly_grid__single figure + p,
	.ly_grid__single figure + figure,
	.ly_grid__single figure + div,
	.ly_grid__single div + p,
	.ly_grid__single div + figure,
	.ly_grid__single div + div {
		margin-top: var(--mid-plus);
	}
	.ly_grid__single .wp-block-image.alignfull,
	.ly_grid__single .wp-block-cover.alignfull,
	.ly_grid__single .wp-block-gallery.alignfull,
	.ly_grid__single .wp-block-group.alignfull {
		margin-left: calc(-1 * var(--pd-side-wide));
		margin-right: calc(-1 * var(--pd-side-wide));
		width: calc(100% + (var(--pd-side-wide) * 2));
	}
}

/* Split block */
.ly_grid__split {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	/* align-items: center; */
	/* gap: calc(var(--gutter) * 2); */
	gap: var(--gutter);
}
.ly_grid__split .bl_grid__split__media {
	flex: 0 0 28.571vw;
	max-width: 28.571vw;
	margin-top: 0;
}
.ly_grid__split .bl_grid__split__txt {
	flex: 1 1 auto;
	min-width: 0;
	margin-top: 0;
}
/* Split block - 写真大・左寄せ */
.ly_grid__split.large.left {
	grid-column: 1 / 10;
}
/* Split block - 写真大・右寄せ */
.ly_grid__split.large.right {
	grid-column: 2 / 11;
}
/* Split block - 写真大 */
.ly_grid__split.large .bl_grid__split__media {
	flex: 0 0 48.979vw;
	max-width: 48.979vw;
	margin-top: 0;
}
.ly_grid__split.large .bl_grid__split__txt {
	flex: 1 1 auto;
	min-width: 0;
	margin-top: 0;
}
/* Split block - 3分割 */
.ly_grid__split_3 {
	gap: var(--gutter);
}
.ly_grid__split_3 figure + figure,
.ly_grid__split_3 div + div {
	margin-top: 0;
}
.ly_grid__split_3 .wp-block-heading {
	margin-top: 1em;
	padding: 0;
	width: 100%;
}
.ly_grid__split_3 p {
	padding: 0;
	line-height: 1.7;
}
.ly_grid__split_3 strong {
	font-size: var(--font-size-base);
}
.ly_grid__split_3.free {
	gap: calc(var(--gutter) * 2);
}
.ly_grid__split_3.free strong {
	font-size: unset;
}
/* Split block - 見出しあり */
.ly_grid__split {
	.is-vertical {
		margin-top: 0;
	}
	.wp-block-heading {
		margin-bottom: .5em !important;
	}
	.wp-block-heading {
		width: 100%;
		text-align: unset;
	}
	.has-text-align-left {
		text-align: left !important;
	}
	.has-text-align-center {
		text-align: center !important;
	}
	.has-text-align-right {
		text-align: right !important;
	}
}
@media (max-width: 768px) {
	/* モバイルでは1カラムに */
	.ly_grid__single .ly_article__header,
	.ly_grid__single .ly_article__content > * {
		grid-column: 1 / -1 !important;
	}
	.ly_grid__single .block--two-col {
		flex-direction: column;
	}
	.ly_grid__split {
		flex-direction: column;
		gap: var(--mid-plus);
	}
	/* A: 画像が先頭 → 左配置 */
	.ly_grid__split:has(.bl_grid__split__media:first-child),
	.ly_grid__split.large.left:has(.bl_grid__split__media) {
		align-items: flex-start;
	}
	/* .ly_grid__split:has(.bl_grid__split__media:first-child) .bl_grid__split__txt {
		padding-left: var(--pd-side-wide);
	} */
	/* B: 画像が末尾 → 右配置 */
	.ly_grid__split:has(.bl_grid__split__media:last-child),
	.ly_grid__split.large.right:has(.bl_grid__split__media) {
		flex-direction: column-reverse;
		align-items: flex-end;
	}
	/* .ly_grid__split:has(.bl_grid__split__media:last-child) .bl_grid__split__txt {
		padding-right: var(--pd-side-wide);
	} */
	.ly_grid__split .bl_grid__split__media {
		flex: 0 0 auto;
		max-width: calc(100% - (var(--pd-side-wide) * 2));
	}
	.ly_grid__split.large .bl_grid__split__media {
		flex: 0 0 auto;
		max-width: 100%;
	}
	.ly_grid__split.large.left .bl_grid__split__media {
		margin-left: calc(-1 * var(--pd-side-wide));
	}
	.ly_grid__split.large.right .bl_grid__split__media {
		margin-right: calc(-1 * var(--pd-side-wide));
	}
	/* Split block - 3分割 */
	.ly_grid__split_3 {
		flex-direction: column;
		gap: var(--mid);
	}
}

/*-------------------------------------------------
	Single - Shop
-------------------------------------------------*/
.ly_breadcrumb {
	display: flex;
	flex-wrap: wrap;
	font-size: var(--font-size-s);
	line-height: 1.5;
}
.ly_shop__img .bl_card__thumb.square {
	width: 100%;
	height: auto;
}
.ly_shop__txt {
	padding-left: var(--gutter);
}
.el_goods__title {
	font-size: 24px;
	line-height: 1.5;
	letter-spacing: .02em;
	color: var(--text-color);
}
.ly_shop__txt .el_shop__price {
	font-size: 24px;
}
.ly_shop__txt span.el_shop__tax {
	margin-left: 1em;
	font-size: var(--font-size-xs);
}
.el_btn_pill.shop {
	margin-top: 60px;
	margin-bottom: 30px;
	padding: 1em;
	/* width: clamp(210px, 28.572vw, 420px); */
	width: 100%;
}
@media (max-width: 768px) {
	.ly_shop__txt {
		padding-left: 0;
	}
	.el_goods__title {
		font-size: 20px;
	}
	.el_btn_pill.shop {
		font-size: var(--font-size-base);
		width: 100%;
		height: auto;
	}
}

/*-------------------------------------------------
	Contact
-------------------------------------------------*/
.ly_contactText p {
	font-weight: 500;
	letter-spacing: .13em;
	text-align: center;
}
.ly_contactForm {
	display: flex;
	flex-direction: column;
	gap: 35px 0;
	margin-top: var(--mid);
}
.ly_contactForm p {
	margin-bottom: 0;
	text-align: center;
}
.ly_contactForm label {
	font-weight: 500;
	font-size: var(--font-size-s);
	line-height: 1.5;
	letter-spacing: .13em;
	color: var(--text-color);
}
.ly_contactForm input,
.ly_contactForm textarea {
	margin-top: .4em;
	padding: 0.813em;
	width: clamp(300px, 50%, 600px);
	font-size: 16px;
	text-align: center;
	color: var(--text-color);
	border: 2px solid var(--key-color);
	border-radius: 9999px;
}
.ly_contactForm textarea {
	margin-bottom: -10px;
	height: 220px;
	text-align: justify;
	border-radius: 15px;
}
.ly_contactForm input::placeholder,
.ly_contactForm textarea::placeholder {
	color: #737373;
	opacity: .85;
}
.bl_agree-checkbox label {
	display: flex;
	align-items: center;
	gap: .5em;
	justify-content: center;
}
 /* 同意チェック全体 */
.bl_agree-checkbox {
	text-align: center;
}
/* CF7のacceptance内ラベル */
.bl_agree-checkbox .wpcf7-list-item-label {
	margin-left: .5em;
}
/* ===== チェックボックス本体（確実版） =====
	class:agree-checkbox が input ではなく wrapper に付いても効くように、
	.bl_agree-checkbox 内の checkbox を直接指定する
*/
.bl_agree-checkbox input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
	width: 1.2em;
	height: 1.2em;
	border: 2px solid var(--key-color); /* 線色・太さ */
	border-radius: 4px;
	background: #fff;
	display: inline-grid;
	place-content: center;
	vertical-align: middle;
	cursor: pointer;
	transform: translateY(1px);
}
/* チェックマーク */
.bl_agree-checkbox input[type="checkbox"]::before {
	content: "";
	width: 0.7em;
	height: 0.7em;
	transform: scale(0);
	transition: transform .12s ease-in-out;
	background: var(--key-color);
	clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}
.bl_agree-checkbox input[type="checkbox"]:checked::before {
	transform: scale(1);
}
/* フォーカス表示 */
.bl_agree-checkbox input[type="checkbox"]:focus-visible {
	outline: 2px solid #2563eb;
	outline-offset: 2px;
}
/* 無効時 */
.bl_agree-checkbox input[type="checkbox"]:disabled {
	opacity: .55;
	cursor: not-allowed;
}
.bl_contactForm_submit {
	margin-top: 13px;
	margin-bottom: -53px;
    padding-top: 42px;
	border-top: 1px solid  #000;
}
.bl_contactForm_submit,
.bl_contactForm_submit > p {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}
.bl_contactForm_submit input[type="submit"] {
	margin-top: 14px;
	padding: 1em 2em;
	width: clamp(180px, 30%, 360px);
	font-weight: 500;
	font-size: var(--font-size-s);
	line-height: 1;
	letter-spacing: .13em;
	color: #fff;
	border: none;
	border-radius: 9999px;
	background-color: var(--key-color-special);
	transition: background-color .36s, opacity .36s;
	cursor: pointer;
}
.wpcf7 .wpcf7-submit:disabled {
	opacity: .5;
}
.wpcf7-not-valid-tip {
	margin-top: .5em;
}
.cf7-cf-turnstile > p,
.cf7-cf-turnstile br {
	display: none;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.sent .wpcf7-response-output {
	margin-top: 47px;
	padding: 1em;
	line-height: 1.5;
	text-align: center;
	border-color: var(--key-color-special);
}
@media (max-width: 768px) {
	.ly_contactText {
		margin-top: -27px;
	}
	.ly_contactText p {
		font-size: var(--font-size-s);
		line-height: 1.5;
	}
	.ly_contactText p + p {
		margin-top: 2.5em;
	}
	.ly_contactForm input, .ly_contactForm textarea {
		width: clamp(260px, 67.632vw, 600px);
	}
	.ly_contactForm textarea {
		height: 180px;
	}
}
@media (max-width: 374px) {
	.cf7-cf-turnstile {
		margin-left: calc(-1 * var(--pd-side-wide));
		width: 100%;
	}
}

/*-------------------------------------------------
	Footer
-------------------------------------------------*/
.ly_ftr {
	background-color: #f5f7f7;
}
.bl_ftr {
	padding: 80px 0;
}
.ly_ftr_gNav { /* 左端に寄せる：1〜3列を使う */
	grid-column: 1 / 4; /* 1,2,3 カラムを占有 */
	justify-self: start;
	width: 100%;
}
.ly_ftr_other {
	grid-column: 4 / 9;
	display: flex;
}
.ly_ftr_otherNav {
	/* grid-column: 4 / 7;
	justify-self: center; */
	display: flex;
	justify-content: center;
	width: 30.612vw;
}
.ly_ftr_companyInfo {
	/* grid-column: 7 / 9;
	justify-self: end;
	width: 100%; */
	width: 18.367vw;
}

/* Footer G-Nav */
.ly_ftr_gNav .bl_gNav {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	align-content: space-between;
	margin-top: calc(var(--g-nav-list-gap) * -1); /* 最初の項目の上マージンを打ち消す */
	max-height: 250px;
}
.ly_ftr_gNav .bl_gNav > li:first-of-type {
    margin-top: var(--g-nav-list-gap);
}

/* Footer Other Nav */
.bl_snsLinks + .bl_utilityNav {
	margin-top: 45px;
}
.bl_utilityNav li + li {
	margin-top: 13px;
}
.bl_utilityNav li a {
	font-weight: 500;
	font-size: var(--font-size-xs);
	line-height: 175%;
	letter-spacing: .04em;
	color: var(--text-color);
}
.bl_utilityNav li.el_exLink a::after {
	content: '';
	display: inline-block;
	margin-left: .25em;
	width: 21px;
	height: 21px;
	background: center / contain no-repeat url(./img/cmn/icon_external-link.svg);
	vertical-align: top;
}

/* Footer Company Info */
.un_ftrLogo {
	display: block;
	margin-bottom: 23px;
	width: 180px;
}
.el_ftr_companyInfo_txt {
	font-weight: 400;
	font-size: var(--font-size-xs);
	line-height: 150%;
	letter-spacing: .04em;
}
.el_ftr_companyInfo_txt.grey {
	color: #737373;
}
.un_copyright {
	margin-top: 42px;
	padding-top: 23px;
	font-size: var(--font-size-xs);
	line-height: 175%;
	letter-spacing: .04em;
	color: #737373;
	border-top: 1px solid #737373;
}
.ly_ftr_3710Logo {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 150px;
	background-color: #fff;
}
.un_3710Logo_img {
	width: auto;
	height: 42px;
}
@media (max-width: 1439px) {
	.ly_ftr_gNav {
		grid-column: 1 / 3;
	}
	.ly_ftr_gNav .bl_gNav {
		max-height: none;
	}
	.ly_ftr_other {
		grid-column: 4 / 9;
		justify-content: space-between;
	}
	.ly_ftr_otherNav {
		justify-content: flex-start;
		width: auto;
	}
	.ly_ftr_companyInfo {
		width: 100%;
		max-width: 260px;
	}
}
@media (max-width: 1194px) {
	.ly_ftr_gNav {
		grid-column: 2 / 5;
	}
	.ly_ftr_other {
		grid-column: 5 / 8;
		flex-direction: column;
	}
	.ly_ftr_otherNav,
	.ly_ftr_companyInfo {
		width: 100%;
	}
	.ly_ftr_otherNav {
		justify-content: flex-start;
		margin-bottom: 60px;
	}
}
@media (max-width: 900px) {
	.ly_ftr .ly_grid {
		display: flex;
		justify-content: center;
		padding-inline: var(--pd-side-wide);
	}
	.bl_ftr {
		padding: 80px 0 70px;
	}
	.ly_ftr_gNav,
	.ly_ftr_other {
		grid-column: 1 / -1;   /* 1カラムなので全幅 */
		justify-self: stretch; /* 左右いっぱい使う */
		width: 100%;
	}
	.ly_ftr_gNav .bl_gNav {
		flex-wrap: nowrap;
	}
	.ly_ftr_gNav {
		margin-bottom: 47px;
	}
	.ly_ftr_3710Logo {
		height: 120px;
	}
	.ly_ftr_companyInfo {
		max-width: 300px;
	}
}
@media (max-width: 425px) {
	.ly_ftr .ly_grid {
		justify-content: flex-start;
	}
}