
.-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;
}
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;
}

@charset "utf-8";
/* CSS Document */

/* -------------------------------------
BASE
-------------------------------------*/

/** ================================================================================
		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;
	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.5s;
	transition: 0.5s;
}

a:hover img {
	opacity: 0.9;
}

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;
	border-bottom: 1px dashed rgb(var(--blue));
}

.note {
	display: block;
	padding-left: 1em;
	text-indent: -1em;
}

figure img,
picture img {
	max-width: 100%;
}

@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 .mb60 {
	margin-bottom: 60px;
}

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 .mt60 {
	margin-top: 60px;
}

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 .mt60 {
		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%;
	}
}

/**------------------------------ 
RANKMATH パンくず
 ------------------------------**/
.rank-math-breadcrumb {
	width: var(--base-width);
	margin: 15px auto;
	font-size: 0.8em;
}

@media screen and (max-width:520px) {
	.rank-math-breadcrumb {
		width: 90%;
	}
}


/**================================================== 
 フォーム
================================================== **/

input,
textarea,
select,
button {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	font-size: 100%;
}

form {
	--alert: rgb(var(--green));
}

/**エラー**/
.alert {
	margin: 5px 0;
	color: var(--alert);
}

form input[type="text"],
form input[type="email"],
form textarea,
form select {
	height: auto;
	width: 100%;
	padding: 10px 15px;
	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;
	font-size: 1rem;
}

form input::placeholder {
	color: #ddd;
}

form select {
	width: fit-content;
}

form input[type="text"]:focus,
form textarea:focus,
form select:focus {
	outline: 0;
	box-shadow: 0 0 0 2px var(--alert) 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 !important;
	accent-color: var(--alert);
}[data-lib="14"]{
	border: none;
    font-size: inherit;
    outline: none;
    padding: 0;
	cursor:pointer;
}/*widget:3814a386-94c4-46a6-b696-12ca3699d3bf*/
/*widget:5e5cc7bb-7531-4684-a761-1a30443a057f*/
/*instance:318*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:32086115-5ed6-45ef-bcca-23b91065efb5*/
/*widget:333095a4-74a3-4f32-bec6-383f085a91f8*/
/*widget:6265140c-7103-411c-8909-edf139182d61*/
/*widget:c9b0bf0a-871c-4b2b-8284-4f1a9ce1a16f*/
/*instance:30*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:31*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:d7f9fa4c-ad12-43ef-abf2-7c6dae4b194a*/
/*instance:33*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:35*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:37*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:39*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:3a4d9e2d-d7c7-4f67-aa06-88c3b52c47c3*/
/*widget:2b24bcdb-fb4e-4a9c-9e2b-008eacf103d3*/
/*instance:48*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:8f210826-3507-4b2a-9d9c-c30e5c28d265*/
/*instance:50*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:f0152263-a3be-4dfe-a972-a16f4e9b3f96*/
/*instance:52*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:a51f6c2e-c37f-40e8-97e8-d38957ed7616*/
/*instance:61*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:62*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:19402861-9c95-4d4e-bb99-c1be3f9dedde*/
/*instance:79*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:70*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:80*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:f24f2731-ecca-4917-8335-3a3f80d78b3a*/
/*widget:30c760ec-1492-48a8-8652-045606a985cd*/
/*instance:84*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:92*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:93*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:94*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:95*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:96*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:98*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:ff2a9328-a835-44b1-8c64-a241099cd5d1*/
/*instance:110*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:7b666c60-4acf-4665-a892-8ac8961b8d5b*/
/*widget:8f3ab305-b7bf-4f2d-a398-88c544516cf4*/
/*instance:283*//*instance mediea*/@media screen and (max-width: 520px){}/*widget:1b53312a-1db4-4391-8b81-d7295b9d71ab*/
/*instance:289*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:296*//*instance mediea*/@media screen and (max-width: 520px){}/*instance:298*//*instance mediea*/@media screen and (max-width: 520px){}/*layout:1*//*layout:3*/@charset "utf-8";
/* CSS Document */

/*-------------------------------------
基本装飾 -サイトにより変更-
-------------------------------------*/

