.-x-richtext ul, .-x-richtext ol {
	list-style-position: inside;
}
[data-legal]{
	position:relative;
	--legal-offset-h:attr(data-legal-offset-h px);
	--legal-offset-v:attr(data-legal-offset-v px);
}
[data-legal][data-legal-safe="1"]::after{
	position: absolute;
	opacity: 0.5;
	color: black;
	content: "墨";
	font-size: 16px;
	display: block;
	height: 24px;
	padding-top: 0px;
	background-image: url(/_lib/lc.png);
	background-size: auto 20px;
	background-repeat: no-repeat;
	padding-left: 50px;
	background-position: left top;
}
[data-legal][data-legal-safe="1"]:hover::after {
    position: absolute;
    opacity: 0.5;
    color: black;
    content: attr(data-legal-check-at);
    white-space:nowrap;
    font-size: 11px;
    display: block;
    height: 24px;
    background-image: url(/_lib/lc.png);
    background-size: auto 20px;
    background-repeat: no-repeat;
    padding-top: 15px;
    padding-left: 0px;
    background-position: left top;
}

[data-legal-position="left-top"]::after{
	left:var(--legal-offset-h);
	top:var(--legal-offset-v);
}
[data-legal-position="left-bottom"]::after{
	left:var(--legal-offset-h);
	bottom:var(--legal-offset-v);
}
[data-legal-position="right-top"]::after{
	right:var(--legal-offset-h);
	top:var(--legal-offset-v);
}
[data-legal-position="right-bottom"]::after{
	right:var(--legal-offset-h);
	bottom:var(--legal-offset-v);
}
/*common_css*/
/* -------------------------------------
リセット 全レイアウト共通設定
-------------------------------------*/
/*! destyle.css v2.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */

*,
::before,
::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -webkit-tap-highlight-color: transparent; /* 3*/
}
body {
  margin: 0;
  background: rgb(var(--white));
}
main {
  display: block;
}
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  margin: 0;
}
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
dt {
  font-weight: inherit;
}
dd {
  margin-left: 0;
}
hr {
  -webkit-box-sizing: content-box;
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}
address {
  font-style: inherit;
}
a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}
abbr[title] {
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted; /* 2 */
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

/* Forms */
/* ============================================ */
button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  outline: 0;
  border-radius: 0;
  text-align: inherit;
}
[type="checkbox"] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
  appearance: checkbox;
}
[type="radio"] {
  -webkit-appearance: radio;
  -moz-appearance: radio;
  appearance: radio;
}
button,
input {
  /* 1 */
  overflow: visible;
}
button,
select {
  /* 1 */
  text-transform: none;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
button[disabled],
[type="button"][disabled],
[type="reset"][disabled],
[type="submit"][disabled] {
  cursor: default;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
select::-ms-expand {
  display: none;
}
option {
  padding: 0;
}
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}
legend {
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}
progress {
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
[type="search"] {
  outline-offset: -2px; /* 1 */
}
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */
details {
  display: block;
}
summary {
  display: list-item;
}
[contenteditable] {
  outline: none;
}

/* Table */
/* ============================================ */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
caption {
  text-align: left;
}
td,
th {
  vertical-align: top;
  padding: 0;
}
th {
  text-align: left;
  font-weight: bold;
}

/* Misc */
/* ============================================ */
template {
  display: none;
}
[hidden] {
  display: none;
}
[data-lib="293"]{
	border: none;
    font-size: inherit;
    outline: none;
    padding: 0;
	cursor:pointer;
}/*widget:3814a386-94c4-46a6-b696-12ca3699d3bf*/
/*widget:5e5cc7bb-7531-4684-a761-1a30443a057f*/
/*instance:146*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:9f947473-78ab-40af-8208-2abb9dfb8951*/
/*widget:4c708e5c-2424-4792-bbd0-5438dbc0e3c8*/
[data-lib="3"] p a{display: inline-block;
	color:rgb(var(--green));
	text-decoration: underline;}/*widget:4ea28535-bb10-4bd4-92ba-bdbe9e5dad03*/
/*widget:6ba8a5f6-3b63-4c19-b065-7b97617d1860*/
/*widget:537be97e-33c7-4edd-a38d-6bc91a9d29bf*/
/*widget:60fea956-1669-422e-a51b-dc4c8b77ec4e*/
[data-lib="198"]{--titBta:center;
	--titBm:0 0 15px;
	--btnAw:100%;
	--btnAm:15px auto;}[data-lib="198"] figure img{max-width: 100%;
	height: auto;}[data-lib="198"] .cate{display: flex;
	justify-content: center;
	align-items: center;
	gap: 1px;
	width: 100%;
	margin: 0 auto;
	padding: 10px 0 0;}[data-lib="198"] .cate time{margin-right: 10px;}[data-lib="198"] .entry-content{border:1px solid var(--gray);
	background:var(--bodybg)
    padding:0;
	margin:50px 10%;}[data-lib="198"] .entry-content dt{text-align:center;
	font-weight: bold;
	font-size: 1.1em;
	padding:15px 30px;}[data-lib="198"] .entry-content dt + dd{border-top:1px solid var(--gray);}[data-lib="198"] .entry-content dd{counter-increment: list;
	padding:15px 30px 15px 3em;
	text-indent: -1.2em;}[data-lib="198"] .entry-content dd:before{content: counter(list)". ";}[data-lib="198"] .entry-content dd a{text-decoration: underline;}[data-lib="198"] .entry-content dd a:hover{text-decoration: none;}[data-lib="198"] .left .fixnum{margin-bottom: 30px;}[data-lib="198"] .left figure{border: 1px solid #f1f1f1;
	padding: 20px;
	text-align: center;
	width: 100%;
	margin: 30px 0;}[data-lib="198"] .left figure img{display: block;
	margin: 0 auto;}[data-lib="198"] .left .youtube{width: 90%;
	margin: 20px auto;}[data-lib="198"] .left .richtext{margin: 50px 5%;}[data-lib="198"] .left .container{width: 768px;}@media screen and (max-width: 520px){[data-lib="198"]{--titBta:left;
	--btnAw:90vw;
	padding: 0;}[data-lib="198"] .cate{justify-content: flex-end;}[data-lib="198"] .entry-content{padding:10px 0 15px;
	margin:30px 5% 20px;}[data-lib="198"] .entry-content dt{padding:0;}[data-lib="198"] .entry-content dd{padding:15px 10px 0 2em;
	text-indent: -1.2em;}[data-lib="198"] .left   figure{border: 1px solid #f1f1f1;
	padding: 8px;
	text-align: center;}[data-lib="198"] .left .richtext{margin: 20px auto;}[data-lib="198"] .left .youtube{width: 100%;}}/*widget:3e20f6e2-51d7-4f3b-bd50-7600045e1998*/
/*layout:1*//* -------------------------------------
BASE bodyレイアウト
-------------------------------------*/

/** ================================================================================
		Default
================================================================================ **/
html {
	overflow: auto;
}

body {
	font-family: "Avenir", "Helvetica Neue", "Helvetica", "Arial",
		"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",
		"游ゴシック", "Yu Gothic", "ＭＳ Ｐゴシック", sans-serif;
	line-height: 1.8;
	position: relative;
	overflow: hidden;
	margin: 0 auto;

	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;

	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
}

/*リンク*/

p a {
	text-decoration: underline;
}

p a:hover {
	text-decoration: none;
}

a {
	cursor: pointer;
	text-decoration: none;
	color: inherit;
}

a:hover {
	-webkit-transition: 0.3s;
	transition: 0.3s;
}

a.td-u,
.td-u a {
	text-decoration: underline;
}

a.td-u:hover,
.td-u a:hover {
	text-decoration: none;
}

/**PC電話ボタン無効**/
a[href^="tel"],
a[href=""] {
	pointer-events: none;
}

@media screen and (max-width: 520px) {
	a[href^="tel"] {
		pointer-events: auto;
	}
}

/*区切り線*/
hr {
	display: block;
	height: 1px;
	margin: 1em 0;
	padding: 0;
	border: 0;
}

.note {
	display: block;
	padding-left: 1em;
	text-indent: -1em;
}

figure img,
picture img {
	max-width: 100%;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

@media screen and (max-width: 520px) {
	body {
		min-width: 100%;
	}

	/**post制御**/
	p {
		word-break: break-all;
	}

	table {
		width: 100%;
		word-break: break-all;
	}

	img {
		max-width: 100%;
		height: auto;
	}

	/**post制御**/
}

/* -------------------------------------
ベーススタイル設定

1.clearfix,clear
2.font
3.float
4.text-align
5.margin
6.padding
-------------------------------------*/
/*0.clock */
.block {
	display: block;
}

.in-block {
	display: inline-block;
}

.flx {
	display: flex;
}

.relative {
	position: relative;
}

.max100 {
	max-width: 100%;
}

/*1. clearfix,clear */

/* For modern browsers */
.cf:before,
.cf:after {
	display: block;
	overflow: hidden;
	content: "";
}

.cf:after {
	clear: both;
}

.clear {
	clear: both;
}

/*2. font 必要なら追加　優先順位：高*/
body .fw-b {
	font-weight: var(--fw-b);
}

body .fw-bb {
	font-weight: var(--fw-bb);
}

body .fz12 {
	font-size: 0.75rem;
}

body .fz14 {
	font-size: 0.87rem;
}

body .fz15 {
	font-size: 0.94rem;
}

body .fz16 {
	font-size: 16px;
}

body .fz17 {
	font-size: 17px;
}

body .fz18 {
	font-size: 18px;
}

body .fz20 {
	font-size: 20px;
}

body .fz22 {
	font-size: 22px;
}

body .fz24 {
	font-size: 24px;
}

body .fz26 {
	font-size: 26px;
}

body .fz28 {
	font-size: 28px;
}

body .fz30 {
	font-size: 30px;
}

body .fz32 {
	font-size: 32px;
}

body .fz35 {
	font-size: 35px;
}

body .fz40 {
	font-size: 40px;
}

body .fz44 {
	font-size: 44px;
}

body .fz46 {
	font-size: 46px;
}

body .fz54 {
	font-size: 54px;
}

body .fz50 {
	font-size: 50px;
}

body .fz60 {
	font-size: 60px;
}

body .fz70 {
	font-size: 70px;
}

@media screen and (max-width: 520px) {
	body .fz16 {
		font-size: 15px;
	}

	body .fz17 {
		font-size: 15px;
	}

	body .fz18 {
		font-size: 16px;
	}

	body .fz20 {
		font-size: 16px;
	}

	body .fz22 {
		font-size: 16px;
	}

	body .fz24 {
		font-size: 18px;
	}

	body .fz26 {
		font-size: min(5vw, 22px);
	}

	body .fz28 {
		font-size: min(5vw, 24px);
	}

	body .fz30 {
		font-size: min(5vw, 26px);
	}

	body .fz32 {
		font-size: min(5.6vw, 28px);
	}

	body .fz35 {
		font-size: min(6.4vw, 30px);
	}

	body .fz40 {
		font-size: min(6.4vw, 36px);
	}

	body .fz44 {
		font-size: min(6.4vw, 36px);
	}

	body .fz46 {
		font-size: min(6.4vw, 40px);
	}

	body .fz50 {
		font-size: min(6.4vw, 42px);
	}

	body .fz54 {
		font-size: min(6.4vw, 42px);
	}

	body .fz60 {
		font-size: min(8vw, 40px);
	}

	body .fz70 {
		font-size: min(8vw, 48px);
	}
}


.lh2 {
	line-height: 2;
}

.lh15 {
	line-height: 1.5;
}

.lh13 {
	line-height: 1.3;
}

.lh1 {
	line-height: 1;
}

/*3. float */
.f_L {
	display: inline;
	float: left;
}

.f_R {
	display: inline;
	float: right;
}

/*4. text-align 優先順位：高 */
/*4. align 優先順位：高 */
body .t_C,
body .t_CL,
body .t_CR {
	text-align: center;
}

body .t_R {
	text-align: right;
}

body .t_L {
	text-align: left;
}

body .ai_c {
	align-items: center;
}

body .ai_fe {
	align-items: flex-end;
}

body .ai_fs {
	align-items: flex-start;
}

body .ai_s {
	align-items: stretch;
}

body .jc_c {
	justify-content: center;
}

body .jc_fs {
	justify-content: flex-start;
}

body .jc_sb {
	justify-content: space-between;
}

body .jc_sa {
	justify-content: space-around;
}

@media screen and (max-width: 520px) {
	body .t_CL {
		text-align: left;
	}

	body .t_CR {
		text-align: right;
	}
}

body .m0 {
	margin: 0;
}

body .mb0 {
	margin-bottom: 0;
}

body .mb5 {
	margin-bottom: 5px;
}

body .mb10 {
	margin-bottom: 10px;
}

body .mb15 {
	margin-bottom: 15px;
}

body .mb20 {
	margin-bottom: 20px;
}

body .mb30 {
	margin-bottom: 30px;
}

body .mb40 {
	margin-bottom: 40px;
}

body .mb50 {
	margin-bottom: 50px;
}

body .mb70 {
	margin-bottom: 70px;
}

body .mb80 {
	margin-bottom: 80px;
}

body .mb100 {
	margin-bottom: 100px;
}

body .mb150 {
	margin-bottom: 150px;
}

body .mb200 {
	margin-bottom: 200px;
}

body .mb250 {
	margin-bottom: 250px;
}

body .mt0 {
	margin-top: 0;
}

body .mt5 {
	margin-top: 5px;
}

body .mt10 {
	margin-top: 10px;
}

body .mt15 {
	margin-top: 15px;
}

body .mt20 {
	margin-top: 20px;
}

body .mt30 {
	margin-top: 30px;
}

body .mt40 {
	margin-top: 40px;
}

body .mt50 {
	margin-top: 50px;
}

body .mt70 {
	margin-top: 70px;
}

body .mt80 {
	margin-top: 80px;
}

body .mt100 {
	margin-top: 100px;
}

body .mt150 {
	margin-top: 150px;
}

body .mt200 {
	margin-top: 200px;
}

body .mt250 {
	margin-top: 250px;
}

body .ml0 {
	margin-left: 0;
}

body .ml5 {
	margin-left: 5px;
}

body .ml10 {
	margin-left: 10px;
}

body .ml15 {
	margin-left: 15px;
}

body .ml20 {
	margin-left: 20px;
}

body .ml30 {
	margin-left: 30px;
}

body .mr0 {
	margin-right: 0;
}

body .mr5 {
	margin-right: 5px;
}

body .mr10 {
	margin-right: 10px;
}

body .mr15 {
	margin-right: 15px;
}

body .mr20 {
	margin-right: 20px;
}

body .mr30 {
	margin-right: 30px;
}

@media screen and (max-width: 520px) {

	/*5. margin 30以上は1/2 */
	body .mb20 {
		margin-bottom: 15px;
	}

	body .mb30 {
		margin-bottom: 20px;
	}

	body .mb40 {
		margin-bottom: 20px;
	}

	body .mb50 {
		margin-bottom: 30px;
	}

	body .mb70 {
		margin-bottom: 50px;
	}

	body .mb80 {
		margin-bottom: 60px;
	}

	body .mb100 {
		margin-bottom: 80px;
	}

	body .mb150 {
		margin-bottom: 100px;
	}

	body .mb200 {
		margin-bottom: 140px;
	}

	body .mb250 {
		margin-bottom: 170px;
	}

	body .mt20 {
		margin-top: 15px;
	}

	body .mt30 {
		margin-top: 20px;
	}

	body .mt40 {
		margin-top: 20px;
	}

	body .mt50 {
		margin-top: 30px;
	}

	body .mt70 {
		margin-top: 50px;
	}

	body .mt80 {
		margin-top: 60px;
	}

	body .mt100 {
		margin-top: 80px;
	}

	body .mt150 {
		margin-top: 100px;
	}

	body .mt200 {
		margin-top: 140px;
	}

	body .mt250 {
		margin-top: 170px;
	}
}

/*6. padding 優先順位:高*/
body .p0 {
	padding: 0;
}

body .pb0 {
	padding-bottom: 0;
}

body .pb5 {
	padding-bottom: 5px;
}

body .pb10 {
	padding-bottom: 10px;
}

body .pb15 {
	padding-bottom: 15px;
}

body .pb20 {
	padding-bottom: 20px;
}

body .pb30 {
	padding-bottom: 30px;
}

body .pb40 {
	padding-bottom: 40px;
}

body .pb50 {
	padding-bottom: 50px;
}

body .pb70 {
	padding-bottom: 70px;
}

body .pb80 {
	padding-bottom: 80px;
}

body .pb100 {
	padding-bottom: 100px;
}

body .pb150 {
	padding-bottom: 150px;
}

body .pb200 {
	padding-bottom: 200px;
}

body .pb250 {
	padding-bottom: 250px;
}

body .pt0 {
	padding-top: 0;
}

body .pt5 {
	padding-top: 5px;
}

body .pt10 {
	padding-top: 10px;
}

body .pt15 {
	padding-top: 15px;
}

body .pt20 {
	padding-top: 20px;
}

body .pt30 {
	padding-top: 30px;
}

body .pt40 {
	padding-top: 40px;
}

body .pt50 {
	padding-top: 50px;
}

body .pt70 {
	padding-top: 70px;
}

body .pt80 {
	padding-top: 80px;
}

body .pt100 {
	padding-top: 100px;
}

body .pt150 {
	padding-top: 150px;
}

body .pt200 {
	padding-top: 200px;
}

body .pt250 {
	padding-top: 250px;
}

body .pl0 {
	padding-left: 0;
}

body .pl5 {
	padding-left: 5px;
}

body .pl10 {
	padding-left: 10px;
}

body .pl15 {
	padding-left: 15px;
}

body .pl20 {
	padding-left: 20px;
}

body .pl30 {
	padding-left: 30px;
}

body .pr0 {
	padding-right: 0;
}

body .pr5 {
	padding-right: 5px;
}

body .pr10 {
	padding-right: 10px;
}

body .pr15 {
	padding-right: 15px;
}

body .pr20 {
	padding-right: 20px;
}

body .pr30 {
	padding-right: 30px;
}

@media screen and (max-width: 520px) {
	body .pb20 {
		padding-bottom: 15px;
	}

	body .pb30 {
		padding-bottom: 20px;
	}

	body .pb40 {
		padding-bottom: 20px;
	}

	body .pb50 {
		padding-bottom: 30px;
	}

	body .pb70 {
		padding-bottom: 40px;
	}

	body .pb80 {
		padding-bottom: 40px;
	}

	body .pb100 {
		padding-bottom: 50px;
	}

	body .pb150 {
		padding-bottom: 75px;
	}

	body .pb200 {
		padding-bottom: 140px;
	}

	body .pb250 {
		padding-bottom: 170px;
	}

	body .pt20 {
		padding-top: 15px;
	}

	body .pt30 {
		padding-top: 20px;
	}

	body .pt40 {
		padding-top: 20px;
	}

	body .pt50 {
		padding-top: 30px;
	}

	body .pt70 {
		padding-top: 40px;
	}

	body .pt80 {
		padding-top: 40px;
	}

	body .pt100 {
		padding-top: 50px;
	}

	body .pt150 {
		padding-top: 75px;
	}

	body .pt200 {
		padding-top: 140px;
	}

	body .pt250 {
		padding-top: 170px;
	}
}

/* -------------------------------------
幅
-------------------------------------*/
body .w100p,
body .w1100,
body .w1000,
body .w980,
body .w900,
body .w800,
body .w700,
body .w650,
body .w600 {
	margin-right: auto;
	margin-left: auto;
}

body .w100p {
	width: 100%;
}

body .w1100 {
	width: 1100px;
}

body .w1000 {
	width: 1000px;
}

body .w980 {
	width: var(--base-width);
}

body .w900 {
	width: 900px;
}

body .w800 {
	width: 800px;
}

body .w700 {
	width: 700px;
}

body .w650 {
	width: 650px;
}

body .w600 {
	width: 600px;
}

@media screen and (max-width: 520px) {

	body .w100p,
	body .w1100,
	body .w1000,
	body .w980,
	body .w900,
	body .w800,
	body .w700,
	body .w650,
	body .w600 {
		margin-right: auto;
		margin-left: auto;
	}

	body .w100p {
		width: 100%;
	}

	body .w1100 {
		width: 100%;
	}

	body .w1000 {
		width: 100%;
	}

	body .w980 {
		width: 100%;
	}

	body .w900 {
		width: 100%;
	}

	body .w800 {
		width: 100%;
	}

	body .w700 {
		width: 100%;
	}

	body .w650 {
		width: 100%;
	}

	body .w600 {
		width: 100%;
	}

	body .w100p>*,
	body .w1100>*,
	body .w1000>*,
	body .w980>*,
	body .w900>*,
	body .w800>*,
	body .w700>*,
	body .w650>*,
	body .w600>* {
		width: 90%;
		margin-right: auto;
		margin-left: auto;
	}

	body .w100p>.max,
	body .w100p.max,
	body .w1100>.max,
	body .w1100.max,
	body .w1000>.max,
	body .w1000.max,
	body .w980>.max,
	body .w980.max,
	body .w900>.max,
	body .w900.max,
	body .w800>.max,
	body .w800.max,
	body .w700>.max,
	body .w700.max,
	body .w650>.max,
	body .w650.max,
	body .w600>.max,
	body .w600.max {
		width: 100%;
	}
}

body .calc-bw {
	padding-right: max(calc((100% - var(--base-width)) / 2), 2%);
	padding-left: max(calc((100% - var(--base-width)) / 2), 2%);
}

@media screen and (max-width: 520px) {
	body .calc-bw>* {
		width: 90%;
		margin-right: auto;
		margin-left: auto;
	}

	body .calc-bw>.max {
		width: 100%;
	}
}

/* -------------------------------------
改行
-------------------------------------*/
.pc {}

.sp {
	display: none;
}

.ib {
	display: inline-block;
}

.flex {
	display: flex;
}

.sponly {
	display: none;
}

@media screen and (max-width: 520px) {
	.pc {
		display: none;
	}

	.sp {
		display: block;
	}

	.sp-ib {
		display: inline-block;
	}
}

@media screen and (max-width: 480px) {
	.sponly {
		display: block;
	}
}


/* -------------------------------------
横並びボックスの数
-------------------------------------*/
/**横並び**/
.boxLR {
	display: flex;
	justify-content: space-between;
}

/**２つ並び**/
.box2C {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
}

.box2C>* {
	width: 48%;
}

.box2C:after {
	display: block;
	width: 48%;
	content: "";
}

/**3つ並び**/
.box3C {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
}

.box3C>* {
	width: 32%;
}

.box3C:after {
	display: block;
	width: 32%;
	content: "";
}

/**4つ並び**/
.box4C {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
}

.box4C>* {
	width: 24.5%;
}

.box4C:after,
.box4C:before {
	display: block;
	width: 24.5%;
	content: "";
}

.box4C:before {
	-webkit-box-ordinal-group: 2;
	-ms-flex-order: 1;
	order: 1;
}

@media screen and (max-width: 520px) {

	/* -------------------------------------
横並びボックスの数
-------------------------------------*/
	/**２つ並び**/
	.box2C {
		width: 100%;
	}

	.box2C.box1C_sp {
		-ms-flex-flow: column;
		flex-flow: column;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
	}

	.box2C.box2C_sp {
		-ms-flex-flow: row wrap;
		flex-flow: row wrap;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
	}

	.box2C.box1C_sp>* {
		width: 100%;
	}

	.box2C.box1C_sp:after {
		display: none;
	}

	.box2C.box2C_sp>*,
	.box2C.box2C_sp::after {
		width: 48%;
	}

	.box2C.box2C_sp.sp1c>*,
	.box2C.box2C_sp.sp1c::after {
		/*		min-width: 300px;*/
	}

	/**3つ並び**/
	.box3C {
		width: 100%;
	}

	.box3C.box1C_sp {
		-ms-flex-flow: column;
		flex-flow: column;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
	}

	.box3C.box2C_sp {
		-ms-flex-flow: row wrap;
		flex-flow: row wrap;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
	}

	.box3C.box3C_sp {
		-ms-flex-flow: row wrap;
		flex-flow: row wrap;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
	}

	.box3C.box1C_sp>* {
		width: 100%;
	}

	.box3C.box1C_sp:after {
		display: none;
	}

	.box3C.box2C_sp>*,
	.box3C.box2C_sp::after {
		width: 48%;
	}

	.box3C.box3C_sp>*,
	.box3C.box3C_sp::after {
		width: 31%;
	}

	/**4つ並び**/
	.box4C {
		width: 100%;
	}

	.box4C.box1C_sp {
		-ms-flex-flow: column;
		flex-flow: column;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
	}

	.box4C.box2C_sp {
		-ms-flex-flow: row wrap;
		flex-flow: row wrap;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
	}

	.box4C.box1C_sp>* {
		width: 100%;
	}

	.box4C.box2C_sp>* {
		width: 48%;
	}

	.box4C:after,
	.box4C:before {
		display: none;
	}
}

@media screen and (max-width: 520px) {

	/* -------------------------------------
横並びボックスの数
-------------------------------------*/
	.sp1c {
		-ms-flex-flow: column;
		flex-flow: column !important;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
	}

	.sp1c>*,
	.sp1c::after {
		width: 100% !important;
		margin-right: auto;
		margin-left: auto;
	}
}

/**------------------------------ 
写真なしリスト
ul.nop-list>li>a
em[data-name="カテゴリ"]カテゴリ
 ------------------------------**/
.nop-list {
	margin: 30px auto;
	border-top: 1px dotted var(--nop-b-c);
}

.nop-list li {
	border-bottom: 1px dotted var(--nop-b-c);
}

.nop-list a {
	display: flex;
}

.nop-list em {
	font-size: 13px;
	font-style: normal;
	min-width: 8em;
	margin: 0 20px;
	padding: 3px;
	text-align: center;
	color: var(--nop-cat-c);
	background: var(--nop-cat-bg);
}

@media screen and (max-width:520px) {
	.nop-list {
		margin: 15px auto;
	}

	.nop-list a {
		flex-wrap: wrap;
	}

	.nop-list a em {
		margin: 0 15px 5px;
	}
}


/* -------------------------------------
パンくず
-------------------------------------*/
#breadcrumb {
	font-size: 0.8em;
	width: 100%;
	margin: 0 0;
	padding: 8px var(--over-width-half);
}

/*家アイコン*/
#breadcrumb ul,
#breadcrumb ol {
	max-width: 100%;
	margin: 0 auto;
}

#breadcrumb ul li,
#breadcrumb ol li {
	display: inline-block;
	padding: 0 5px;
}