:root {
	--base-width: 1100px;
	--over-width-half: calc((100vw - var(--base-width)) / 2);
	--ff: "Noto Sans JP", sans-serif;
	--header-height: 80px;

	--black: #323232;
	--black_rgb: 0, 0, 0;
	--white: #ffffff;

	--color_type1: #787878;
	--color_type2: #8c8c8c;
	--color_type3: #cccccc;
	--color_type4: #eeeeee;

	--grad1: linear-gradient(to bottom, #949494 0%, var(--white) 100%);

	/**.fw-b.fw-bb*/
	--fw-b: 700;
	--fw-bb: 900;
	/**.pagenation**/
	--pgn-c: #555555;
	--pgn-bg: #ffffff;
	/**#breadcrumb**/
	--bread-c: #555555;
	--bread-bg: #ffffff;
}

@media screen and (max-width:520px) {
	:root {
		--base-width: 90%;
		--over-width-half: 5%;
		--header-height: 52px;
	}
}

body {
	font-family: var(--ff);
	min-width: var(--base-width);
	padding-top: var(--header-height);
	background: var(--white);
}

img {
	width: auto;
	height: auto;
	border-radius: 5px;
}

/**================================================================================
レイアウト
================================================================================**/

/**------------------------------ 
セクション
 ------------------------------**/
.sec-base-width {
	padding-left: var(--over-width-half);
	padding-right: var(--over-width-half);
}

/**================================================================================
装飾
================================================================================**/

/* -------------------------------------
カテゴリボタン
-------------------------------------*/
:root {
	--catBtn_c: var(--white);
	--catBtn_bd: 1px solid var(--color_type2);
	--catBtn_bg: var(--color_type2);
}

.catBtn {
	display: flex;
	justify-content: center;
	margin: 60px auto;
	font-family: var(--webf);

	gap: 10px;
}

.catBtn a {
	flex: 1;
	position: relative;
	font-size: 0.9rem;
	line-height: 1.3;
	padding: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: var(--catBtn_c);
	border: var(--catBtn_bd);
	background: var(--catBtn_bg);
}

.catBtn a[data-name="すべて"]{
  flex: none;
  width: 100px;
}

.catBtn a[data-name*="新卒"]{
  background: var(--black);
}

@media screen and (max-width: 520px) {
	.catBtn {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 100%;
		margin: 20px auto;

		gap: 8px;
	}

	.catBtn a {
		flex: 1;
		min-width: auto;
		padding: 5px;
		white-space: nowrap;
		font-size: 1rem;
	}
}

/* -------------------------------------
文字装飾
-------------------------------------*/
: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);
}

/* -------------------------------------
写真のエフェクト
-------------------------------------*/
/**4辺ぼかし：親要素にかける**/
.blur_type1 {
	position: relative;
	display: inline-block;
}

.blur_type1: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 var(--color_type1), inset 0 0 40px var(--color_type1), inset 0 0 40px var(--color_type1),
		inset 0 0 40px var(--color_type1);
}

/**角丸：画像に直接かけれる**/
.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.1);
	-moz-transform: scale(1.1);
	-ms-transform: scale(1.1);
	-o-transform: scale(1.1);
	transform: scale(1.1);
}

/**画像トリミング：親要素にwとhを指定する**/
.ojf img {
	width: 100%;
	height: 100%;

	-o-object-fit: cover;
	object-fit: cover;
}

.aspA {
	aspect-ratio: 1/0.667;
}

.aspA img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/**-------------------------------------
youtube
-------------------------------------**/
iframe {
	width: 100%;
}

.youtube {
	margin: 30px auto 20px;
	border: 5px solid var(--black);
}

.youtube iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16/9;
}

.youtube video {
	width: 100%;
	height: auto;
	display: block;
}

@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;
	}
}


/**================================================================================
サイト用 CSS
================================================================================**/

/**-------------------------------------
アイコン
-------------------------------------**/
.em em,
em.em {
	font-size: 0.9rem;
	width:fit-content;
	display: inline-block;
	padding: 3px 10px;
	text-align: center;
	font-style: normal;
	background: var(--color_type2);
	color: var(--white);
	font-weight: bold;
	margin:0 3px 3px 0;
}

.time {
	font-style: normal;
	font-size: 1rem;
	display: inline-block;
}

.icon {
	display: block;
	font-size: 1.75rem;
	font-style: normal;
	font-family: var(--webf);
	background: var(--color_type2);
	color: var(--white);
	padding: 1px 15px;
	width: fit-content;
	line-height: 1.3;
}

@media screen and (max-width:520px) {

	.em em,
	em.em {
		font-size: 0.8rem;
		padding: 2px 5px;
	}

	.icon {
		font-size: 1.6rem;
		padding: 8px 20px;
		line-height: 1;
	}
}


/**------------------------------ 
ページタイトル
 ------------------------------**/
.pageTitle {
	background: url(/common/images/top_bg03.webp) no-repeat center / cover;
	color: var(--white);
	padding: 80px 5%;
	text-align: center;
	font-weight: bold;
	font-size: 3rem;
	line-height: 1.5;
}

.pageTitle img {
	display: block;
	margin: 0 auto;
}

.pageTitle em {
	font-style: normal;
	margin: 20px auto 0;
	display: block;
	font-size: 1.3rem;
	line-height: 1.4;
}

@media screen and (max-width:520px) {
	.pageTitle {
		padding: 40px 5% 40px;
		font-size: 1.5rem;
	}

	.pageTitle em {
		font-size: 1rem;
	}
}

/**-------------------------------------
見出し
-------------------------------------**/

:root {
	--titAc: var(--black);
	--titAd: block;
	--titAta: left;
	--titAfz: 2.3rem;
	--titAm: 0 0 20px;
	--titAp: 0;
	--titAlh: 1.4;

	--titAfz_i: 1.3rem;
	--titAc_i: var(--color_type2);
}

.titA {
	display: var(--titAd);
	text-align: var(--titAta);
	flex-flow: var(--titAff);
	font-size: var(--titAfz);
	color: var(--titAc);
	margin: var(--titAm);
	padding: var(--titAp);
	font-family: var(--ff);
	line-height: var(--titAlh);
	font-weight: 900;
}

.titA i {
	display: block;
	color: var(--titAc_i);
	font-size: var(--titAfz_i);
	font-family: var(--webf);
	font-weight: normal;
	font-style: italic;
	line-height: 1;
	margin-bottom: 20px;
}

:root {
	--titBfz: 1.75rem;
	--titBc: var(--color_type2);
	--titBm: 0 0 30px;
	--titBta: left;
	--titBbg: none;
	--titBp: 0;
}

.titB {
	font-size: var(--titBfz);
	color: var(--titBc);
	margin: var(--titBm);
	text-align: var(--titBta);
	background: var(--titBbg);
	padding: var(--titBp);
	font-weight: bold;
	position: relative;
	z-index: 1;
	line-height: 1.3;
}


:root {
	--titCd: flex;
	--titCff: row;
	--titCjc: flex-start;
	--titCai: center;
	--titCta: left;
	--titCgap: 15px;
	--titCfz: 1.75rem;
	--titCc: var(--black);
	--titCm: 0 0 20px;
	--titCbg: none;
	--titCp: 5px;
	--titClh: 1.3;
	--titCw: auto;

	--titCbg_a: var(--color_type2);
}

.titC {
	display: var(--titCd);
	flex-flow: var(--titCff);
	justify-content: var(--titCjc);
	align-items: var(--titCai);
	text-align: var(--titCta);
	gap: var(--titCgap);
	width: var(--titCw);
	font-size: var(--titCfz);
	color: var(--titCc);
	margin: var(--titCm);
	background: var(--titCbg);
	padding: var(--titCp);
	position: relative;
	line-height: var(--titClh);
	font-weight: bold;
}

.titC:after {
	content: "";
	display: block;
	flex: 1;
	width: 100%;
	height: 1px;
	background: var(--titCbg_a);
}

:root {
	--titDd: flex;
	--titDff: column;
	--titDjc: flex-start;
	--titDai: flex-start;
	--titDta: left;
	--titDgap: 10px;
	--titDfz: 1.2rem;
	--titDc: var(--black);
	--titDm: 60px 0 20px;
	--titDbg: none;
	--titDp: 5px;
	--titDlh: 1.3;
	--titDw: auto;

	--titDbg_a: var(--color_type2);
}

.titD {
	display: var(--titDd);
	flex-flow: var(--titDff);
	justify-content: var(--titDjc);
	align-items: var(--titDai);
	text-align: var(--titDta);
	gap: var(--titDgap);
	width: var(--titDw);
	font-size: var(--titDfz);
	color: var(--titDc);
	margin: var(--titDm);
	background: var(--titDbg);
	padding: var(--titDp);
	position: relative;
	line-height: var(--titDlh);
	font-weight: bold;
}

.titD:after {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	background: var(--titDbg_a);
}


@media screen and (max-width:520px) {
	:root {
		--titAfz: 1.5rem;
		--titAm: 0 0 20px;
		--titAfz_i: 1.15rem;

		--titCfz: 1.25rem;
	}

	.titA i {
		margin-bottom: 5px;
	}
}


/**-------------------------------------
ボタン
-------------------------------------**/
.btn-cv {
	display: flex;
	flex-flow: column;
	align-items: center;
	text-align: center;
}

:root {
	--btnAfz: 1.3rem;
	--btnAw: min(100%, 360px);
	--btnAm: 20px auto;
}

.btnA ,.submit{
	font-size: var(--btnAfz);
	width: var(--btnAw);
	margin: var(--btnAm);
	color: var(--black);
	background: var(--white);

	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 25px 30px;
	cursor: pointer;
	border-radius: 10px;
	font-weight: bold;
}