#breadcrumb ul li+li:before,
#breadcrumb ol li+li:before {
	font-size: 12px;
	line-height: 1;
	top: 1.5em;
	display: inline-block;
	width: 5px;
	height: 5px;
	margin: 0 5px 0 0;
	content: "";
	transform: rotate(45deg);
	vertical-align: middle;
	border-top: 1px solid var(--bread-c);
	border-right: 1px solid var(--bread-c);
}

#breadcrumb a {
	text-decoration: underline;
}

#breadcrumb a:hover {
	text-decoration: none;
}

@media screen and (max-width: 520px) {
	#breadcrumb {
		padding: 3px 0;
	}

	#breadcrumb ul,
	#breadcrumb ol {
		padding: 0 2%;
	}
}

/* -------------------------------------
ページャー OWLet
-------------------------------------*/
.pagenation {
	margin: 100px auto 0;
	text-align: center;
	font-size: 0.9rem;
}

.pagenation span {
	line-height: 27px;
	display: inline-block;
	width: 32px;
	height: 32px;
	margin: 5px;
	text-align: center;
	color: var(--pgn-c);
	border: 1px solid var(--pgn-c);
	background: var(--pgn-bg);
}

.pagenation span.page {
	color: var(--pgn-bg);
	background: var(--pgn-c);
}

.pagenation span a {
	display: block;
	width: 100%;
	height: 100%;
	color: var(--pgn-c);
	background: var(--pgn-bg);
}

.pagenation span a:hover {
	color: var(--pgn-bg);
	background: var(--pgn-c);
}

@media screen and (max-width: 520px) {
	.pagenation span {
		line-height: 27px;
		width: 30px;
		height: 30px;
		margin: 3px;
	}

	.pagenation span a {
		min-width: 28px;
	}
}

/* -------------------------------------
ページャー WP
-------------------------------------*/
.pagenation_wp {
	margin: 30px auto;
	text-align: center;
}

.pagenation_wp ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.pagenation_wp a,
.pagenation_wp span {
	line-height: 38px;
	display: inline-block;
	min-width: 40px;
	height: 40px;
	margin: 5px;
	text-align: center;
	color: var(--pgn-c);
	border: 1px solid var(--pgn-c);
	background: var(--pgn-bg);
}

.pagenation_wp span.current {
	color: var(--pgn-bg);
	background: var(--pgn-c);
}

.pagenation_wp a:hover {
	color: var(--pgn-bg);
	background: var(--pgn-c);
}

.pagenation_wp .prev,
.pagenation_wp .next {
	padding: 0 8px;
	border: none;
}

@media screen and (max-width: 520px) {

	.pagenation_wp a,
	.pagenation_wp span {
		font-size: 13px;
		min-width: 30px;
	}
}

/**================================================== 
 フォーム
================================================== **/

input,
textarea,
select,
button {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	font-size: 100%;
}

form {
	--alert: #bb0033;
}

/**エラー**/
.alert {
	margin: 5px 0;
	color: var(--alert);
}

form input[type="text"],
form textarea,
form select {
	height: 2.4em;
	width: 100%;
	padding: 10px;
	border-radius: 4px;
	border: none;
	box-shadow: 0 0 0 1px #ccc inset;
	background: #fff;
	appearance: auto;
	-webkit-appearance: auto;
	-moz-appearance: auto;
	margin: 0 0 5px;
}

form select {
	padding: 0 30px;
	width: fit-content;
}

form input[type="text"]:focus,
form textarea:focus,
form select:focus {
	outline: 0;
	box-shadow: 0 0 0 2px rgb(var(--green)) inset;
}

form label {
	cursor: pointer;
	display: block;
	width: fit-content;
	line-height: 1;
}

form label+label {
	margin-top: 10px;
}

form input[type="radio"],
form input[type="checkbox"] {
	width: 1em;
	height: 1em;
	margin: 0 5px 0 0;
	accent-color: rgb(var(--green));
}/*layout:2*//*-------------------------------------
サイト用 ヘッダー・フッターレイアウト
基本装飾 -サイトにより変更-
-------------------------------------*/
:root {
	--base-width: 1100px;
	--over-width-half: calc((100vw - var(--base-width)) / 2);
	--ff: 'Noto Sans JP', sans-serif;
	--webf: 'Shippori Mincho', serif;
	--eng: 'Roboto Condensed';
	--header-height: 75px;
	--fz: 16px;

	/*--black: 100, 100, 100;*/
	--black: 50, 50, 50;
	--white: 255, 255, 255;
	--green: 0, 54, 32;
	--green2: 37, 58, 55;
	--green3: 158, 179, 170;
	--gray: 107, 107, 107;

	--asp768: 5/4;
	/**.fw-b.fw-bb*/
	--fw-b: 700;
	--fw-bb: 900;
	/**.pagenation**/
	--pgn-c: rgb(var(--gray));
	--pgn-bg: rgb(var(--white));
	/**#breadcrumb**/
	--bread-c: #555555;
	--bread-bg: rgb(150, 150, 150, 0.1);
}

@media screen and (max-width:520px) {
	:root {
		--fz: 14px;
		--base-width: 100%;
		--over-width-half: 5%;
		--header-height: 50px;
	}
}

html {
	font-size: var(--fz);
}

body {
	font-family: var(--ff);
	min-width: var(--base-width);
	padding-top: var(--header-height);
	color: rgb(var(--black));
}

/**================================================================================
レイアウト
================================================================================**/

/**------------------------------ 
横並びリスト 均等
box nth column
.boxNC>li
 ------------------------------**/

:root {
	--boxNC_w: var(--base-width);
	--boxNC_m: 30px auto;
	--boxNC_gap: 20px 3%;
	--boxNC_child_w: calc(94% / 3);
}

.boxNC {
	display: flex;
	flex-wrap: wrap;
	width: var(--boxNC_w);
	margin: var(--boxNC_m);

	gap: var(--boxNC_gap);
}

.boxNC>* {
	width: var(--boxNC_child_w);
}

@media screen and (max-width:520px) {
	:root {
		--boxNC_w: 100%;
		--boxNC_m: 20px auto;
		--boxNC_gap: 0 20px;
		--boxNC_child_w: 100%;
	}
}

/**------------------------------ 
横並びリスト 2カラム不均等
box left right
.boxLR>.left+.right
 ------------------------------**/
:root {
	--boxLR_w: var(--base-width);
	--boxLR_m: 30px auto;
	--boxLR_gap: 10px;
	--boxLR_1_w: 30%;
	--boxLR_2_w: calc(40% - var(--boxLR_gap));
	--boxLR_3_w: calc(30% - var(--boxLR_gap));
	--boxLR_jc: flex-start;
	--boxLR_ai: stretch;
	--boxLR_fflow: wrap;
}

.boxLR {
	display: flex;
	flex-flow: var(--boxLR_fflow);
	justify-content: var(--boxLR_jc);
	align-items: var(--boxLR_ai);
	width: var(--boxLR_w);
	margin: var(--boxLR_m);

	gap: var(--boxLR_gap);
}

.boxLR>.LR1 {
	width: var(--boxLR_1_w);
}

.boxLR>.LR2 {
	width: var(--boxLR_2_w);
}

.boxLR>.LR3 {
	width: var(--boxLR_3_w);
}

@media screen and (max-width:520px) {
	:root {
		--boxLR_w: var(--base-width);
		--boxLR_m: 30px auto;
		--boxLR_gap: 10px;
		--boxLR_1_w: 100%;
		--boxLR_2_w: 100%;
		--boxLR_3_w: 100%;
		--boxLR_1_m: 0;
		--boxLR_2_m: 0;
		--boxLR_3_m: 0;
	}

	.boxLR>.LR1 {
		margin: var(--boxLR_1_m);
	}

	.boxLR>.LR2 {
		margin: var(--boxLR_2_m);
	}

	.boxLR>.LR3 {
		margin: var(--boxLR_3_m);
	}

}

/**------------------------------ 
横並びリスト 2カラム不均等 互い違い
box odd even
boxOE>li>.left+.right
 ------------------------------**/
:root {
	--boxOE_w: var(--base-width);
	--boxOE_m: 30px auto;
	--boxOE_gap: 10px;
	--boxOE_1_w: 30%;
	--boxOE_2_w: calc(50% - var(--boxOE_gap));
	--boxOE_3_w: calc(20% - var(--boxOE_gap));
}

.boxOE>* {
	display: flex;
	flex-wrap: wrap;
	width: var(--boxOE_w);
	margin: var(--boxOE_m);

	gap: var(--boxOE_gap);
}

.boxOE>*:nth-child(odd) {
	flex-direction: row;
}

.boxOE>*:nth-child(even) {
	flex-direction: row-reverse;
}

.boxOE>*>.OE1 {
	width: var(--boxOE_1_w);
}

.boxOE>*>.OE2 {
	width: var(--boxOE_2_w);
}

.boxOE>*>.OE3 {
	width: var(--boxOE_3_w);
}

@media screen and (max-width:520px) {
	:root {
		--boxOE_w: var(--base-width);
		--boxOE_m: 20px auto;
		--boxOE_gap: 10px;
		--boxOE_1_w: 100%;
		--boxOE_2_w: 100%;
		--boxOE_3_w: 100%;
	}

	.boxOE>*:nth-child(odd) {
		flex-direction: row;
	}

	.boxOE>*:nth-child(even) {
		flex-direction: row;
	}
}


/**------------------------------ 
画像なしお知らせリスト
.boxNOP>*>a>(time+.em>em+h3)
 ------------------------------**/
.boxNOP a {
	display: flex;
	align-items: center;
	gap: 30px;
}

.boxNOP a:hover h3 {
	text-decoration: underline;
}

@media screen and (max-width:520px) {
	.boxNOP a {
		flex-flow: wrap;
		gap: 10px 8px;
	}

	.boxNOP h3 {
		width: 100%;
		line-height: 1.5;
	}

}

/**================================================================================
装飾
================================================================================**/

/* -------------------------------------
カテゴリボタン
-------------------------------------*/
:root {
	--catBtn_c: var(--black);
	--catBtn_bd: var(--black);
	--catBtn_bg: var(--white);
}

.catBtn {
	display: flex;
	justify-content: center;
	margin: 25px auto;

	gap: 15px;
}

.catBtn a {
	font-weight: bold;
	position: relative;
	display: block;
	min-width: 8em;
	padding: 10px 40px 10px 20px;
	text-align: left;
	color: var(--catBtn_c);
	border: var(--catBtn_bd);
	background: var(--catBtn_bg);
}

.catBtn a:after {
	font-size: 12px;
	line-height: 1;
	top: 1.5em;
	display: inline-block;
	width: 5px;
	height: 5px;
	content: "";
	transform: rotate(45deg);
	border-top: 1px solid var(--catBtn_c);
	border-right: 1px solid var(--catBtn_c);
}

.catBtn a:hover {
	color: var(--catBtn_bg);
	border: var(--catBtn_bd);
	background: var(--catBtn_c);
}

.catBtn a:hover:after {
	border-top: 1px solid var(--catBtn_bg);
	border-right: 1px solid var(--catBtn_bg);
}

@media screen and (max-width: 520px) {
	.catBtn {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 100%;
		margin: 20px auto;

		gap: 1% 3px;
	}

	.catBtn a {
		flex: 1;
		min-width: auto;
		padding: 10px 20px 10px 10px;
		white-space: nowrap;
	}
}

/* -------------------------------------
文字装飾
-------------------------------------*/
:root {
	/**.edge**/
	--liner_c: #fff552;
	--edge_c: #555555;
	--edge2_c: #555555;
	--edge3_c: #555555;
}

/**黄色マーカー**/
b.liner {
	text-decoration: underline;
	/* 下線 */
	text-decoration-thickness: 0.5em;
	/* 線の太さ */
	text-decoration-color: var(--liner_c);
	/* 線の色 */
	text-underline-offset: -0.2em;
	/* 線の位置。テキストに重なるようにやや上部にする */
	text-decoration-skip-ink: none;
	/* 下線と文字列が重なる部分でも下線が省略されない（線が途切れない） */
}

b.liner2 {
	background: -webkit-linear-gradient(transparent 40%, var(--liner_c) 0%);
	background: linear-gradient(transparent 40%, var(--liner_c) 0%);
}

/*縁くくり*/
.edge {
	text-shadow: 1px 1px 0 var(--edge_c),
		-1px 1px 0 var(--edge_c),
		1px -1px 0 var(--edge_c),
		-1px -1px 0 var(--edge_c);
}

/*縁 2px以上*/
.edge2 {
	text-shadow: 2px 2px 1px var(--edge2_c),
		-2px 2px 1px var(--edge2_c),
		2px -2px 1px var(--edge2_c),
		-2px -2px 1px var(--edge2_c),
		2px 0 1px var(--edge2_c),
		0 2px 1px var(--edge2_c),
		-2px 0 1px var(--edge2_c),
		0 -2px 1px var(--edge2_c);
}

/*縁 枠*/
.edge3 {
	color: transparent;

	-webkit-text-stroke-width: 1px;
	-webkit-text-stroke-color: var(--edge3_c);
}

/* -------------------------------------
写真のエフェクト
-------------------------------------*/
img {
	width: auto;
	height: auto;
}

/**4辺ぼかし：親要素にかける**/
.blur_w {
	position: relative;
	display: inline-block;
}

.blur_w:after {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	content: "";
	background: rgba(255, 255, 255, 0);
	box-shadow: inset 0 0 40px #ffffff, inset 0 0 40px #ffffff, inset 0 0 40px #ffffff,
		inset 0 0 40px #ffffff;
}

/**角丸：画像に直接かけれる**/
.radius {
	border-radius: 15px;
}

/**hover：透過**/
a:hover img.hv {
	opacity: var(--opacity);
}

/**hover時画像拡大**/
.scale {
	overflow: hidden;
}

.scale img {
	-webkit-transition: -webkit-transform 0.3s linear;
	-moz-transition: -moz-transform 0.3s linear;
	-ms-transition: -ms-transform 0.3s linear;
	-o-transition: -o-transform 0.3s linear;
	transition: transform 0.3s linear;
}

a:hover .scale img {
	-webkit-transform: scale(1.2);
	-moz-transform: scale(1.2);
	-ms-transform: scale(1.2);
	-o-transform: scale(1.2);
	transform: scale(1.2);
}

/**画像トリミング：親要素にwとhを指定する**/
.ojf img {
	width: 100%;
	height: 100%;

	-o-object-fit: cover;
	object-fit: cover;
}


/**-------------------------------------
youtube
-------------------------------------**/
iframe {
	width: 100%;
}

.youtube {
	margin: 30px auto 20px;
}

.youtube iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16/9;
}

@media screen and (max-width: 520px) {
	.youtube {
		margin: 20px auto 10px;
	}
}

/* -------------------------------------
google gmap
-------------------------------------*/
/**地図**/
.gmap iframe {
	width: 100%;
	height: 480px;
}

@media screen and (max-width: 480px) {
	.gmap iframe {
		height: 45vh;
	}
}

/* -------------------------------------
PDF埋め込み src="URL末尾#view=Fit"を入れる
-------------------------------------*/
.pdf_wrap {
	width: 800px;
	height: 500px;
}

.pdf_wrap iframe {
	display: block;
	width: 100%;
	height: 100%;
	margin: 30px auto;
}

@media screen and (max-width: 520px) {
	.pdf_wrap {
		width: 90%;
		height: 60vw;
	}
}

/* -------------------------------------
吹き出し
-------------------------------------*/
:root {
	/**.balloon**/
	--balloon-c: #555555;
	--balloon-bg: #ffffff;
}

/**塗りつぶし（下）**/
.balloon1_B {
	font-size: 16px;
	position: relative;
	display: inline-block;
	min-width: 120px;
	max-width: 100%;
	margin: 1.5em 0;
	padding: 7px 10px;
	text-align: center;
	color: var(--balloon-c);
	background: var(--balloon-bg);
}

.balloon1_B:before {
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -5px;
	content: "";
	border-width: 10px 5px;
	border-style: solid;
	border-color: var(--balloon-bg) transparent transparent transparent;
}

/**塗りつぶし（上）**/
.balloon1_T {
	font-size: 16px;
	position: relative;
	display: inline-block;
	min-width: 120px;
	max-width: 100%;
	margin: 1.5em 0;
	padding: 7px 10px;
	text-align: center;
	color: var(--balloon-c);
	background: var(--balloon-bg);
}

.balloon1_T:before {
	position: absolute;
	top: -20px;
	left: 50%;
	margin-left: -5px;
	content: "";
	border-width: 10px 5px;
	border-style: solid;
	border-color: transparent transparent var(--balloon-bg) transparent;
}

/**塗りつぶし（左）**/
.balloon1_L {
	font-size: 16px;
	position: relative;
	display: inline-block;
	min-width: 120px;
	max-width: 100%;
	margin: 1.5em 0 1.5em 15px;
	padding: 7px 10px;
	text-align: center;
	color: var(--balloon-c);
	background: var(--balloon-bg);
}

.balloon1_L:before {
	position: absolute;
	top: 50%;
	left: -20px;
	margin-top: -5px;
	content: "";
	border-width: 5px 10px;
	border-style: solid;
	border-color: transparent var(--balloon-bg) transparent transparent;
}

/**塗りつぶし（右）**/
.balloon1_R {
	font-size: 16px;
	position: relative;
	display: inline-block;
	min-width: 120px;
	max-width: 100%;
	margin: 1.5em 15px 1.5em 0;
	padding: 7px 10px;
	color: var(--balloon-c);
	background: var(--balloon-bg);
}

.balloon1_R:before {
	position: absolute;
	top: 50%;
	left: 100%;
	margin-top: -5px;
	content: "";
	border-width: 5px 10px;
	border-style: solid;
	border-color: transparent transparent transparent var(--balloon-bg);
}