.btnA:after,.submit:after {
	--sizes: 30px;
	content: "→";
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1;
	font-size: 0.7rem;
	width: var(--sizes);
	height: var(--sizes);
	background: var(--color_type1);
	border-radius: 50px;
	color: var(--white);
	position: absolute;
	top: 50%;
	right: 15px;
	transform: translateY(-50%);
}

.btnA:hover,
a:hover .btnA,
,.submit:hover{
	background-color: var(--color_type3);
	-webkit-transition: 0.5s;
	transition: 0.5s;
}


@media screen and (max-width: 520px) {
	:root {
		--btnAfz: 1rem;
		--btnAw: clamp(100%, 100%, 90vw);
	}


}

/**================================================== 
 テーブル
================================================== **/

/* -------------------------------------
テーブル
-------------------------------------*/
.table {}

.table img {
	max-width: 80%;
	height: auto;
}

.table table {
	width: 100%;
	border-top: 1px solid var(--color_type1);
	background: var(--white);
}

.table :is(th, td) {
	padding: 15px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--color_type1);
}

.table th {
	white-space: nowrap;
	width: 20%;
	color: var(--color_type1);
	font-weight: bold;
	font-size: 1.1rem;
}

.table th:before {
	content: "- ";
}

@media screen and (max-width: 520px) {

	.table :is(table, tbody, tr, th, td) {
		display: block;
	}

	.table :is(th, td) {
		padding: 10px;
		white-space: unset;
	}

	.table th {
		width: 100%;
		color: var(--color_type1);
		font-size: 1rem;
	}
}


/**================================================== 
header
================================================== **/
header {
	--bd: 6px;
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	justify-content: space-between;
	width: max(100%, var(--base-width));
	background: var(--white);
	z-index: 15;
	border-top: var(--bd) solid var(--color_type2);
}

header .logo a {
	padding: 20px;
	display: flex;
	align-items: center;
	gap: 20px;
	font-size: 0.8rem;
	line-height: 1.3;
}

header .logo svg {
	fill: var(--color_type2);
	width: 200px;
	height: 30px;
}

header .menu {
	display: flex;
}

header :is(.h-base, .h-entry) {
	background: var(--color_type2);
	color: var(--white);
	width: 240px;
	height: calc(var(--header-height) - var(--bd));
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
}

header .h-entry {
	background: var(--black);
}

@media screen and (max-width: 520px) {
	header {
		--bd: 3px;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		z-index: 100;
		display: block;
	}

	header .logo a {
		padding: 10px 5px;
		gap: 10px;
		font-size: 0.7rem;
	}

	header .logo svg {
		width: 130px;
		height: 20px;
	}

	header .menu {
		position: fixed;
		display: flex;
		bottom: 0;
		left: 0;
		width: 100%;
	}

	header :is(.h-base, .h-entry) {
		flex: 1;
		position: relative;
	}

	header :is(.h-base, .h-entry):after {
		--sizes: 30px;
		content: "→";
		display: flex;
		justify-content: center;
		align-items: center;
		line-height: 1;
		font-size: 0.7rem;
		width: var(--sizes);
		height: var(--sizes);
		background: var(--white);
		border-radius: 50px;
		color: var(--color_type1);
		position: absolute;
		top: 50%;
		right: 5px;
		transform: translateY(-50%);
	}

}


/**================================================== 
 footer
================================================== **/
footer {
	padding: 100px var(--over-width-half) 0;
	background: var(--color_type2);
	color: var(--white);

	display: grid;
	grid-template-rows: auto auto auto auto auto;
	grid-template-columns: 1fr auto;
	grid-template-areas:
		"logo nav"
		"p nav"
		"p2 nav"
		"img nav"
		"copy copy ";
	gap: 20px 200px;
}

footer .logo {
	grid-area: logo;
	width: 350px;
	font-style: italic;
}

footer .logo svg {
	fill: var(--white);
	width: 350px;
	height: 55px;
}

footer .logo span {
	display: block;
}

footer p {
	grid-area: p;
}

footer p+p {
	grid-area: p2;
}

footer p a {
	text-decoration: none;
}

footer p a img {
	vertical-align: middle;
	line-height: 1;
}

footer picture {
	grid-area: img;
}

footer nav {
	grid-area: nav;
	padding-right: 40px;
	column-count: 2;
	column-gap: 50px;
}

footer nav a {
	break-inside: avoid;
	display: block;
	margin: 0 0 25px;
	font-size: 0.8rem;
	line-height: 1.5;
}

footer nav a i {
	display: block;
	font-size: 1.3rem;
	font-weight: bold;
}