/**線（下）**/
.balloon2_B {
	font-size: 1.3rem;
	line-height: 1.3;
	font-weight: bold;
	position: relative;
	display: inline-block;
	min-width: 120px;
	max-width: 100%;
	margin: 1.5em 0;
	padding: 7px 10px;
	text-align: center;
	color: var(--black);
	border: solid 4px var(--balloon-c);
	background: var(--balloon-bg);
	border-radius: 20px;
}

.balloon2_B:before {
	position: absolute;
	z-index: 2;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	margin-top: -1px;
	content: "";
	border-width: 15px 10px;
	border-style: solid;
	border-color: var(--balloon-bg) transparent transparent transparent;
}

.balloon2_B:after {
	position: absolute;
	z-index: 1;
	top: calc(100% + 4px);
	left: 50%;
	transform: translateX(-50%);
	margin-top: -1px;
	content: "";
	border-width: 19px 14px;
	border-style: solid;
	border-color: var(--balloon-c) transparent transparent transparent;
}


/**================================================================================
サイト用 CSS
================================================================================**/

/**-------------------------------------
アイコン
-------------------------------------**/
.em em,
em.em {
	font-size: 0.9rem;
	display: inline-block;
	width: 100px;
	text-align: center;
	font-style: normal;
	background: rgb(var(--gray));
	color: rgb(var(--white));
	font-family: var(--eng);
}

.time {
	font-style: normal;
	font-size: 1rem;
	display: inline-block;
	white-space: nowrap;
	font-family: var(--eng);
	line-height: 1;
}

@media screen and (max-width:520px) {

	.em em,
	em.em {
		padding: 2px 5px;
		width: 80px;
	}
}

/**-------------------------------------
見出し
-------------------------------------**/
.titZ {
	height: 150px;
	display: flex;
	flex-flow: column;
	justify-content: center;
	align-items: center;
	font-family: var(--eng);
	font-size: 3rem;
	color: rgb(var(--green));
	background: rgba(var(--green2), 0.1);
	line-height: 1.3;
}

.titZ small {
	display: block;
	font-size: 0.9rem;
}

:root {
	--titAfz: 1.8em;
	--titAc: rgb(var(--green));
	--titAm: 0 0 30px;
	--titAta: left;
	--titAp: 0;
}

.titA {
	font-size: var(--titAfz);
	color: var(--titAc);
	margin: var(--titAm);
	text-align: var(--titAta);
	padding: var(--titAp);
	font-family: var(--webf);
	line-height: 1.3;
	font-family: var(--eng);
}

.titA span {
	display: block;
	font-size: 0.8em;
	margin: 5px 0;
}

:root {
	--titBfz: 1.3em;
	--titBc: var(--black);
	--titBm: 0 0 30px;
	--titBta: left;
	--titBbg: none;
	--titBls: 0;
	--titBp: 0;
	--titBlh: 1.3;
	--titBw: auto;
}

.titB {
	width: var(--titBw);
	font-size: var(--titBfz);
	color: var(--titBc);
	margin: var(--titBm);
	text-align: var(--titBta);
	background: var(--titBbg);
	padding: var(--titBp);
	letter-spacing: var(--titBls);
	position: relative;
	line-height: var(--titBlh);
	font-family: var(--webf);
}

:root {
	--titCfz: 1.6em;
	--titCc: var(--black);
	--titCm: 0 auto 30px;
	--titCta: center;
	--titCbg: none;
	--titCls: 0;
	--titCp: 0;
	--titClh: 1.3;
	--titCw: 100%;
}

.titC {
	font-family: var(--webf);
	width: var(--titCw);
	font-size: var(--titCfz);
	color: var(--titCc);
	margin: var(--titCm);
	text-align: var(--titCta);
	background: var(--titCbg);
	padding: var(--titCp);
	letter-spacing: var(--titCls);
	position: relative;
	z-index: 1;
	line-height: var(--titClh);
	font-weight: bold;
}

:root {
	--titDfz: 1.5em;
	--titDc: var(--black);
	--titDm: 0 auto 30px;
	--titDta: left;
	--titDbg: none;
	--titDls: 0;
	--titDp: 0;
	--titDlh: 1.6;
	--titDw: 100%;
}

.titD {
	font-family: var(--webf);
	width: var(--titDw);
	font-size: var(--titDfz);
	color: var(--titDc);
	margin: var(--titDm);
	text-align: var(--titDta);
	background: var(--titDbg);
	padding: var(--titDp);
	letter-spacing: var(--titDls);
	position: relative;
	z-index: 1;
	line-height: var(--titDlh);
	font-weight: bold;
}

@media screen and (max-width:520px) {
	.titZ {
		font-size: 2.5rem;
	}

	:root {
		--titAfz: 1.8em;
		--titAs-fz: 1.2rem;
		--titAm: 0 auto 20px;
	}

	:root {
		--titBfz: 1.4em;
		--titBm: 0 auto 20px;
		--titBlh: 1.5;
	}
}

/**-------------------------------------
ボタン
-------------------------------------**/
:root {
	--btnAfz: 1em;
	--btnAw: fit-content;
	--btnAc: rgb(var(--green));
	--btnAbg: none;
	--btnAbd: none;
	--btnAm: 0;
	--btnAp: 5px 15px;
	--btnAjc: flex-end;

	--btnAc_h: rgb(var(--green));
	--btnAbg_h: rgb(var(--white));
	--btnAbd_h: none;
}

.btnA {
	font-size: var(--btnAfz);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: var(--btnAjc);
	gap: 10px;
	width: var(--btnAw);
	margin: var(--btnAm);
	padding: var(--btnAp);
	cursor: pointer;
	text-align: center;
	font-family: var(--eng);
}

.btnA {
	color: var(--btnAc);
	border: var(--btnAbd);
	background: var(--btnAbg);
}

.btnA:after {
	font-family: var(--ff);
	content: "→";
	font-size: 0.8em;
	line-height: 1;
	width: 2em;
	height: 2em;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgb(var(--green));
	color: rgb(var(--white));
	border-radius: 50px;
}

.btnA:hover,
a:hover .btnA {
	color: var(--btnAc_h);
	border: var(--btnAbd_h);
	background: var(--btnAbg_h);
}


:root {
	--btnBfz: 1em;
	--btnBw: 100%;
	--btnBc: rgb(var(--black));
	--btnBbg: rgb(var(--white));
	--btnBbd: 1px solid rgba(var(--black), 0.5);
	--btnBm: 0 0 15px;
	--btnBp: 8px 1em;
	--btnBjc: space-between;
	--btnBta: left;
}

.btnB {
	position: relative;
	display: flex;
	justify-content: var(--btnBjc);
	align-items: center;
	padding: var(--btnBp);
	margin: var(--btnBm);
	width: var(--btnBw);
	border: var(--btnBbd);
	background: var(--btnBbg);
	color: var(--btnBc);
	font-family: var(--eng), var(--ff);
	font-size: var(--btnBfz);
	text-align: var(--btnBta);
}

.btnB:after {
	position: absolute;
	top: 50%;
	right: 1em;
	transform: translateY(-50%);
	content: "→";
	z-index: 5;
	font-size: 0.9rem;
}

.btnB.current,
.btnB:hover {
	border-color: rgb(var(--green));
	background: rgb(var(--green));
	color: #fff;
}

@media screen and (max-width: 520px) {
	:root {
		--btnAw: clamp(100%, 100%, 90vw);
	}
}

/**================================================== 
 テーブル
================================================== **/

/* -------------------------------------
テーブル
-------------------------------------*/
.table {}

.table table {
	width: 100%;
}

.table :is(th, td) {
	padding: 15px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid rgba(var(--blue), 0.2);
	white-space: nowrap;
}

.table th {
	width: 25%;
}

@media screen and (max-width: 520px) {

	.table :is(table, tbody, tr, th, td) {
		display: block;
	}

	.table :is(th, td) {
		padding: 10px 0;
		white-space: unset;
	}

	.table th {
		width: 100%;
		color: rgb(var(--blue));
	}
}

/**================================================================================
フォーム周り
form table
form table th .require
================================================================================**/

.page-form {
	padding: 80px var(--over-width-half) 1px;

	--boxLR_w: 100%;
	--boxLR_m: 0;
	--boxLR_gap: 0;
	--boxLR_1_w: 30%;
	--boxLR_2_w: 70%;
	--boxLR_jc: space-between;
	--boxLR_ai: flex-start;
	--boxLR_fflow: wrap;
}

.owlet-input-sample {
	color: rgba(var(--black), 0.5);
}

.-w-rules-body {
	font-size: 1rem;
}

.-w-rules-agree {
	display: flex;
	align-items: center;
	justify-content: center;
}

.-w-rules-agree label {
	width: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 10px auto;
	position: relative;
}


.-w-rules-agree .require {
	position: static;
	margin-left: 15px;
	transform: none;
}


form {
	--btnBw: 320px;
	--btnBm: 40px auto;
	--btnBta: center;
	--btnBjc: center;
	--btnBp: 1em;
	--btnBfz: 1rem;
}


/**アウレットフォーム用**/
form input.owlet-input-name-mei,
form input.owlet-input-name-sei {
	width: 10em;
	margin: 0 5px 5px;
}

form input.zip1,
form input.zip2,
form input.zip3 {
	width: 5em;
	margin: 0 5px 5px;
}

form input.zip2addr {
	height: 2.4em;
	padding: 0 15px;
	border-radius: 4px;
	border: none;
	box-shadow: 0 0 0 1px #ccc inset;
	margin: 0 5px 5px;
	background: rgba(var(--black), 0.1);
}

form input.address1 {
  display: block;
	width: 100%;
}

form input.owlet-input-tel1,
form input.owlet-input-tel2,
form input.owlet-input-tel3 {
	width: 5em;
	margin: 0 5px 5px;
}

/**必須**/
.require {
	font-size: 0.8rem;
	font-weight: bold;
	line-height: 2em;
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	display: inline-block;
	width: 3em;
	height: 2em;
	text-align: center;
	color: #ffffff;
	border-radius: 3px;
	background: #cc0000;
}

@media screen and (max-width:520px) {
	.page-form {
		padding: 40px var(--over-width-half);

		--boxLR_w: 100%;
		--boxLR_m: 0;
		--boxLR_gap: 15px;
		--boxLR_1_w: 100%;
		--boxLR_2_w: 100%;
	}

	.-w-rules-agree label {
		width: 100%;
	}

	form input.owlet-input-name-mei,
	form input.owlet-input-name-sei {
		width: 7em;
		margin: 0 5px 5px;
	}

	form input.zip1,
	form input.zip2,
	form input.zip3 {
		width: 5em;
		margin: 0 0px 5px;
	}

	form input.zip2addr {
		height: 2.4em;
		padding: 0 15px;
		border-radius: 4px;
		border: none;
		box-shadow: 0 0 0 1px #ccc inset;
		margin: 0 5px 5px;
		background: rgba(var(--black), 0.1);
	}

	form input.address1 {
		width: 100%;
	}

	form {
		--btnBw: 100%;
		--btnBm: 10px auto;
	}
}


.form {
	font-family: var(--webf);
	font-size: 1.2rem;
}