.copyright {
	grid-area: copy;
	border-top: 1px solid var(--white);
	padding: 15px 0 40px;
	display: flex;
	justify-content: space-between;
}

.copyright a {
	display: flex;
	align-items: center;
	gap: 10px;
}

.copyright a svg {
	fill: var(--white);
	width: 1.3em;
	height: 1.3em;
}

.copyright p {
	font-size: 0.8rem;
}

@media screen and (max-width:520px) {
	footer {
		padding: 50px var(--over-width-half) 30px;
		display: block;
	}

	footer .logo {
		width: 80%;
		margin: 0 auto 30px;
		text-align: center;
	}

	footer .logo svg {
		fill: var(--white);
		width: 200px;
		height: 30px;
	}

	footer p {
		font-size: 0.9rem;
		text-align: center;
	}

	footer picture {
		display: block;
		width: 60%;
		text-align: center;
		margin: 20px auto;
	}

	footer nav {
		display: none;
	}

	.copyright {
		flex-flow: column;
		justify-content: center;
		align-items: center;
		text-align: center;
	}

	.copyright a {
		display: flex;
		align-items: center;
		gap: 10px;
	}

	.copyright a svg {
		fill: var(--white);
		width: 1.3em;
		height: 1.3em;
	}

	.copyright p {
		font-size: 0.8rem;
	}

}

/**================================================== 
 
aside
================================================== **/
.aside {
	background: url(/common/images/top_bg03.webp) no-repeat center / cover;
	color: var(--white);
	padding: 100px var(--over-width-half) 80px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 150px;

	--btnAw: 100%;
}

.aside dt i {
	display: block;
	font-size: 150px;
	color: transparent;
	-webkit-text-stroke: 0.5px var(--white);
	text-stroke: 1px var(--white);
	line-height: 1;
	margin: -0.2em 0 40px;
}

.aside dt {
	font-size: 1.75rem;
	font-weight: bold;
}

.aside p span {
	display: block;
	font-size: 1.1rem;
	font-weight: bold;
}

.aside p a {
	font-size: 1.4em;
	text-decoration: none;
}


.aside dd a {
	width: fit-content;
	display: block;
	margin: 10px 0 0;
	border: 1px solid var(--white);
	padding: 1px 15px;
	display: flex;
	align-items: center;
	gap: 10px;
	border-radius: 3px;
}

.aside dd a:before {
	content: "≫ ";
	font-size: 0.8rem;
}

.aside dd a:hover {
	background: var(--white);
	color: var(--black);
}

.aside .btn-cv {
	flex: 1;
}

@media screen and (max-width:520px) {
	.aside {
		padding: 30px var(--over-width-half);
		flex-flow: column;
		gap: 15px;
	}

	.aside dt i {
		font-size: 60px;
		margin: 0 0 10px;
	}

	.aside dt {
		font-size: 1.25rem;
		font-weight: bold;
		margin: 0 0 10px;
	}

	.aside .btn-cv {
		width: 100%;
	}
}

/**================================================== 
 pagenation
================================================== **/

/* -------------------------------------
ページャー
-------------------------------------*/
.pagenation {
	margin: 60px auto;
	text-align: center;
}

.pagenation span {
	display: inline-block;
	margin: 5px;
	width: 40px;
	height: 40px;
	text-align: center;
	line-height: 38px;
}

.pagenation span.page:hover,
.pagenation span.page.current {
	background: var(--black);
	color: var(--white);
}

.pagenation span a {
	display: block;
	width: 100%;
	height: 100%;
}

@media screen and (max-width: 768px) {
	.pagenation span {
		margin: 3px;
		width: 30px;
		height: 30px;
		line-height: 27px;
	}
}


/**================================================== 
slide 
#infinite-loop
================================================== **/
.infinite-loop {
	width: 100%;
	overflow: hidden;
}

.infinite-loop .swiper-wrapper {
	transition-timing-function: linear;
}

.infinite-loop img {
	width: 100%;
	height: auto;
}

@media screen and (max-width:520px) {
	.infinite-loop+.infinite-loop {
		margin-top: 5px;
	}
}

/**================================================== 
 TOP
================================================== **/
.hero {
	padding: 30px 0;
	position: relative;
}

.hero .text {
	position: relative;
	width: var(--base-width);
	margin: 0 auto;
	transform: translateY(-94px);
	z-index: 1;
	display: grid;
	grid-template-rows: 1fr auto;
	grid-template-columns: 870px 1fr;
	grid-template-areas: "img h"
		"img p";
	align-items: end;
	gap: 10px 26px;
}

.hero .text img {
	grid-area: img;
}