.form table {
	font-family: var(--ff);
	font-size: 1rem;
	width: 100%;
	margin: 30px auto;
	display: block;
}

.form table :is(tbody, tr, th, td) {
	display: block;
	width: 100%;
}

.form table :is(th, td) {
	padding: 15px 20px;
	font-weight: normal;
	background: rgb(var(--blue2), 0.5);
	vertical-align: middle;
	border-bottom: 5px solid rgb(var(--white));
}

.form table th {
	position: relative;
	font-weight: bold;
	background: rgba(var(--green2), 0.1);
}

form {
	--btnAfz: 1.2em;
	--btnAw: 300px;
	--btnAc: rgb(var(--blue));
	--btnAbg: none;
	--btnAbd: 1px solid rgb(var(--blue));
	--btnAm: 40px auto;
	--btnAp: 15px 30px;
	--btnAjc: center;

	--btnAc_h: rgb(var(--white));
	--btnAbg_h: rgb(var(--blue));
	--btnAbd_h: 1px solid rgb(var(--blue));
}

@media screen and (max-width:520px) {

	.form table,
	.form tbody,
	.form tr {
		display: block;
		width: 100%;
	}

	.form table :is(th, td) {
		display: block;
		width: 100%;
		padding: 15px;
	}
}

/**================================================== 
header

読み込み時=.white付与。
スクロールすると.white消える。
================================================== **/
header {
	position: fixed;
	top: 0;
	left: 0;
	display: grid;
	grid-template-rows: auto;
	grid-template-columns: 1fr auto auto;
	flex-flow: wrap;
	width: 100%;
	z-index: 100;
	background: rgb(var(--white));
	padding: 0 0 0 30px;
	font-family: var(--eng);
	min-width: var(--base-width);
}

header .logo img {
	width: 210px;
	height: auto;
	margin: 15px 0;
}

header nav {
	flex: 1;
}

.hamburger,
#hamburger-check {
	display: none;
}

header nav .gnav {
	width: 100%;
	height: 100%;
	z-index: 80;
	transition: all 0.5s;
	/*アニメーション設定*/
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 32px;
	padding: 0 40px 0 20px;
}

header nav .gnav a:hover {
	color: rgb(var(--green));
}

header .menu1 {
	display: flex;
	justify-content: flex-end;
	gap: 15px;
}

header .menu1 a {
	display: flex;
	align-items: center;
	justify-content: center;
}

header .menu1 a svg {
	width: 28px;
	height: 28px;
	fill: rgb(var(--gray));
}

header .menu1 a:hover svg {
	fill: rgb(var(--green));
}

header .menu1 .h-toi {
	gap: 5px;
	background: rgb(var(--green));
	color: rgb(var(--white));
	padding: 0 40px;
}

header .menu1 .h-toi svg {
	width: 17px;
	height: 12px;
	fill: rgb(var(--white));
}



@media screen and (max-width: 520px) {
	header {
		justify-content: flex-start;
		height: var(--header-height);
		padding: 0 0 0 10px;
		position: absolute;
	}

	header .logo {}

	header .logo img {
		width: 150px;
		margin: 8px 0 0;
	}

	header .menu1 {
		position: absolute;
		bottom: auto;
		top: 0;
		left: auto;
		right: 50px;
		width: 100px;
		gap: 15px;
		justify-content: center;
	}

	header .menu1 a {
		padding: 13px 0;
	}

	header .menu1 a svg {
		width: 24px;
		height: 24px;
	}

	header .menu1 .h-toi {
		display: none;
	}

	/**------------------------------ 
ハンバーガーjqueryなし
 ------------------------------**/
	.hamburger {
		position: fixed;
		top: 0;
		right: 0;
		display: flex;
		height: 50px;
		width: 50px;
		justify-content: center;
		align-items: center;
		z-index: 90;
		background: rgb(var(--green));
	}

	#hamburger-check {
		display: none;
	}

	/**タップされる前 open**/
	.hamburger span,
	.hamburger span:before,
	.hamburger span:after {
		content: '';
		display: block;
		height: 3px;
		width: 25px;
		border-radius: 3px;
		background-color: #ffffff;
		position: absolute;
	}

	.hamburger span:before {
		bottom: 8px;
	}

	.hamburger span:after {
		top: 8px;
	}

	/**タップされたとき close**/
	#hamburger-check:checked~.hamburger span {
		background-color: rgba(255, 255, 255, 0);
	}

	#hamburger-check:checked~.hamburger span::before {
		bottom: 0;
		transform: rotate(45deg);
	}

	#hamburger-check:checked~.hamburger span::after {
		top: 0;
		transform: rotate(-45deg);
	}

	/**================================================== 
	 グローバルナビ
	================================================== **/
	header nav .gnav {
		width: 100%;
		height: 100%;
		position: fixed;
		top: 0;
		left: 100%;
		/*leftの値を変更してメニューを画面外へ*/
		z-index: 80;
		background-color: rgb(var(--green));
		color: rgb(var(--white));
		transition: all 0.5s;
		/*アニメーション設定*/

		font-size: 1.2em;
		flex-flow: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 25px;
		padding: 70px 40px 20px;
		margin: 0;
	}

	#hamburger-check:checked~.gnav {
		left: 0;
		/*メニューを画面内へ*/
	}

}

/**================================================== 
 footer
================================================== **/
footer {
	padding: 100px var(--over-width-half) 280px;
	position: relative;
	text-align: center;
	
	--btnAm:0 auto;
}

footer:before {
	content: "";
	display: block;
	height: 518px;
	background: url(/common/images/fotter_bg.webp) no-repeat center top / cover;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: -1;
}

footer .logo img {
	width: 270px;
}

footer p {
	line-height: 2;
	font-size: 0.9em;
	margin: 45px auto;
}

footer p a {
	text-decoration: none;
}

footer nav {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 60px;
	font-family: var(--eng);
	font-size: 1.1em;
}

footer nav a:hover {
	color: rgb(var(--green));
}

footer .sns {
	margin: 40px auto;
	font-size: 0.9em;
}

footer .sns a {
	display: inline-block;
	margin: 10px 5px;
}

footer .sns svg {
	width: 28px;
	height: 28px;
	fill: rgb(var(--black));
}

footer .sns a:hover svg {
	fill: rgb(var(--green));
}

footer .copyright {
	font-size: 0.75em;
	text-align: center;
	width: 100%;
	margin: 50px 0;
}

@media screen and (max-width:520px) {
	footer p {
		margin: 30px auto;
	}

	footer nav {
		flex-flow: column;
		gap: 0;
		border-top: 1px dotted rgb(var(--black));
	}

	footer nav a {
		font-size: 1.2em;
		display: block;
		width: 100%;
		padding: 8px 0;
		border-bottom: 1px dotted rgb(var(--black));
	}

	footer nav a:hover {
		color: rgb(var(--green));
	}
}


.f_fix {
	display: none;
}

.f_fix svg {
	width: 17px;
	height: 21px;
	fill: rgb(var(--white));
}

.f_fix a {
	flex-flow: wrap;
	padding: 5px 0;
	flex: 1;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1em;
	line-height: 1;
	gap: 2px 5px;
}

.f_fix .h-toi {
	flex: none;
	width: 55%;
	border-left: 1px solid rgb(var(--white));
	font-size: 0.9em;
}

.f_fix .h-tel {
	font-size: 1.2em;
}

.f_fix .h-tel small {
	width: 100%;
	font-size: 0.55em;
	line-height: 1.2;
}


@media screen and (max-width:520px) {
	.f_fix {
		display: flex;
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		z-index: 50;
		background: rgb(var(--green));
		color: rgb(var(--white));
	}
}

/**================================================== 
 問い合わせ
================================================== **/
.aside {
	background: rgb(var(--green));
	color: rgb(var(--white));
	display: grid;
	grid-template-columns: 1fr 340px;
	grid-template-rows: auto auto;
	padding: 80px var(--over-width-half);

	--titBm: auto 0 30px;
}

.aside .eng {
	font-family: var(--eng);
	font-size: 4.1em;
	line-height: 1;
}

.aside svg {
	width: 17px;
	height: 21px;
	fill: rgb(var(--white));
}

.aside address {
	grid-column: 2/3;
	grid-row: 1/3;
}

.aside address a {
	width: 100%;
	border: 1px solid rgb(var(--white));
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 15px 0;
	gap: 8px;
}

.aside address .h-tel {
	font-size: 1.25em;
}

.aside address a:hover {
	background: rgb(var(--white));
	color: rgb(var(--green));
}

.aside address a:hover svg {
	fill: rgb(var(--green));
}

.aside address p {
	font-size: 0.85em;
	text-align: center;
	margin: 10px 0 30px;
}

@media screen and (max-width:520px) {
	.aside {
		display: block;
		padding: 40px var(--over-width-half);

		--titBfz: 1.1em;
		--titBm: auto 0 15px;
	}

	.aside .eng {
		font-size: 3.4em;
		line-height: 1.3;
		margin: 0 0 15px;
	}

	.aside address a {
		font-size: 1.1em;
	}

	.aside address .h-tel {
		gap: 8px;
		font-size: 1.4em;
	}
}

/**================================================== 
 スライド
================================================== **/
/*// SPだけスライド*/
.swiper1 {
	position: relative;
}

.swiper1 .swiper-pagination {
	position: static;
}

.swiper1 .swiper-pagination-bullet-active {
	background: rgb(var(--black));
}

:is(.swiper1, .swiper2) :is(.swiper-button-next, .swiper-button-prev) {
	position: static;
	margin: 0;
	height: 2em;
	top: auto;
	left: auto;
	bottom: auto;
	right: auto;
}

:is(.swiper1, .swiper2) :is(.swiper-button-next, .swiper-button-prev):after {
	font-family: var(--ff);
	content: "→";
	font-size: 0.8rem;
	line-height: 1;
	width: 2em;
	height: 2em;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgb(var(--green));
	color: rgb(var(--white));
	border-radius: 50px;
}

:is(.swiper1, .swiper2) :is(.swiper-button-prev):after {
	content: "←";
}