.hero .text h2 {
	grid-area: h;
	font-style: italic;
	font-size: 1.5rem;
	line-height: 1.3;
	font-weight: bold;
}

.hero .text p {
	grid-area: p;
	font-size: 0.9rem;
}

@media screen and (max-width:520px) {
	.hero {
		padding: 15px 0;
		position: relative;
	}

	.hero .text {
		transform: translateY(-35px);
		grid-template-rows: auto auto auto;
		grid-template-columns: 100%;
		grid-template-areas: "img "
			"h"
			"p";
		gap: 10px 26px;
	}

	.hero .text h2 {
		font-size: 1.3rem;
	}
}

/**------------------------------ 
about
 ------------------------------**/
.page-about {
	padding-left: var(--over-width-half);
	width: 100%;
	display: grid;
	grid-template-rows: auto 1fr;
	grid-template-columns: 550px 1fr;
	grid-template-areas: "h img"
		"p img";
	gap: 15px 80px;

	--titAm: 25px 0;
}

.page-about h2 {
	grid-area: h;
}

.page-about p {
	grid-area: p;
	line-height: 2;
}

.page-about .imgwrap {
	width: 100%;
	height: 650px;
	grid-area: img;
	position: relative;
}

.page-about .imgwrap img {
	box-shadow: 15px 15px 20px rgba(var(--black_rgb), 0.2);
}

.page-about .imgwrap figure {
	position: absolute;
}

.page-about .imgwrap .img01 {
	top: 0;
	left: 8%;
	z-index: 2;
}

.page-about .imgwrap .img02 {
	top: 143px;
	left: 42%;
	z-index: 3;
}

.page-about .imgwrap .img03 {
	left: 0;
	bottom: 67px;
	z-index: 4;
}

.page-about .imgwrap .img04 {
	right: 5%;
	bottom: 17px;
	z-index: -1;
}

@media screen and (max-width:520px) {
	.page-about {
		padding-left: var(--over-width-half);
		padding-right: var(--over-width-half);
		width: 100%;
		display: grid;
		grid-template-rows: auto auto auto;
		grid-template-columns: 100%;
		grid-template-areas: "h"
			"p"
			"img";
		gap: 15px;

		--titAm: 0;
	}

	.page-about .imgwrap {
		width: 100%;
		height: 90vw;
		margin: 20px 0 0;
	}

	.page-about .imgwrap img {
		box-shadow: 8px 8px 8px rgba(var(--black_rgb), 0.15);
	}

	.page-about .imgwrap .img01 {
		width: 45%;
	}

	.page-about .imgwrap .img02 {
		width: 45%;
		top: 15vw;
		left: auto;
		right: 5%;
	}

	.page-about .imgwrap .img03 {
		width: 45%;
		bottom: 10vw;
	}

	.page-about .imgwrap .img04 {
		width: 40%;
		right: 2%;
		bottom: 5vw;
	}
}

/**------------------------------ 
company
 ------------------------------**/
.page-company {
	padding-top: 100px;
}

.list-company {
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
}

.list-company>* {
	width: 43%;
}

.list-company h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color_type2);
	font-size: 1.1rem;
	gap: 10px;
	margin: 0 0 15px;
}

.list-company h2 img {
	width: auto;
	height: 30px;
}

.list-company picture {
	display: flex;
	margin: 0 0 10px;
}

.list-company p {
	margin: 5px 0 0;
}

.waku-company {
	display: flex;
	align-items: center;
	gap: 70px;
	border: 1px solid var(--color_type2);
	padding: 30px;
	margin: 50px 0 0;
}

.waku-company picture {
	flex: none;
	width: 450px;
	line-height: 0;
}

@media screen and (max-width:520px) {
	.page-company {
		padding-top: 50px;
	}

	.list-company {
		flex-flow: column;
		gap: 35px;
	}

	.list-company>* {
		width: 100%;
	}

	.waku-company {
		display: flex;
		align-items: center;
		flex-flow: column;
		gap: 15px;
		padding: 15px;
		margin: 30px 0 0;
	}

	.waku-company picture {
		width: 100%;
	}
}

/**------------------------------ 
page-brand
 ------------------------------**/
.page-brand {
	--titAta: center;
}

.page-brand .ttl-p {
	padding-top: 200px;
	padding-bottom: 250px;
	text-align: center;
	background: url(/common/images/top_bg01.webp) no-repeat center bottom;
}

.list-brand {
	margin: 60px auto 150px;
	width: var(--base-width);
	display: flex;
	flex-flow: wrap;
	font-weight: bold;
	gap: 40px;
}

.list-brand>* {
	width: 340px;
}

.list-brand img {
	width: 100%;
	margin: 0 0 5px;
}