.swiper1 .swiper-btn {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

/**window 251より大きい場合**/
@media screen and (min-width:521px) {
	.swiper1 .swiper-btn {
		display: none;
	}

	.swiper1 .swiper-wrapper {
		display: block;
	}

	.swiper1 .swiper-slide {}
}


/**================================================== 
 TOP
================================================== **/
.hero {
	position: relative;
}

.hero .swiper-slide {
	aspect-ratio: 2/1;
	width: 100%;
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	position: relative;
}

.hero .swiper-slide img {
	width: 100%;
	height: auto;
}

.hero .swiper li {
	position: relative;
}

.hero .swiper li a {
	display: block;
	cursor: pointer;
}

@media screen and (max-width:520px) {
  .hero .swiper-slide {
  	aspect-ratio: 375/567;
  }
}

@media screen and (min-width:1401px) {
  .hero .swiper-slide {
  	aspect-ratio: 18/7;
  }
}

/**------------------------------ 
TOP01
 ------------------------------**/
.top-01 {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 90px 60px 1px;
}

.top-01 .text {
	width: 580px;
	text-align: center;
}

.top-01 h1 {
	font-family: var(--webf);
	color: rgb(var(--blue));
	font-size: 1.6em;
	margin: 0 0 60px;
}

.top-01 p {
	line-height: 2.7;
}

.top-01 p+p {
	margin-top: 50px;
}

.top-01 :is(.imgL, .imgR) {
	display: flex;
	flex-flow: column;
	gap: 30px;
}

.top-01 .imgL .img01 {
	margin-right: 40px;
}

.top-01 .imgL .img02 {
	text-align: right;
}

.top-01 .imgR .img03 {
	padding-left: 100px;
}

.top-01 .imgR .img04 {}


@media screen and (max-width:520px) {
	.top-01 {
		position: relative;
		display: flex;
		justify-content: space-between;
		align-items: center;
		flex-flow: wrap;
		padding: 30px 5% 1px;
	}

	.top-01 .text {
		width: 100%;
	}

	.top-01 h1 {
		font-size: 1.4em;
		margin: 0 0 20px;
	}

	.top-01 p {
		line-height: 2;
		font-size: 1rem;
	}

	.top-01 p+p {
		margin-top: 20px;
	}

	.top-01 .imgL {
		order: 2;
		width: 47%;
	}

	.top-01 .imgR {
		order: 3;
		width: 50%;
	}

	.top-01 :is(.imgL, .imgR) {
		gap: 10px;
		margin: 30px 0 0;
	}

	.top-01 :is(.imgL, .imgR) :is(.img01, .img02, .img03, .img04) {
		margin: auto;
		padding: 0;
		text-align: left;
	}

	.top-01 .imgL .img01 {}

	.top-01 .imgL .img02 {
		width: 50%;
	}

	.top-01 .imgR .img03 {}

	.top-01 .imgR .img04 {
		width: 80%;
		margin-left: -20px;
	}

}

/**------------------------------ 
TOP02
 ------------------------------**/
.top02 {}


.wrap-waku {
	padding: 90px var(--over-width-half) 1px;
}

.wrap-waku h2 {
	font-family: var(--eng);
	font-size: 2.5em;
	line-height: 1.05;
	font-weight: normal;
	margin: 0 0 0 15px;
}

.waku-inner {
	border: 1px solid rgba(var(--gray), 0.5);
	padding: 50px;

	--boxLR_w: 100%;
	--boxLR_m: 0;
	--boxLR_gap: 0;
	--boxLR_1_w: calc(100% - 395px);
	--boxLR_2_w: 395px;
	--boxLR_jc: space-between;
	--boxLR_ai: center;
	--boxLR_fflow: wrap;

	--titBm: 0 0 15px;
}

.waku-inner p {
	font-size: 0.9em;
	line-height: 2;
}

@media screen and (max-width:520px) {
	.wrap-waku {
		padding: 80px var(--over-width-half) 1px;
	}

	.wrap-waku h2 {
		font-size: 2em;
		margin: 0 0 0 10px;
	}

	.waku-inner {
		padding: 15px;

		--boxLR_w: 100%;
		--boxLR_m: 0;
		--boxLR_gap: 15px;
		--boxLR_1_w: 100%;
		--boxLR_2_w: 100%;

		--titBm: 15px 0 15px;
	}

	.waku-inner p {
		font-size: 1rem;
		line-height: 2;
	}
}

.top-03 {
	padding: 100px var(--over-width-half) 1px;
}

.list-news {
	border-top: 1px dotted rgb(var(--gray));
}

.list-news li {
	border-bottom: 1px dotted rgb(var(--gray));
	padding: 20px 0;
}

.list-news2 {
	--boxNC_w: 100%;
	--boxNC_m: 80px auto 0;
	--boxNC_gap: 100px 5%;
	--boxNC_child_w: calc(85% / 4);
}

.list-news2 a {
	display: flex;
	flex-flow: column;
	height: 100%;
}

.list-news2 picture {
	width: 100%;
	display: block;
	aspect-ratio: var(--asp768);
	position: relative;
}

.list-news2 picture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.list-news2 h3 {
	font-family: var(--eng), var(--webf);
	font-size: 1.1em;
	line-height: 1.5;
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	gap: 10px;
}

.list-news2 h3:after {
	flex: none;
	font-family: var(--ff);
	content: "→";
	font-size: 0.6em;
	line-height: 1;
	width: 2em;
	height: 2em;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgb(var(--gray));
	color: rgb(var(--white));
	border-radius: 50px;
}

.list-news2 p {
	font-size: 0.9em;
	line-height: 1.8;
}


.list-news2 .cate {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 10px 0 0;
}

.list-news2 .cate .em{
  margin-left: 1px;
}

.list-news2 time{
  margin-right: 5px;
}

.flex-tit {
	display: flex;
	justify-content: space-between;
	margin: 0 0 20px;

	--titAm: 0;
	--btnAw: fit-content;
	--btnAm: 0;
}

@media screen and (max-width:520px) {
	.top-03 {
		padding: 80px var(--over-width-half) 1px;
	}

	.list-news li {
		border-bottom: 1px dotted rgb(var(--gray));
		padding: 15px 0;
	}

	.list-news2 {
		--boxNC_w: 100%;
		--boxNC_m: 40px auto 0;
		--boxNC_gap: 50px 5%;
		--boxNC_child_w: calc(95% / 2);
	}

	.list-news2 .cate {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		margin: auto 0 0;
		padding: 10px 0 0;
	}
}

.top-04 {
	padding: 180px var(--over-width-half) 100px;
}

.wrap-LR {
	--boxLR_w: 100%;
	--boxLR_m: 0 0 100px;
	--boxLR_gap: 0;
	--boxLR_1_w: 30%;
	--boxLR_2_w: 70%;
	--boxLR_jc: space-between;
	--boxLR_ai: flex-start;
	--boxLR_fflow: wrap;

	--btnAm: 15px 0 0 auto;
}

.list-products {
	--boxNC_w: 100%;
	--boxNC_m: 0;
	--boxNC_gap: 100px 5%;
	--boxNC_child_w: calc(90% / 3);
}

.list-products2 {
	--boxNC_w: 100%;
	--boxNC_m: 0;
	--boxNC_gap: 100px 5%;
	--boxNC_child_w: calc(90% / 3);
}

.list-products2 li[data-neme="sold out"] {
	opacity: 0.5;
}

.list-products2 li[data-neme="sold out"] picture:after {
	content: "sold out";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-family: var(--eng);
	font-size: 1.1em;
	opacity: 1;
	z-index: 5;
}

:is(.list-products, .list-products2) a {
	display: flex;
	flex-flow: column;
	height: 100%;
}

:is(.list-products, .list-products2) picture {
	width: 100%;
	display: block;
	aspect-ratio: var(--asp768);
	position: relative;
}

:is(.list-products, .list-products2) picture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

:is(.list-products, .list-products2) h3 {
	font-family: var(--eng), var(--webf);
	font-size: 1.5em;
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 0;
	gap: 10px;
}

:is(.list-products, .list-products2) h3:after {
	flex: none;
	font-family: var(--ff);
	content: "→";
	font-size: 0.6em;
	line-height: 1;
	width: 2em;
	height: 2em;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgb(var(--green));
	color: rgb(var(--white));
	border-radius: 50px;
}

:is(.list-products, .list-products2) p {
	font-size: 0.9em;
	line-height: 1.8;
}

.list-products2 table {
	font-size: 0.8em;
	font-weight: normal;
	margin: -15px 0 5px;
}

.list-products2 table th {
	padding: 0 10px 0 0;
	white-space: nowrap;
	font-weight: normal;
}


.list-products2 h3 {
	font-size: 1.1em;
	line-height: 1.5;
}

:is(.list-products, .list-products2) :is(.em em, em.em) {
	background: rgb(var(--green));
	padding: 0 10px;
	width: fit-content;
}

:is(.list-products, .list-products2) .em {
	margin-top: auto;
}

@media screen and (max-width:520px) {
	.top-04 {
		padding: 90px var(--over-width-half) 40px;
	}

	.wrap-LR {
		--boxLR_w: 100%;
		--boxLR_m: 0 0 20px;
		--boxLR_gap: 0;
		--boxLR_1_w: 100%;
		--boxLR_1_m: 0 0 15px;
		--boxLR_2_w: 100%;

		--btnAm: 5px 0 0 auto;
	}

	:is(.list-products, .list-products2) {
		--boxNC_w: 100%;
		--boxNC_m: 0;
		--boxNC_gap: 20px 5%;
		--boxNC_child_w: calc(95% / 2);
	}

	:is(.list-products, .list-products2) h3 {
		font-size: 1.1rem;
		padding: 5px 0;
		gap: 5px;
		line-height: 1.3;
	}

	:is(.list-products, .list-products2) p {
		font-size: 0.8em;
	}

	.list-products2 table {
		margin: 0 0 5px;
	}

	.list-products2 table th {
		padding: 0 5px 0 0;
	}
}

.top-05 {
	padding: 100px var(--over-width-half) 1px;

	--boxLR_w: 100%;
	--boxLR_m: 0;
	--boxLR_gap: 90px;
	--boxLR_1_w: calc(100% - 90px - 480px);
	--boxLR_2_w: 480px;
	--boxLR_jc: space-between;
	--boxLR_ai: center;
	--boxLR_fflow: wrap;
}

.top-05 figure {
	margin: 0 0 70px;
	width: 190px;
}

.top-05 p {
	font-size: 0.9em;
	line-height: 2;
}

@media screen and (max-width:520px) {
	.top-05 {
		padding: 70px var(--over-width-half) 1px;

		--boxLR_w: 100%;
		--boxLR_m: 0;
		--boxLR_gap: 25px;
		--boxLR_1_w: 100%;
		--boxLR_2_w: 100%;
	}

	.top-05 figure {
		margin: 0 0 40px;
		width: 160px;
	}

	.top-05 p {
		font-size: 1em;
		line-height: 2;
	}
}


.top-06 {
	padding: 160px var(--over-width-half);
}

.list-about picture {
	display: block;
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}

.list-about picture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.list-about>div {
	width: 100%;
	aspect-ratio: 1100/395;
	position: relative;
	counter-increment: number;
	margin: 0 0 30px;
}

.list-about>div:nth-child(even) dl {
	margin-left: auto;
}

.list-about dl {
	width: 450px;
	height: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	justify-content: center;
	background: rgba(var(--green2), 0.5);
	color: rgb(var(--white));
	padding: 0 50px;
}

.list-about dl:before {
	font-family: var(--eng);
	font-size: 2.5em;
	display: block;
	text-align: center;
	content: counter(number, decimal-leading-zero);
	margin: 0 auto 20px;
}

.list-about dl dd {
	font-size: 0.9em;
}

@media screen and (max-width:520px) {
	.top-06 {
		padding: 80px var(--over-width-half);
		--titAm: 0 0 20px;
	}

	.list-about>div {
		aspect-ratio: 320/514;
		margin: 0;
		padding: 170px 0 0;
	}

	.list-about>div:nth-child(even) dl {
		margin: 0;
	}

	.list-about dl {
		width: 100%;
		padding: 30px 20px 0;
		justify-content: flex-start;
	}

	.list-about dl:before {
		margin: 0 auto 15px;
	}

	.list-about dl dd {
		font-size: 1em;
	}
}

.top-07 {
	background-repeat: no-repeat;
	background-size: cover;
	background-position: top center;
	padding: 80px var(--over-width-half);
}

.list-works {
	--boxNC_w: 100%;
	--boxNC_m: 0;
	--boxNC_gap: 100px 5%;
	--boxNC_child_w: calc(90% / 3);
}

.list-works li {
	background: rgb(var(--white));
}

.list-works li a {
	display: flex;
	flex-flow: column;
	height: 100%;
}

.list-works picture {
	width: 100%;
	display: block;
	aspect-ratio: var(--asp768);
}

.list-works picture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.list-works h3 {
	flex-grow: 1;
	font-family: var(--webf);
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 10px 20px 20px;
	line-height: 1.3;
	gap: 20px;
}

.list-works h3:after {
	flex: none;
	font-family: var(--ff);
	content: "→";
	font-size: 0.8em;
	line-height: 1;
	width: 2em;
	height: 2em;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgb(var(--green));
	color: rgb(var(--white));
	border-radius: 50px;
}

@media screen and (max-width:520px) {
	.top-07 {
		padding: 50px var(--over-width-half);
	}

	.list-works {
		--boxNC_w: 100%;
		--boxNC_m: 30px 0 0;
		--boxNC_gap: 30px;
		--boxNC_child_w: 100%;
	}
}


.top-08 {
	padding: 80px var(--over-width-half) 1px;
}

.toggle {
	display: none;
}

.list-faq {}

.list-faq li {
	border: 1px solid rgb(var(--gray), 0.5);
	margin: 0 0 20px;
	padding: 10px 25px;
}

.q,
.a {
	padding: 1em 40px;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: translateZ(0);
	transition: all 0.3s;
}

.q:before,
.a:before {
	font-size: 1.5rem;
	position: absolute;
	left: 0;
	font-family: var(--eng);
}

.q {
	/*タイトル*/
	margin: 0 auto;
	font-family: var(--webf);
	display: block;
	position: relative;
}

.q:before {
	content: "Q";
	top: 50%;
	transform: translateY(-50%);
	color: rgb(var(--green));
}

.q::after {
	content: "＋";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 20px;
}

.a {
	height: 0;
	padding: 0 40px;
	overflow: hidden;
	font-size: 0.9em;
}

.a:before {
	content: "A";
	top: 0;
}

.toggle:checked+.q+.a {
	/*開閉時*/
	height: auto;
	padding: 0.5em 40px 1em;
	transition: all .3s;
}

.toggle:checked+.q::after {
	content: "－";
}

@media screen and (max-width:768px) {
	.top-08 {
		padding: 50px var(--over-width-half) 1px;
	}

	.list-faq li {
		border: 1px solid rgb(var(--gray), 0.5);
		margin: 0 0 20px;
		padding: 5px 15px;
	}

	.q,
	.a {
		padding: 0.5em 10px 0.5em 1.5em;
	}

	.q:before,
	.a:before {
		font-size: 1.3rem;
		top: 5px;
		transform: none;
	}

	.a:before {
		top: 0;
	}

	.q {
		font-size: 1rem;
		line-height: 1.5;
	}

	.q::after {
		right: 0;
	}

	.a {
		padding: 0 10px 0 30px;
	}

	.toggle:checked+.q+.a {
		padding: 5px 10px 1em 30px;
	}
}

.shop-map {
	padding: 100px var(--over-width-half) 1px;
	display: grid;
	grid-template-rows: 230px 230px;
	grid-template-columns: 320px auto;
	gap: 20px 30px;
}

.shop-map .map {
	grid-column: 2/3;
	grid-row: 1/3;
}

.shop-map .map iframe {
	width: 100%;
	height: 100%;
}

@media screen and (max-width:520px) {
	.shop-map {
		padding: 50px var(--over-width-half) 1px;
		display: flex;
		flex-flow: column;
		gap: 20px;
	}

	.shop-map .map {
		aspect-ratio: 1/1.2;
	}

}


/**================================================== 
 商品一覧/詳細
================================================== **/
:is(.page-list, .page-detail, .products-detail) {
	padding: 80px var(--over-width-half) 1px;
}

@media screen and (max-width:520px) {
	:is(.page-list, .page-detail, .products-detail) {
		padding: 40px var(--over-width-half) 1px;
	}
}


/* -------------------------------------
商品一覧
-------------------------------------*/
:is(.itemBtn, .itemBtn2) {
	display: flex;
	width: 100%;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 2px;
}

:is(.itemBtn, .itemBtn2) a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	text-align: center;
	padding: 8px 0.5em;
	width: calc((100% - (2px * 3)) / 4);
	border: 1px solid rgba(var(--black), 0.5);
	background: #fff;
	color: rgb(var(--black));
	font-family: var(--eng);
	position: relative;
}

:is(.itemBtn, .itemBtn2) a:after {
	position: absolute;
	top: 50%;
	right: 0.2em;
	transform: translateY(-50%);
	content: "→";
	z-index: 5;
	font-size: 0.9rem;
}

.itemBtn{
  margin-bottom: 80px;
}

.itemBtn a.current,
.itemBtn a:hover {
	border-color: rgb(var(--green));
	background: rgb(var(--green));
	color: #fff;
}

.itemBtn2 a.current,
.itemBtn2 a:hover {
	border-color: rgb(var(--gray));
	background: rgb(var(--gray));
	color: #fff;
}

@media screen and (max-width:520px) {
	:is(.itemBtn, .itemBtn2) {
		display: flex;
		width: 100%;
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 2px;
	}

	:is(.itemBtn, .itemBtn2) a {
		width: calc((100% - 2px) / 2);
		font-size: 1.1em;
	}
}

.cate-products {
	--boxLR_w: 100%;
	--boxLR_m: 1px auto 100px;
	--boxLR_gap: 40px;
	--boxLR_1_w: 40%;
	--boxLR_2_w: calc(60% - var(--boxLR_gap));
	--boxLR_jc: flex-start;
	--boxLR_ai: center;
	--boxLR_fflow: wrap;
}

.cate-products picture {
	display: block;
	aspect-ratio: var(--asp768);
}

.cate-products picture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cate-products h2 {
	font-family: var(--eng);
	font-size: 1.5em;
	position: relative;
	padding: 0 0 15px;
}

.cate-products p {
	font-size: 0.9em;
	line-height: 2;
}

@media screen and (max-width:520px) {
	.cate-products {
		--boxLR_w: 100%;
		--boxLR_m: 50px auto;
		--boxLR_gap: 20px;
		--boxLR_1_w: 115%;
		--boxLR_2_w: 100%;

	}

	.cate-products picture.LR1 {
		margin-right: calc(50% - 50vw);
		margin-left: calc(50% - 50vw);
	}

	.cate-products h2 {
		padding: 0 0 10px;
	}

	.cate-products p {
		font-size: 1em;
	}
}

/**================================================== 
商品詳細
================================================== **/
.products-detail {
	--boxLR_w: 100%;
	--boxLR_m: 0;
	--boxLR_gap: 50px;
	--boxLR_1_w: 50%;
	--boxLR_2_w: calc(50% - var(--boxLR_gap));
	--boxLR_jc: space-between;
	--boxLR_ai: flex-start;
	--boxLR_fflow: wrap;

	--titBfz: 2em;
}

.products-detail .em {
	background: rgb(var(--green));
}

.products-detail em[data-name="sold out"] {
	background: #000;
	color: rgb(var(--white));
	margin: 0 0 0 5px;
}

.products-detail .boxLR {
	align-items: flex-start;
}

@media screen and (max-width:520px) {
	.products-detail {
		--boxLR_gap: 10px;
		--boxLR_1_w: 100%;
		--boxLR_2_w: 100%;

		--titBfz: 1.5em;
	}
}

/* -------------------------------------
商品ギャラリー
-------------------------------------*/
.products-detail figcaption {
	font-size: 0.8em;
	line-height: 1.5;
	margin: 8px 0;
}

.products-detail .swiper2 {
	position: relative;
	width: 100%;
}

.products-detail .swiper2 :is(.active, .thumbnail) {
	overflow: hidden;
}

.products-detail .swiper2 img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: var(--asp768);
	object-fit: contain;
}

.products-detail .swiper2 :is(.active, .active img) {
	width: 100%;
}

.products-detail .swiper2 .active {
	margin: 0 0 15px;
}

.products-detail .swiper2 .thumbnail .swiper-slide-thumb-active {
	background: rgb(var(--green));
}

.products-detail .swiper2 .thumbnail .swiper-slide-thumb-active img {
	border: 3px solid rgb(var(--green));
}

.swiper2 :is(.swiper-button-prev, .swiper-button-next) {
	position: absolute;
	bottom: 35px;
	z-index: 5;
}

.swiper2 .swiper-button-prev {
	left: -2.5%;
}

.swiper2 .swiper-button-next {
	right: -2.5%;
}

@media screen and (max-width: 768px) {
	.products-detail .swiper {
		margin: 0 0 30px;
	}

	.products-detail .swiper .swiper-act-prev:before,
	.products-detail .swiper .swiper-act-next:before {
		top: 40vw;
		bottom: auto;
		background: none;
	}
}

/* -------------------------------------
商品情報
-------------------------------------*/
.products-detail .detail-info {
	--titBfz: 1.5rem;
	--titBm: 0 0 15px;
}

.products-detail .detail-info .price {
	font-weight: bold;
	font-size: 22px;
}

.products-detail .detail-info .price small {
	font-weight: normal;
	font-size: 13px;
}

.products-detail .detail-info p {
	font-size: 14px;
}

.products-detail .detail-info .soldout {
	border: 2px solid rgb(var(--black));
	padding: 15px;
	margin: 30px 0;
}

.products-detail .bg-gray {
	padding: 25px 25px 10px;
	margin: 30px auto;
	background: rgba(var(--gray), 0.1);

	--titBfz: 1.2rem;
}

.products-detail table {
	margin: 15px 0;
	font-size: 0.9rem;
}

.products-detail table th {
	font-weight: normal;
	padding-right: 5px;
}

.products-detail .product table {
	border: 1px solid #ddd;
	font-size: 14px;
	margin: 15px 0;
}

.products-detail .product table td,
.products-detail .product table th {
	padding: 5px;
	border: 1px solid #ddd;
	font-weight: normal;
	color: rgb(var(--gray));
}

.products-detail .product table tr>*:first-child {
	width: 23%;
	min-width: 6em;
}

@media screen and (max-width: 520px) {
	.products-detail .detail-info {
		padding: 0;
	}

	.products-detail .bg-gray {
		padding: 20px 15px 10px;
	}

	.products-detail .richtext {
		margin: 0px auto 30px;
		width: 100%;
	}

	.products-detail .catBtn2 a {
		width: 100%;
	}
}

.page-recm{
  padding:80px var(--over-width-half) 1px;
  
  --titBta:center;
  --titBm:0 0 15px;
  --btnAw:100%;
  --btnAm:15px auto;
}

.page-recm .list-products2 {
    --boxNC_m: 20px auto 0;
}

.page-recm .list-news2 {
    --boxNC_m: 20px auto 0;
}

@media screen and (max-width: 520px) {
  .page-recm{
  padding:40px var(--over-width-half) 1px;
  
  --titBta:left;
  --btnAw:90vw;
  }
}/*layout:5*/