.list-brand p {
	font-weight: normal;
	font-size: 0.9rem;
}

@media screen and (max-width:520px) {
	.page-brand .ttl-p {
		padding: 40px 5% 40vw;
		text-align: left;
		background-size: 160% auto;
	}

	.list-brand {
		margin: 20px auto 40px;
		display: flex;
		flex-flow: wrap;
		font-weight: bold;
		gap: 15px;
	}

	.list-brand>* {
		width: calc((100% - 15px * 1) / 2);
	}

	.list-brand img {
		width: 100%;
	}
}

/**------------------------------ 
page-data
 ------------------------------**/
.page-data {
	background: url(/common/images/top_bg02.webp) no-repeat top right,
		var(--grad1);
	padding-top: 100px;
	padding-bottom: 100px;

	--titAc: var(--white);
	--titAc_i: var(--white);
	--titAm: 0 0 90px;

	--titCc: var(--white);
	--titCbg_a: var(--white);
}


.list-data {
	display: flex;
	flex-flow: wrap;
	gap: 40px;
}

.list-data>* {
	width: calc((100% - 40px * 2) / 3);
	background: var(--white);
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 8px 8px 8px rgba(var(--black_rgb), 0.2);
}

.list-data dt {
	background: var(--color_type4);
	padding: 15px;
	text-align: center;
	font-weight: bold;
}

.list-data img {
	font-weight: bold;
}

@media screen and (max-width:520px) {
	.page-data {
		padding-top: 40px;
		padding-bottom: 40px;

		--titAm: 0 0 40px;

		--titCm: 40px 0 20px;
	}

	.list-data {
		display: flex;
		flex-flow: wrap;
		gap: 15px;
	}

	.list-data>* {
		width: calc((100% - 15px * 1) /2);
		box-shadow: 4px 4px 4px rgba(var(--black_rgb), 0.2);
	}

	.list-data dt {
		line-height: 1.3;
		min-height: 72px;
	}

	.list-data img {
		font-weight: bold;
	}
}

/**------------------------------ 
page-voice
 ------------------------------**/
.page-voice {
	padding-top: 100px;
	padding-bottom: 100px;
	column-count: 2;
	column-gap: 80px;
}

.voice {
	display: block;
	break-inside: avoid;
	padding-top: 100px;
	position: relative;
}

.voice:after {
	--sizes: 30px;
	content: "→";
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1;
	font-size: 0.7rem;
	width: var(--sizes);
	height: var(--sizes);
	background: var(--color_type3);
	border-radius: 50px;
	color: var(--white);
	position: absolute;
	bottom: 30px;
	right: 15px;
}

.voice picture {
	display: block;
	margin: 0 0 10px;
}

.voice em {
	font-style: normal;
}

.voice h3 {
	font-size: 1.25rem;
	font-weight: 900;
	line-height: 1.1;
}

@media screen and (max-width:520px) {
	.page-voice {
		display: flex;
		flex-flow: column;
		padding-top: 40px;
		padding-bottom: 50px;
		column-gap: 30px;
	}

	.page-voice h2 {
		order: 1;
	}

	.page-voice p {
		order: 2;
	}

	.voice:nth-child(3) {
		order: 3;
	}

	.voice:nth-child(4) {
		order: 5;
	}

	.voice:nth-child(5) {
		order: 4;
	}

	.voice:nth-child(6) {
		order: 6;
	}

	.voice {
		padding-top: 30px;
	}
}

/**------------------------------ 
page-env
 ------------------------------**/
.page-env {
	background: url(/common/images/top_bg04.webp) repeat top center;
	padding-top: 100px;
	padding-bottom: 50px;

	--titAta: center;
}

.page-env .ttl-p {
	text-align: center;
}

.list-env {
	display: flex;
	flex-flow: wrap;
	gap: 80px;
	margin: 70px auto;
}

.list-env>* {
	width: calc((100% - 80px * 1) / 2);
}

.list-env img {
	width: 100%;
	height: auto;
}

.list-env h3 {
	font-weight: bold;
	font-size: 1.3rem;
	padding: 10px 0 5px;
}

@media screen and (max-width:520px) {

	.page-env {
		padding-top: 40px;
		padding-bottom: 50px;

		--titAta: center;
	}

	.page-env .ttl-p {
		text-align: left;
	}

	.list-env {
		gap: 30px;
		margin: 40px auto 0;
	}

	.list-env>* {
		width: 100%;
	}

	.list-env h3 {
		font-size: 1.2rem;
	}
}


/**------------------------------ 
page-result
 ------------------------------**/
.page-result {
	padding-top: 100px;
}

.nin table {
	width: 100%;
}

.nin :is(th, td) {
	border: 1px solid var(--color_type2);
	padding: 3px 10px;
}

.nin th {
	background: var(--color_type4);
	vertical-align: middle;
	font-weight: normal;
}

.nin tr:first-child th {
	background: var(--color_type3);
	text-align: center;
}

.nin td {
	text-align: center;
}

.nin :is(th, td):empty {
	height: 2rem;
}

@media screen and (max-width:520px) {
	.page-result {
		padding-top: 40px;
	}

	.nin {
		width: 100%;
		overflow-x: scroll;
		padding: 1px;
	}

	.nin table {
		width: 520px;
		font-size: 0.8rem;
	}

	.nin :is(th, td) {
		padding: 3px;
	}
}

/**------------------------------ 
page-faq
 ------------------------------**/
.page-faq {
	padding-top: 100px;
	padding-bottom: 100px;
}

.list-faq>* {
	background: var(--color_type4);
	border-radius: 10px;
	margin: 0 0 10px;
}

@media screen and (max-width:520px) {
	.page-faq {
		padding-top: 50px;
		padding-bottom: 50px;
	}

}

/**================================================== 
	 トグル動作
	================================================== **/

.toggle {
	display: none;
}

.q,
.a {
	padding: 1em 85px;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: translateZ(0);
	transition: all 0.3s;
}

.q:before,
.a:before {
	--size: 40px;
	width: var(--size);
	height: var(--size);
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.2rem;
	position: absolute;
	left: 30px;
	background: var(--color_type2);
	color: var(--white);
	border-radius: 50px;
}

.q {
	/*タイトル*/
	margin: 0 auto;
	display: block;
	position: relative;
	font-size: 1.1rem;
	font-weight: bold;
}

.q:before {
	content: "Q";
	top: 50%;
	transform: translateY(-50%);
}

.q::after {
	/*タイトル横の矢印*/
	content: "＋";
	font-size: 1.2rem;
	color: var();
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
}

.a {
	height: 0;
	padding: 0 85px;
	overflow: hidden;
}

.a:before {
	font-family: var(--webf);
	content: "A";
	top: 0.5em;
	background: var(--white);
	color: var(--color_type2);
}

.toggle:checked+.q+.a {
	/*開閉時*/
	height: auto;
	padding: 1em 85px;
	transition: all .3s;
}

.toggle:checked+.q::after {
	content: "－";

}

@media screen and (max-width:768px) {

	.q,
	.a {
		padding: 1em 25px 1em 50px;
	}

	.q:before,
	.a:before {
		--size: 30px;
		font-size: 1rem;
		left: 10px;
	}

	.a:before {
		top: 0;
	}

	.q {
		font-size: 0.9rem;
		line-height: 1.5;
	}

	.q::after {
		right: 10px;
		font-size: 0.8rem;
	}

	.a {
		padding: 0 25px 0 50px;
		font-size: 0.85rem;
	}

	.toggle:checked+.q+.a {
		padding: 0 25px 1em 50px;
	}
}

/**------------------------------ 
 ------------------------------**/
.page-archive {
	padding-bottom: 100px;
	--titAta: center;
}

.list-archive {
	display: flex;
	flex-flow: wrap;
	gap: 30px 40px;
}

.list-archive>* {
	width: calc((100% - 40px * 1) /2);
	border: 1px solid var(--color_type2);
	border-radius: 5px;
	padding: 20px;
}

.list-archive h3 {
	font-weight: bold;
	margin: 10px 0;
	font-size: 1.3rem;
	line-height: 1.3;
}

.list-archive p {
	line-height: 1.5;
	font-size: 1.1rem;
}

@media screen and (max-width:520px) {
	.page-archive {
		padding-bottom: 50px;
		--titAta: center;
	}

	.list-archive {
		gap: 20px;
	}

	.list-archive>* {
		width: 100%;
		padding: 15px;
	}

	.list-archive h3 {
		font-size: 1.25rem;
	}
}


/**------------------------------ 
 ------------------------------**/
.page-outlinks{
	padding-bottom: 100px;
	--titAta: center;
}

.list-outlinks{
  display: flex;
  justify-content: center;
  flex-flow: wrap;
  gap: 15px 30px;
  
  --btnAm:20px 0;
}

.list-outlinks .btnA{
  background:var(--black);
  color: var(--white);
}

.list-outlinks .btnA::after{
  background: var(--white);
  color: var(--black);
}

.list-outlinks img{
  border-radius: 0;
}

@media screen and (max-width:520px) {
  .page-outlinks{
  	padding-bottom: 50px;
  	--titAta: center;
  }
}