
/* || -------------------- wrap */

div.wrap {
	width: 100%;
	max-width: 960px;
	background-color: #fff;
	padding: 40px 0 40px 0;
	margin: 0 auto 0 auto;
}
@media screen and (max-width: 960px) {
	div.wrap {
		padding: 30px 20px 40px 20px;
	}
}
@media screen and (max-width: 768px) {
	div.wrap {
		padding: 30px 20px 30px 20px;
	}
}

/* || -------------------- container */

div.container {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	width: 100%;
	max-width: 890px;
	margin: 0 auto 0 auto;
}

/* || -------------------- h1 */

div.midashi {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	width: 100%;
	max-width: 960px;
	min-height: 70px;
	background-image: url("../images/page-bg_other.png");
	background-repeat: no-repeat;
	margin: 0 auto 0 auto;
}
body.business div.midashi,
body.environment div.midashi {
	background-image: url("../images/page-bg_business.png");
	background-repeat: no-repeat;
}
body.company div.midashi {
	background-image: url("../images/page-bg_company.png");
	background-repeat: no-repeat;
}
body.recruit div.midashi {
	background-image: url("../images/page-bg_recruit.png");
	background-repeat: no-repeat;
}
body.contact div.midashi {
	background-image: url("../images/page-bg_contact.png");
	background-repeat: no-repeat;
}

div.midashi div {
	position: relative;
	width: 100%;
	max-width: 210px;
	background-color: #3189E1;
}
body.privacy div.midashi div {
	max-width: 310px;
}

div.midashi div:after {
	content: "";
	position: absolute;
	top: -1px;
	right: -42px;
	display: block;
	width: 42px;
	height: 43px;
	clip-path: polygon(0 0, 0% 100%, 66% 0);
	background-color: #3189E1;
}

div.midashi div h1 ,
div.midashi div p {
	color: #fff;
	font-weight: 500;
	font-size: 1.75em;
	letter-spacing: 8px;
	text-align: center;
	padding: 0 0 6px 34px;
}
body.contact div.midashi div h1 ,
body.contact div.midashi div p {
	letter-spacing: 0.005em;
}
body.privacy div.midashi div h1 ,
body.privacy div.midashi div p {
	letter-spacing: -0.05em;
}
body.environment div.midashi div h1 {
	letter-spacing: -0.06em;
	padding: 0 0 6px 16px;
}
body.sitemap div.midashi div h1 {
	letter-spacing: -0.05em;
}

div.midashi span {
	width: calc(100% - 210px);
	color: #1C55A7;
	font-family: "Shippori Mincho", serif;
	font-size: 1.2em;
  font-weight: 400;
	padding: 10px 20px 2px 40px;
	text-decoration: underline;
}

@media screen and (max-width: 768px) {
	div.midashi {
		min-height: unset;
		padding: 14px;
	}
	div.midashi div {
		margin: 0 auto 0 auto;
	}
	div.midashi div:after {
		display: none;
	}
	div.midashi div h1 ,
	div.midashi div p {
		font-size: 1.4em;
		letter-spacing: 6px;
		padding: 2px 0 6px 0;
	}
	body.environment div.midashi div h1 {
		padding: 2px 0 6px 0;
	}
	div.midashi span {
		display: none;
	}
}

/* || -------------------- h2 */

h2 ,
div.child h1 {
	position: relative;
	width: 100%;
	font-size: 1.3em;
	padding: 0 0 6px 0;
	margin: 0 0 16px 0;
}
h2:before ,
h2:after ,
div.child h1:before ,
div.child h1:after {
	content: "";
	position: absolute;
	bottom: 0;
	display: block;
	height: 4px;
}
h2:before ,
div.child h1:before {
	width: 100px;
	background-color: #3189E1;
	z-index: 2;
}
h2:after ,
div.child h1:after {
	width: 100%;
	background-color: #D6D6D6;
	z-index: 1;
}

/* || -------------------- h3 */

h3 {
	width: 100%;
	font-size: 1.1em;
	margin: 0 0 10px 0;
}

/* || -------------------- container > sidebar */

div.sidebar {
	width: 100%;
	max-width: 210px;
}
div.sidebar ul li {
	width: 100%;
	background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(251, 251, 251, 1) 64.54%, rgba(240, 240, 240, 1) 100%);
	border: 1px solid #E4E4E4;
}
div.sidebar ul li:first-child {
	border-radius: 8px 8px 0 0 ;
}
div.sidebar ul li:last-child {
	border-radius: 0 0 8px 8px;
}
div.sidebar ul li a {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	width: 100%;
	padding: 12px 0;
}
div.sidebar ul li a::before {
	content: "";
	display: block;
	width: 6px;
	height: -webkit-fill-available;
	background: linear-gradient(0deg, rgba(234, 234, 234, 1) 0%, rgba(145, 145, 145, 1) 100%);;
	margin: 0 0 0 6px;
}
div.sidebar ul li a p {
	display: block;
	width: calc(100% - 30px);
	font-weight: 600;
	letter-spacing: -0.05em;
	text-align: left;
	border-bottom: unset;
	padding: 0 0 0 6px;
}
div.sidebar ul li a:hover::before {
	background: linear-gradient(0deg, rgba(234, 234, 234, 1) 0%, rgb(63, 142, 207, 1) 100%);;
}
div.sidebar ul li a:hover p {
	color: #3F8ECF;
}

@media screen and (max-width: 768px) {
	div.sidebar {
		display: none;
	}
}

/* || -------------------- container > right-box */

div.container div.right-box {
	width: calc(100% - 240px);
}
@media screen and (max-width: 768px) {
	div.container div.right-box {
		width: 100%;
	}
}

/* || -------------------- business */

body.business p.message {
	margin: 0 auto 30px auto;
}
body.business figure.concept {
	position: relative;
	width: 100%;
	max-width: 795px;
	margin: 0 auto 30px auto;
}
body.business figure.concept img:nth-of-type(1) {
	position: relative;
	z-index: 10;
}
body.business figure.concept img:nth-of-type(2) {
	position: absolute;
	top: 38px;
	left: 180px;
}
body.business figure.concept img:nth-of-type(3) {
	position: absolute;
	top: 26px;
	right: 0;
	z-index: 10;
}
@media screen and (max-width: 768px) {
	body.business figure.concept {
		max-width: 590px;
	}
	body.business figure.concept img:nth-of-type(1) {
		width: 270px;
	}
	body.business figure.concept img:nth-of-type(2) {
		width: 200px;
    top: 65px;
	}
	body.business figure.concept img:nth-of-type(3) {
		width: 300px;
	}
}
@media screen and (max-width: 600px) {
	body.business figure.concept {
		max-width: 300px;
		margin: 0 auto 280px auto;
	}
	body.business figure.concept img:nth-of-type(1) {
		margin: 0 auto;
	}
	body.business figure.concept img:nth-of-type(2) {
		left: 0;
		right: 0;
		margin: 0 auto;
		transform: rotate(90deg);
		top: 190px;
	}
	body.business figure.concept img:nth-of-type(3) {
		top: 300px;
	}
}

body.business div.item {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	flex-direction: column;
	width: 49%;
	box-shadow: 2px 2px 2px rgb(22 27 96 / 30%);
	padding: 14px;
	margin: 0 0 20px 0;
}
body.business div.item div.label {
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 436px;
	height: 40px;
	color: #3189E1;
	font-size: 1.2em;
	background-image: url(../images/bg_label-business.png);
	background-repeat: no-repeat;
	box-shadow: 2px 2px 2px rgb(22 27 96 / 30%);
	padding: 0 0 0 14px;
	margin: 0 0 14px 0;
}
body.business div.item figure {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	flex-grow: 1;
	width: 100%;
	margin: 0 0 20px 0;
}
body.business div.item figure img {
	width: 100%;
	max-width: 160px;
}
body.business div.item figure p.text {
	width: calc(100% - 170px);
	font-size: 0.85em;
}
body.business ul.link {
	position: relative;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	width: 100%;
	padding: 2px 0 2px 76px;
}
body.business ul.link:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 67px;
	height: 47px;
	background-image: url(../images/business_img-00.png);
	background-repeat: no-repeat;
}
body.business ul.link::after {
	content: '関連事業';
	position: absolute;
	white-space: pre-wrap;
	top: 8.5px;
	left: 10px;
	width: 3em;
	letter-spacing: 1px;
	line-height: 1.2em;
	font-size: 0.8em;
	color: #ffffff;
}
body.business ul.link li {
	width: 100%;
	max-width: 160px;
	margin: 0 12px 0 0;
}
body.business ul.link li:last-child {
	margin: 0 0 0 0;
}
body.business ul.link li.fsg {
	max-width: 216px;
}
body.business ul.link li a {
	width: 100%;
	border-radius: 6px;
	background : linear-gradient(0deg, rgba(19, 126, 237, 1) 1.31%, rgba(28, 85, 167, 1) 48.91%, rgba(1, 39, 92, 1) 100%);
	padding: 3px;
}
body.business ul.link li a p {
	position: relative;
	width: 100%;
	font-size: 0.8em;
	text-align: center;
	border-radius: 4px;
	padding: 8px 4px;
}
body.business ul.link li.company a p {
	border: 1px solid #FFE8A6;
	background-color: #FFDC26;
}
body.business ul.link li.group a p {
	border: 1px solid #7DC0DE;
	background-color: #64D5EE;
}
body.business ul.link li.fsg a p {
	letter-spacing: -2px;
}
body.business ul.link li.thai a p {
	font-size: 0.7em;
}
@media screen and (max-width: 940px) {
	body.business div.item {
		width: 100%;
	}
}
@media screen and (max-width: 480px) {
	body.business div.item div.label {
		font-size: 4.6vw;
	}
	body.business div.item:last-of-type div.label {
		font-size: 4vw;
		background-size: 100% 100%;
	}
	body.business div.item figure img {
		/* max-width: unset; */
		margin: 0 auto 10px auto;
	}
	body.business div.item figure p.text {
		width: 100%;
	}
	body.business ul.link li {
    margin: 0 0 8px 0;
	}
}

/* || -------------------- company */

body.company figure.theme {
	float: left;
	width: calc(100% - 192px);
	padding: 20px 0 20px 0;
}
body.company figure.theme img:nth-of-type(1) {
	margin: 0 0 0 60px;
}
body.company figure.theme img:nth-of-type(2) {
	margin: 6px 0 0 110px;
}
body.company figure.officer {
	float: right;
	width: 100%;
	max-width: 192px;
	padding: 16px 16px 16px 16px;
}
body.company figure.officer img:nth-of-type(1) {
	margin: 0 0 4px 0;
}
body.company p.greeting {
	font-size: 0.85em;
	letter-spacing: .1em;
	padding: 40px 0 0 0;
}

@media screen and (max-width: 768px) {
	body.company figure.theme {
		width: 100%;
	}
	body.company figure.theme img:nth-of-type(1) {
		margin: 0 auto 0 auto;
	}
	body.company figure.theme img:nth-of-type(2) {
		margin: 0 auto 8px auto;
	}
}
@media screen and (max-width: 380px) {
	body.company figure.theme {
		float: unset;
		width: 100%;
		padding: 20px 0 10px 0;
	}
	body.company figure.officer {
		float: unset;
		padding: 0 16px 16px 16px;
    margin: 0 auto 0 auto;
	}
	body.company p.greeting {
		padding: 0;
	}
}

/* || -------------------- company > vision */

div.vision div.right-box p {
	width: 100%;
	font-size: 0.85em;
	margin: 0 0 20px 0;
}

div.vision div.right-box ol {
	width: 100%;
	font-size: 0.85em;
	margin: 0 0 20px 0;
}
div.vision div.right-box ol li {
	list-style: decimal;
	list-style-position: inside;
	text-indent: -1em;
	padding-left: 1em;
}
div.vision div.right-box ol li:not(:last-child) {
	margin: 0 0 6px 0;
}

/* || -------------------- company > summary */

div.summary p.name {
	color: #3C8CCE;
	font-weight: 900;
	font-size: 1.8em;
	margin: 0 0 16px 0;
}

div.summary table {
	font-size: 0.85em;
	margin: 0 0 20px 0;
}
div.summary table th {
	width: 20%;
	color: #fff;
	border: 1px solid #3189E1;
	border-bottom: 1px solid #fff;
	background-color: #3189E1;
	padding: 4px;
}
div.summary table tr:last-child th {
	border-bottom: 1px solid #3189E1;
}
div.summary table td {
	width: 80%;
	border: 1px solid #3189E1;
	padding: 4px 12px;
}

div.summary ul.access {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
div.summary ul.access li {
	width: 48%;
	margin: 0 0 26px 0;
}
div.summary ul.access li figure ,
div.summary ul.access li figure img {
	width: 100%;
}

div.summary ul.access li div.iframe iframe {
	width: 100%;
	height: 301px;
	margin: 0 0 10px 0;
}
div.summary ul.access li > a {
	color: #1C55A7;
	font-size: 0.8em;
	text-align: center;
}
div.summary ul.access li p.notes {
	font-size: 0.76em;
	text-align: center;
	margin: 0 0 10px 0;
}
div.summary ul.access li p.place {
	font-size: 0.8em;
	border-left: 5px solid rgb(49 137 225);
	border-bottom: 1px solid rgb(49 137 225);
	padding: 5px 5px 5px 8px;
	margin: 0 0 10px 0;
}
div.summary ul.access li p.title {
	font-size: 0.8em;
	font-weight: bold;
	border-bottom: 1px dashed rgb(49 137 225);
	padding: 0 0 3px 3px;
	margin: 0 0 10px 0;
}
div.summary ul.access li p.text {
	font-size: 0.76em;
	margin: 0 0 10px 0;
}

@media screen and (max-width: 500px) {
	div.summary table th {
		width: 24%;
	}
	div.summary table td {
		width: 76%;
	}
	div.summary p.name {
		font-size: 6vw;
	}
	div.summary ul.access li {
		width: 100%;
	}
}

/* || -------------------- company > organizational */

div.organizational p.lead {
	margin: 0 0 20px 0;
}
div.organizational div.area {
	position: relative;
	width: 100%;
	padding: 30px 30px 30px 30px;
}
div.organizational div.area::after {
	content: '';
	position: absolute;
	top: 40px;
	left: 0;
	width: 100%;
	height: 50px;
	background: linear-gradient(90deg, #ffffff90 0, transparent 100%);
	color: transparent;
}
div.organizational div.area h2 {
	position: relative;
	font-weight: 900;
	font-size: 1.8em;
	color: #1e519c;
	padding: 0 0 0 0;
	margin: 0 0 4px 0;
	z-index: 5;
}
div.organizational h2::before,
div.organizational h2::after {
	display: none;
}
div.organizational div.area p {
	position: relative;
	font-weight: 900;
	font-size: 1em;
	color: #1e519c;
	z-index: 5;
	margin: 0 0 30px 0;
}
div.organizational div.area img.bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}
div.organizational ul li a:hover {
	color: #777777;
}
div.organizational ul.base-parent {
	position: relative;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	flex-wrap: wrap;
	width: 100%;

	background-color: #c5cfe3d1;
	border: 2px solid #20568a;
	border-radius: 6px;
	
	padding: 14px 14px 14px 14px;
	margin: 0 auto 50px auto;
	z-index: 5;
}
div.organizational ul.base-parent::after {
	content: '';
	position: absolute;
	bottom: -60px;
	left: 50%;
	transform: translateX(-50%);

	width: 2px;
	height: 60px;
	background-color: #20568a;
}
div.organizational ul.base-parent li {
	width: calc(98% / 3);
	display: flex;
	flex-direction: column;
	box-shadow: 2px 2px 4px #00000021;
}
div.organizational ul.base-parent a {
	display: block;
	flex-grow: 1;
	align-content: center;

	background: linear-gradient(0deg, #f1c356 0, #f1c356 50%, #f4d21f 50%);
	font-weight: 700;
	text-shadow: 2px 2px 10px #FFFFFF, -2px -2px 10px #FFFFFF ,0 0 10px #FFFFFF,0 0 5px #FFFFFF;
	text-align: center;
	padding: 12px 6px 12px 6px;
}
div.organizational ul.base-parent li.flash a {
	font-size: 0.8em;
}

div.organizational div.base-child {
	width: 100%;
}

div.organizational ul.base-child {
	position: relative;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	width: 100%;
	max-width: 630px;

	margin: 0 auto 0 auto;
	z-index: 5;
}
div.organizational ul.base-child::after {
	content: '';
	position: absolute;
	top: -24px;
	left: 50%;
	transform: translateX(-50%);

	width: 75%;
	height: 30px;
	border: 2px solid #20568a;
	border-color: #20568a #20568a transparent #20568a;
	border-radius: 10px 10px 0 0;
	z-index: -1;
}
div.organizational ul.base-child li {
	width: 100%;
	max-width: 153px;
}
div.organizational ul.base-child a {
	width: 100%;
	height: 100%;
}

@media screen and (max-width: 768px) {
	div.organizational div.area {
		padding: 30px 20px 30px 20px;
	}
	div.organizational ul.base-parent {
		width: 100%;
	}
}

@media screen and (max-width: 600px) {
	div.organizational div.area h2 {
		font-size: 5vw;
		padding-left: 14px;
	}
	div.organizational div.area p {
		padding-left: 14px;
	}
	div.organizational div.area {
		padding: 30px 0 0 0;
	}
	div.organizational ul.base-parent {
		position: relative;
		margin: 0 auto 40px auto;
	}
	div.organizational ul.base-parent {
		flex-direction: column;
	}
	div.organizational ul.base-parent li {
		width: 100%;
	}
	div.organizational ul.base-parent li:not(:last-child) {
		margin: 0 0 10px 0;
	}
	div.organizational ul.base-parent li.flash a {
		font-size: min(4vw,1em);
	}
	div.organizational ul.base-parent li.flash a br {
		display: none;
	}
	div.organizational ul.base-child::after {
		width: 68%;
	}
	div.organizational ul.base-child li:not(:last-child) {
		margin: 0 4px 0 0;
	}
}


/* || -------------------- company > history */

div.history table {
	font-size: 0.85em;
}
div.history table tr:nth-of-type(odd) {
	background-color: rgb(212 235 255);
}
div.history table tr:nth-of-type(even) {
	background-color: rgb(243 250 255);
}
div.history table th {
	width: 20%;
	border-right: 1px solid #FFF;
}
div.history table td {
	width: 80%;
	padding: 8px;
}

@media screen and (max-width: 450px) {
	div.history table ,
	div.history table tbody ,
	div.history table tr ,
	div.history table th ,
	div.history table td {
		display: block;
	}
	div.history table th {
		width: 100%;
		border-right: unset;
		border-bottom: 1px solid #fff;
	}
	div.history table td {
		width: 100%;
	}
}

/* || -------------------- company > group */

div.group div.domestic,
div.group div.abroad {
	width: 100%;
	max-width: 650px;
}
div.group div.scroll-box,
div.group div.scroll-box {
	position: relative;
	width: 650px;
}

/* domestic */
div.group div.domestic {
  margin: 0 auto 10px auto;
}
div.group div.domestic figure ,
div.group div.domestic figure img {
  display: block;
  width: 100%;
}
div.group div.domestic ul {
  position: absolute;
  width: 214px;
  padding: 0 6px;
}
div.group div.domestic ul:nth-of-type(1) {
  top: 80px;
  left: 8px;
}
div.group div.domestic ul:nth-of-type(2) {
  top: 206px;
  left: 8px;
}
div.group div.domestic ul:nth-of-type(3) {
  top: 168px;
  right: 6px;
  width: 201px;
}
div.group div.domestic ul:nth-of-type(4) {
  top: 246px;
  right: 6px;
}
div.group div.domestic ul:nth-of-type(5) {
  top: 364px;
  right: 6px;
  width: 260px;
}

/* aboroad */
div.group div.abroad {
  margin: 0 auto 10px auto;
}
div.group div.abroad figure ,
div.group div.abroad figure img {
  display: block;
  width: 100%;
}
div.group div.abroad ul {
  position: absolute;
  width: 214px;
  padding: 0 6px;
}
div.group div.abroad ul:nth-of-type(1) {
  top: 330px;
  left: 4px;
}
div.group div.abroad ul:nth-of-type(2) {
  top: 140px;
  right: 0;
  width: 90px;
}

/* list */
div.group div.domestic ul li ,
div.group div.abroad ul li {
  display: flex;
  width: 100%;
  margin: 0 0 4px 0;
}
div.group div.domestic ul li:before ,
div.group div.abroad ul li:before {
  content: "";
  width: 0px;
  height: 6px;
  border-radius: 50%;
  background-color: rgb(252 227 3);
  padding-left: 6px;
  margin: 4px 4px 4px 0;
}
div.group div.domestic ul li a ,
div.group div.abroad ul li a {
  color: #000;
  font-size: 0.66em;
	line-height: 1.4em;
  transition: 0.2s;
}
div.group div.domestic ul li a:hover ,
div.group div.abroad ul li a:hover {
  color: red;
}

div.group span.scroll-mes {
	display: none;

	font-size: 0.875em;
	color: #1C55A7;
}

@media screen and (max-width: 940px) {
	div.group div.domestic,
	div.group div.abroad {
		overflow-x: scroll;
	}
	div.group span.scroll-mes {
		margin: 0 0 20px 0;
	}
	div.group span.scroll-mes:nth-of-type(2) {
		margin: 0 0 40px 0;
	}
}
@media (768px < width <= 940px) {
	div.group span.scroll-mes {
		display: block;
	}
}
@media screen and (max-width: 689px) {
	div.group span.scroll-mes {
		display: block;
	}
}

div.group div.cell {
	width: 100%;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
}
div.group div.cell.sub {
	padding: 0 0 0 30px;
}

div.group div.cell h2 {
	width: 100%;
	font-size: 0.875em;
	font-weight: 700;
	border-bottom: 1px solid #000;
	padding: 0 0 10px 0;
	margin: 0 0 16px 0;
}
div.group div.cell h2::before,
div.group div.cell h2::after {
	display: none;
}
div.group div.cell figure {
	width: 100%;
	max-width: 156px;
	margin: 0 16px 0 0;
}
div.group div.cell figure img {
	width: 100%;
	margin: 0 0 8px 0;
}
div.group div.cell figure a {
	display: block;
	width: fit-content;
	font-size: 0.81em;
	color: #0000ee;
}
div.group div.cell table {
	width: calc(100% - 172px);
	font-size: 0.81em;
	margin: 0 0 20px 0;
}
div.group div.cell table tr {
	border-bottom: 1px dashed #000;
}
div.group div.cell table th {
	width: 100px;
	font-weight: 400;
	text-align: left;
	vertical-align: text-top;
	padding: 10px 0 10px 10px;
}
div.group div.cell table td {
	padding: 10px 10px 10px 10px;
}
div.group div.cell table td ul li {
	text-indent: -16px;
	padding-left: 16px;
}
div.group div.cell table td ul li::before {
	content: '';
	display: inline-block;
	width: 10px;
	height: 10px;
	background-color: #DDDDDD;
	margin-right: 6px;
}

div.group div.cell p.button {
	width: 100%;
	font-size: 0.875em;
}
div.group div.cell p.button a {
	display: block;
	width: fit-content;
	padding: 0 0 0 16px;
	margin: 0 0 0 auto;
}
div.group div.cell p.button a::before {
	content: '';
	background: url(../images/icon-page-top.png) no-repeat;
	display: inline-block;
	width: 13px;
	height: 13px;
	margin: 0 4px 0 0;
	transform: translateY(1px);
}

div.group div.cell table td span.position {
	display: inline-block;
	width: 62px;
}

@media screen and (max-width: 600px) {
	div.group div.cell.sub {
		padding: 0 14px 0 14px;
	}
	div.group div.cell table th {
		width: 90px;
		padding: 6px 0 6px 10px;
	}
	div.group div.cell table td {
		padding: 6px 10px 6px 6px;
	}
}
@media screen and (max-width: 480px) {
	div.group div.cell figure {
		max-width: 250px;
		width: 80%;
		margin: 0 auto 16px auto;
	}
	div.group div.cell figure a {
		margin: 0 0 0 auto;
	}
	div.group div.cell table {
		width: 100%;
		margin: 0 0 20px 0;
	}
}



/* || -------------------- recruit */
body.recruit a.btn-page {
	width: fit-content;
}
body.recruit a.btn-page img {
	width: 100%;
	max-width: 292px;
}

body.recruit div.news {
	width: 100%;
	margin: 0 0 50px 0;
}
body.recruit div.news div.inner {
	width: 100%;
	border: 2px solid #3187DE;
	border-radius: 6px;
	padding: 4px;
}
body.recruit div.news h2 {
	margin: 0 0 10px 0;
}
body.recruit div.news h2:before,
body.recruit div.news h2:after{
	content: unset;
}
body.recruit div.news ul {
	width: 100%;
	height: 184px;
	overflow-y: scroll;
}
body.recruit div.news ul li {
	width: 100%;
}
body.recruit div.news ul li a {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	color: #3189E0;
	border-bottom: 1px dashed #3189E0;
	font-size: 0.875em;
	padding: 10px 12px;
}
body.recruit div.news ul li p.date {
	width: 136px;
	display: flex;
	align-items: center;
}
body.recruit div.news ul li p.date::before {
	content: "";
	display: block;
	background-color: #3189E0;
	width: 10px;
	height: 14px;
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	margin: 0 8px 0 0;
}
body.recruit div.news ul li p:not(.date) {
	width: calc(100% - 136px);
	font-weight: 600;
}

body.recruit div.message {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 0 0 50px 0;
}
body.recruit div.message figure ,
body.recruit div.message figure img {
	width: 100%;
	max-width: 300px;
}
body.recruit div.message > div {
	width: calc(100% - 350px);
}
body.recruit div.message > div p {
	width: 100%;
	margin: 0 0 23px 0;
}

body.recruit div.about {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 0 0 50px 0;
}
body.recruit div.about figure ,
body.recruit div.about figure img {
	width: 100%;
	max-width: 300px;
}
body.recruit div.about > div {
	width: calc(100% - 350px);
}
body.recruit div.about > div p {
	width: 100%;
	font-size: 0.85em;
	background-color: #F3F8FA;
	padding: 9px;
	margin: 0 0 23px 0;
}

body.recruit div.group {
	width: 100%;
	margin: 0 0 50px 0;
}
body.recruit div.group > p {
	background-color: #F3F8FA;
	font-size: 0.875em;
	padding: 9px;
	margin: 0 0 24px 0;
}
body.recruit div.group ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: stretch;
	width: 100%;
	padding: 0 20px 0 20px;
	margin: 0 0 20px 0;
}
body.recruit div.group ul li {
	width: calc(94% / 4);
	display: flex;
	flex-direction: column;
}
body.recruit div.group ul li p {
	flex-grow: 1;
	align-content: center;
	text-align: center;
	font-size: 0.875em;
	font-weight: 700;
	border-top: 3px solid #3188DE;
	border-left: 1px solid #3188DE;
	border-right: 1px solid #3188DE;
	padding: 6px 6px 6px 6px;
}
body.recruit div.group ul li img {
	width: 100%;
}
body.recruit div.group div.btn-entry {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	padding: 0 20px 0 20px;
}
body.recruit div.group div.btn-entry a {
	width: 49%;
	max-width: 292px;
}
body.recruit div.group div.btn {
	margin: 12px 20px 0 auto;
}

body.recruit div > div.btn {
	display: block;
	width: 112px;
	height: 40px;
	background-repeat: no-repeat;
	text-indent: -9999px;
	overflow: hidden;
	background-image: url(../images/btn-back_to_top.png);
	margin: 12px 0 0 auto;
}
body.recruit div > div.btn:hover {
	filter: brightness(0.9);
}

body.recruit h2.midashi-grad,
body.recruit h1.midashi-grad {
	width: 100%;
	min-height: 80px;
	color: #3189E0;
	font-size: 1.3em;
	font-weight: 600;
	background-image: url(../images/senpai-bg-head.png);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	background-position: left top;
	padding: 16px 0px 16px 52px;
	margin: 0 0 30px 0;
}
body.recruit h1.midashi-grad:before,
body.recruit h1.midashi-grad:after,
body.recruit h2.midashi-grad:before,
body.recruit h2.midashi-grad:after {
	content: unset;
}
body.recruit h2.midashi-grad span,
body.recruit h1.midashi-grad span {
	display: block;
	font-size: 0.7em;
}

@media screen and (max-width: 940px) {
	body.recruit div.message figure,
	body.recruit div.about figure {
		width: 45%;
	}
	body.recruit div.message > div,
	body.recruit div.about > div:not(.btn) {
		width: 50%;
	}
	body.recruit div.message figure img {
		object-fit: cover;
		height: 328px;
	}
	
	body.recruit div.about figure img {
		object-fit: cover;
		height: 267px;
	}
}
@media screen and (max-width: 768px) {
	body.recruit h1.midashi-grad,
	body.recruit h2.midashi-grad {
		font-size: 1.3em;
		background-size: 100% 100%;
		background-position: -10px top;
		padding: 16px 0px 16px 32px;
	}
}
@media screen and (max-width: 600px) {
	body.recruit div.news ul li p:not(.date) {
		width: 100%;
	}
	body.recruit div.group ul li {
		width: calc(98% / 2);
		display: flex;
		flex-direction: column;
	}
	body.recruit div.group ul li:nth-child(-n + 2) {
		margin: 0 0 10px 0;
	}
	body.recruit div.group div.btn-entry {
		flex-direction: column;
	}
	body.recruit div.group div.btn-entry a:first-child {
		margin: 0 0 10px 0;
	}
	body.recruit div.group div.btn-entry a {
		width: 100%;
	}
}
@media screen and (max-width: 500px) {
	body.recruit a.btn-page {
		margin: 0 auto 0 auto;
	}
	body.recruit h1.midashi-grad,
	body.recruit h2.midashi-grad {
		background-size: 130% 100%;
		padding: 16px 16px 16px 26px;
	}
	
	body.recruit div.about figure {
		order: 1;
	}
	body.recruit div.about > div {
		order: 2;
	}
	body.recruit div.message figure,
	body.recruit div.about figure {
		width: 100%;
		margin: 0 auto 20px auto;
	}
	body.recruit div.message > div,
	body.recruit div.about > div:not(.btn) {
		width: 100%;
	}
	body.recruit div.message > div p {
		max-width: 400px;
		margin: 0 auto 23px auto;
	}
	body.recruit h2.midashi-grad {
		font-size: min(5.4vw,1.3em);
	}
}

/* || -------------------- recruit > mes-pre */

div.mes-pre h2 {
	position: relative;
	font-size: 1em;
	font-weight: 700;
	border-bottom: 1px dashed #3077C3;
	background-color: rgba(255, 255, 255, 0.902);
	padding: 10px 0 10px 20px;
	margin: 0 0 0 0;
	z-index: 5;
}
div.mes-pre div[class*="item-"] p {
	position: relative;
	font-size: 0.875em;
	background-color: rgba(255, 255, 255, 0.902);
	padding: 15px 14px 17px 20px;
	z-index: 5;
}
div.mes-pre h2::before {
	content: '';
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 8px;
	height: 100%;
	background-color: #3077C3;
	border-radius: 10px 10px 0 0;
}
div.mes-pre h2::after {
	display: none;
}

[class*="item-"] {
	margin: 0 0 36px 0;
}
div.mes-pre div.item-01,
div.mes-pre div.item-03,
div.mes-pre div.item-05 {
	position: relative;
	padding: 24px 24px 24px 24px;
}

div.mes-pre div.bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
div.mes-pre div.bg img {
	object-fit: cover;
	width: 100%;
	height: 100%;
	object-position: left center;
}
div.mes-pre div.item-01 h2,
div.mes-pre div.item-01 p {
	margin: 0 0 0 auto;
}
div.mes-pre div.item-03 h2,
div.mes-pre div.item-03 p {
	margin: 0 auto 0 0;
}
div.mes-pre div.item-05 h2,
div.mes-pre div.item-05 p {
	margin: 0 0 0 auto;
}

div.mes-pre div.item-01 h2,
div.mes-pre div.item-01 p,
div.mes-pre div.item-03 h2,
div.mes-pre div.item-03 p,
div.mes-pre div.item-05 h2,
div.mes-pre div.item-05 p {
	width: 56%;
}
@media screen and (max-width: 940px) {
	div.mes-pre div.item-01,
	div.mes-pre div.item-03,
	div.mes-pre div.item-05 {
		padding: 24px 14px 24px 14px;
	}
	div.mes-pre div.item-01 div.bg img {
		object-position: 26% 50%;
	}
	div.mes-pre div.item-03 div.bg img {
		object-position: 64% 50%;
	}
	div.mes-pre div.item-05 div.bg img {
		object-position: 26% 50%;
	}
}
@media screen and (max-width: 768px) {

	[class*="item-"] {
		margin: 0 0 20px 0;
	}

	div.mes-pre div.item-01,
	div.mes-pre div.item-03,
	div.mes-pre div.item-05 {
		padding: 240px 0 0 0 ;
	}
	div.mes-pre div.item-01 h2,
	div.mes-pre div.item-01 p,
	div.mes-pre div.item-03 h2,
	div.mes-pre div.item-03 p,
	div.mes-pre div.item-05 h2,
	div.mes-pre div.item-05 p {
		width: 98%;
		padding: 14px 14px 14px 14px;
		margin: 0 auto 0 auto;
	}

	div.mes-pre div.bg {
		width: 100%;
		max-width: 500px;
		left: 50%;
		transform: translateX(-50%);
	}
	div.mes-pre div.bg img {
		height: 230px;
	}
	div.mes-pre div.item-01 div.bg img {
		object-position: 50% 14%;
	}
	div.mes-pre div.item-05 div.bg img {
		object-position: 50% 32%;
	}

}
@media screen and (max-width: 400px) {
	div.mes-pre div.item-01 div.bg img {
		object-position: 50% 4%;
	}
	div.mes-pre div.item-05 div.bg img {
		object-position: 50% 30%;
	}
}

/* || -------------------- recruit > privacy */

div.privacy ol {
	list-style-position: inside;
	text-indent: -1.2em;
	font-size: 0.875em;
	background-color: #F3F8FA;
	padding: 20px 20px 20px 40px;
	margin: 0 auto 20px auto;
}
div.privacy ol > li:not(:last-child) {
	margin: 0 0 30px 0;
}
div.privacy ol ul li {
	text-indent: -1em;
	font-size: 1em;
	padding: 10px 0 0 1em;
	margin: 0 0 10px 0;
}
div.privacy ol ul li:before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	background-color: #000;
	border-radius: 50%;
	margin: 0 8px 0 0;
}
div.privacy ul.contact {
	font-size: 0.875em;
	padding: 0 20px 0 40px;
}

@media screen and (max-width: 768px) {
	div.privacy ol > li:not(:last-child) {
		margin: 0 0 16px 0;
	}
	div.privacy ol {
		padding: 14px 14px 14px 34px;
	}
	div.privacy ol ul li {
		margin: 0 0 0 0;
	}
	div.privacy ul.contact {
		padding: 0 14px 0 14px;
	}
}
@media screen and (max-width: 450px) {
	div.privacy ul.contact li:first-child,
	div.privacy ul.contact li:nth-child(2) {
		margin: 0 0 1em 0;
	}
}

/* || -------------------- recruit > recruitment */

div.recruitment div.detail h2 {
	width: 100%;
	border-left: 5px solid #3189E1;
	background: #F4F4F4;
	padding: 6px 14px;
	font-size: 1em;
	margin: 0 0 14px 0;
}
div.recruitment div.detail h2::before,
div.recruitment div.detail h2::after {
	content: unset;
}
div.recruitment div.rec,
div.recruitment div.car {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 48px 0;
}

div.recruitment div.right-box > p {
	margin: 0 0 0 36px;
	padding: 14px 0 0 0;
}
div.recruitment  div.rec a,
div.recruitment  div.car a {
	width: fit-content;
	display: block;
	font-size: 0.86em;
	color: #333333;
	border-radius: 10px;
	padding: 12px 34px;
	margin: 0 18px 18px 0;
	transition: 0.2s;
}
div.recruitment div.rec a {
	border: solid 2px #7BBFB2;
	box-shadow: 2px 2px 4px #9EDDD1;
}
div.recruitment div.rec a:hover {
	border: solid 2px #7BBFB2;
	box-shadow: 2px 2px 4px #6d9991;
}
div.recruitment div.car a {
	border: solid 2px #7A9FBC;
	box-shadow: 2px 2px 4px #7A9FBC;
}
div.recruitment div.car a:hover {
	border: solid 2px #7A9FBC;
	box-shadow: 2px 2px 4px #536c80;
}
div.recruitment div.rec a:hover p,
div.recruitment div.car a:hover p {
	transition: 0.2s;
	transform: translate(-2px, -2px);
}
div.recruitment  div.rec p,
div.recruitment  div.car p {
	width: 100%;
}

/* tabbox */
div.recruitment input[name="tabitem"] {
	display: none;
}
div.recruitment .tabcontent {
	display: none;
	overflow: hidden;
}
div.recruitment input#treat:checked ~ div.treatbox,
div.recruitment input#date:checked ~ div.datebox {
	display: block;
}

div.recruitment div.tabbox {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	flex-wrap: wrap;
}
div.recruitment label.tabitem {
	width: 49%;
	max-width: 210px;
	padding: 8px 20px;
	text-align: center;
	display: flex;
	flex-direction: column;
	font-weight: 700;
	transition: all 0.2s ease;

	position: relative;
	border: 2px solid #7AB5E2;
	border-bottom: none;
	background-color: #CDDEF0;
	color: #2E75C1;
	border-radius: 14px 14px 0 0;
}
div.recruitment label.treat {
	margin: 0 4px 0 0;
}
div.recruitment label.date {
	margin: 0 auto 0 0;
}
div.recruitment input#treat:checked ~ label.treat,
div.recruitment input#date:checked ~ label.date {
	color: #FFF;
	background-color: #2E75C1;
	border: 2px solid #2E75C1;
	border-bottom: none;
	text-shadow: 1px 1px 2px #333;
}
div.recruitment label.tabitem span {
		display: block;
		font-size: 0.75em;
		background-color: #F4FBFB;
		letter-spacing: .1rem;
		margin: auto 0 0 0;
}
div.recruitment input#treat:checked ~ label.treat span,
div.recruitment input#date:checked ~ label.date span {
    background-color: #67AFDB;
    letter-spacing: .1rem;
}


div.recruitment div.tabcontent {
	width: 100%;
	border: solid 2px #2E75C1;
}
div.recruitment div.tabcontent table {
	width: 100%;
}
div.recruitment table tr {
	border-bottom: 1px solid #97BBE1;
}
div.recruitment table th {
	width: 24%;
	border-right: 1px solid #97BBE1;
	background-color: #CDDEF0;
	font-size: 0.875em;
	font-weight: 500;
	padding: 8px;
}
div.recruitment table td {
	font-size: 0.875em;
	padding: 8px;
}

div.recruitment table td div.salary-box {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	width: 100%;
	max-width: 300px;
}
div.recruitment table td div.salary-box p {
	width: calc(100% - 90px);
}
div.recruitment table td div.salary-box span {
	width: 90px;
}
div.recruitment table td div.benefit {
	display: flex;
	align-items: flex-start;
	padding: 4px 0 0 0;
}
div.recruitment table td div.benefit a {
	float: right;
	padding: 0;
	margin: 0;
}
div.recruitment table td div.benefit a img {
	width: 100px;
	height: auto;
}
div.recruitment table td h2 {
	font-size: 1em;
	font-weight: 700;
	margin: 0 0 0 0;
	padding: 0 0 0 0;
}
div.recruitment table td h2::before,
div.recruitment table td h2::after {
	content: unset;
}
div.recruitment table.school-name {
	table-layout: fixed;
}
div.recruitment table.school-name:first-of-type {
	margin: 0 0 14px 0;
}
div.recruitment table.school-name tr {
	border-bottom: unset;
}
div.recruitment table.school-name td {
	padding: 0 0 0 0;
}

div.recruitment table tr.income td span {
	display: inline-block;
	width: 110px;
	text-align: right;
}

@media screen and (max-width: 600px) {
	div.recruitment label.tabitem {
		font-size: 0.875em;
	}

	div.recruitment table th {
		display: block;
		width: 100%;
	}
	div.recruitment table th br {
		display: none;
	}
	div.recruitment table td {
		display: block;
		width: 100%;
	}

	div.recruitment table.school-name:first-of-type tr {
		display: flex;
		flex-wrap: wrap;
	}
	div.recruitment table.school-name:first-of-type td {
		/* display: table-cell; */
		width: 49%;
	}
	div.recruitment table.school-name:first-of-type td.overseas {
		width: 100%;
	}
}

@media screen and (max-width: 450px) {
	/* div.recruitment  div.rec a,
	div.recruitment  div.car a {
		width: 100%;
		padding: 12px 12px 12px 12px;
		margin: 0 0 16px 0;
	} */
	/* div.recruitment  div.rec a:last-child,
	div.recruitment  div.car a:last-child {
		margin-bottom: unset;
	} */

	div.recruitment table td p.num-people {
		font-size: min(3.75vw, 14px);
	}

	div.recruitment table td div.benefit {
		flex-direction: column;
		/* padding: 1em 0 0 0; */
	}
	div.recruitment table td div.benefit a {
		margin: 8px 0 0 0;
	}
}

/* || -------------------- single recruit */

div.guid-data div.detail > table {
	width: 100%;
	border: 1px solid #97BBE1;
	margin: 0 0 20px 0;
}
div.guid-data table tr {
	border-bottom: 1px solid #97BBE1;
}
div.guid-data table th {
	width: 24%;
	border-right: 1px solid #97BBE1;
	background-color: #CDDEF0;
	font-size: 0.875em;
	font-weight: 500;
	padding: 8px;
}
div.guid-data table td {
	font-size: 0.875em;
	padding: 8px;
}

div.guid-data table td h3 {
	font-size: 1em;
	font-weight: 700;
	margin: 0 0 0 0;
	padding: 0 0 0 0;
}
div.guid-data table.school-name {
	table-layout: fixed;
}
div.guid-data table.school-name:first-of-type {
	margin: 0 0 14px 0;
}
div.guid-data table.school-name tr {
	border-bottom: unset;
}
div.guid-data table.school-name td {
	padding: 0 0 0 0;
}

div.guid-data div.detail a {
	width: 100%;
	max-width: 200px;
	color: #FFFFFF;
	border-radius: 4px;
	text-align: center;
	font-size: 1.25em;
	background-color: #FF0000;
	padding: 10px;
	margin: 0 auto 0 0;
}

@media screen and (max-width: 600px) {

	div.guid-data table th {
		display: block;
		width: 100%;
		border-right: unset;
	}
	div.guid-data table td {
		display: block;
		width: 100%;
	}

	div.guid-data table.school-name:first-of-type tr {
		display: flex;
		flex-wrap: wrap;
	}
	div.guid-data table.school-name:first-of-type td {
		width: 49%;
	}
}

/* || -------------------- recruit entry */

div.entry p.text {
	width: 100%;
	margin: 0 auto 20px auto;
}
div.entry p.text span {
	color: red;
}

div.entry table {
	width: 100%;
	font-size: 0.85em;
	margin: 0 auto 20px auto;
}
div.entry table tr {
	width: 100%;
	border-bottom: 1px solid #7FDEFF;
}
div.entry table tr:first-child {
	border-top: 1px solid #7FDEFF;
}
div.entry table th {
	width: 30%;
	text-align: left;
	padding: 8px;
}
div.entry table th span {
	color: red;
}
div.entry table td {
	width: 70%;
	padding: 8px;
}
div.entry table td div {
	display: flex;
	align-items: center;
	width: 100%;
}
div.entry table td div.radio-box {
	width: fit-content;
}
div.entry table td div span.must {
	display: block;
	width:36px;
	flex-shrink: 0;
	margin: 0 0 0 auto;
}
div.entry table td div p {
	width: 100%;
	padding: 6px 0 0 0;
}
div.entry input[type="text"] ,
div.entry textarea {
	width: calc(100% - 50px);
	border: 1px solid #000;
	padding: 4px;
	margin: 0 8px 0 0;
}
div.entry input[type="text"]:focus ,
div.entry textarea:focus {
	outline: none;
}
div.entry div.form-btn {
	width: 200px;
	margin: 0 auto;
}
div.entry div.form-btn input[type="submit"],
div.entry div.form-btn a {
	width: 200px;
	color: #fff;
	background-color: #2F76C2;
	padding: 8px;
	margin: 0 0 10px 0;
}
div.entry div.form-btn a {
	text-align: center;
}

div.entry span.input-box {
	display: block;
}
div.entry td.birth span.input-box {
	margin: 0 8px 0 0;
}



div.entry span.mwform-radio-field {
	margin: 0 10px 0 0;
}
div.entry input[type="text"].years {
	max-width: 100px;
}
div.entry input[type="text"].occupa {
	max-width: 170px;
}
div.entry input[type="text"].name,
div.entry input[type="text"].kana {
	width: calc(100% - 16px);
	max-width: 140px;
	margin: 0 10px 0 6px;
}
div.entry input[type="text"].birth {
	width: 100%;
	max-width: 50px;
}
div.entry input[type="text"].birth:nth-child(n + 2) {
	margin: 0 8px 0 8px;
}
div.entry input[type="text"].tel {
	width: calc(33% - 20px);
	max-width: 80px;
}
div.entry input[type="text"].tel:nth-child(n + 2) {
	margin: 0 8px 0 8px;
}
div.entry input[type="text"].mail,
div.entry input[type="text"].history {
	max-width: 356px;
}

/* confirm */
div.entry div.mw_wp_form_confirm {
	width: 100%;
}
div.entry div.mw_wp_form_confirm table td div span.must {
	display: none;
}

@media screen and (max-width: 630px) {
	
	div.entry table th ,
	div.entry table td {
		display: block;
		width: 100%;
	}
	div.entry table th {
		padding: 8px 8px 0 8px;
	}
	div.entry textarea {
		width: 100%;
		margin: 0;
	}
	div.entry input[type="text"] ,
	div.entry textarea {
		width: 100%;
	}
	div.entry input[type="text"].tel {
		max-width: 50px;
	}
	
}
@media screen and (max-width: 450px) {

	div.entry table td div {
		flex-wrap: wrap;
	}

	div.entry input[type="text"].wid100,
	div.entry input[type="text"].occupa,
	div.entry input[type="text"].mail,
	div.entry input[type="text"].history {
		margin: 0 0 0 0;
	}
	div.entry input[type="text"].mail,
	div.entry input[type="text"].history {
		max-width: unset;
	}

	div.entry span.input-box {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}
	div.entry td.name span.input-box,
	div.entry td.kana span.input-box {
		width: 50%;
	}
	div.entry input[type="text"].name,
	div.entry input[type="text"].kana {
		width: 100%;
		max-width: unset;
		margin: 0 6px 0 0;
	}
	
	div.entry table td div span.must {
		width: 100%;
		margin: 10px 0 0 0;
		text-align: right;
	}
	div.entry table td div span.error {
		display: block;
		order: 3;
	}
}

/* || -------------------- contact */

body.contact p.text {
	margin: 0 auto 20px auto;
}
body.contact p.text span {
	color: red;
}

body.contact table {
	width: 100%;
	font-size: 0.85em;
	margin: 0 auto 20px auto;
}
body.contact table tr {
	width: 100%;
}
body.contact table th {
	width: 30%;
	text-align: left;
	border: 4px solid #D4EBFF;
	padding: 8px;
}
body.contact table th span {
	color: red;
}
body.contact table td {
	width: 70%;
	border: 4px solid #D4EBFF;
	padding: 8px;
}
body.contact table td div {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	width: 100%;
}
body.contact table td div p {
	width: 100%;
	padding: 6px 0 0 0;
}
body.contact input[type="text"] ,
body.contact textarea {
	width: calc(100% - 86px);
	border: 1px solid #000;
	padding: 4px;
	margin: 0 8px 0 0;
}
body.contact input[type="text"]:focus ,
body.contact textarea:focus {
	outline: none;
}
body.contact div.form-btn {
	width: 200px;
	margin: 0 auto;
}
body.contact div.form-btn input[type="submit"] {
	width: 200px;
	color: #fff;
	background-color: #2F76C2;
	padding: 8px;
	margin: 0 0 10px 0;
}

/* confirm */
body.contact div.mw_wp_form_confirm {
	width: 100%;
}
body.contact div.mw_wp_form_confirm table td div img ,
body.contact div.mw_wp_form_confirm table td div p {
	display: none;
}


@media screen and (max-width: 630px) {

	body.contact table th ,
	body.contact table td {
		display: block;
		width: 100%;
	}
	body.contact table th {
		background-color: #D4EBFF;
		padding: 4px 8px;
	}
	body.contact table td {
		margin: 0 0 6px 0;
	}
	body.contact textarea {
		width: 100%;
		margin: 0;
	}
	body.contact table td div p {
		padding: 6px 0 0 1em;
	}

}

/* || -------------------- privacy */

body.privacy div.container p {
	width: 100%;
	font-size: 0.85em;
	margin: 0 0 20px 0;
}

body.privacy div.container ul {
	width: 100%;
	font-size: 0.85em;
	margin: 0 0 20px 0;
}

/* || -------------------- environment */

body.environment div.inner p {
	font-size: 0.875em;
	margin: 0 0 20px 0;
}
body.environment div.inner ol {
	width: 100%;
	max-width: 620px;
	background-color: #def4fc;
	border: 1px solid #4eaadd;
	font-size: 0.875em;
	padding: 10px;
	margin: 0 auto 20px auto;
}
body.environment div.inner ol li {
	list-style-position: inside;
	padding-left: 1.3em;
	text-indent: -1.2em;
	font-size: 0.875em;
}
body.environment div.inner ul {
	margin: 0 0 20px 0;
}

body.environment div.inner ul li {
	padding-left: 1em;
	text-indent: -1em;
	font-size: 0.875em;
}

/* || -------------------- sitemap */

body.sitemap div.parent {
	width: 100%;
	margin: 0 0 46px 0;
}
body.sitemap div.parent > a {
	position: relative;
	display: block;
	width: 100%;
	font-size: 0.875em;
	font-weight: 700;
	padding: 0 0 8px 0;
}
body.sitemap div.parent > a.mb-20 {
	margin: 0 0 20px 0;
}
body.sitemap div.parent > a::before,
body.sitemap div.parent > a::after {
	content: '';
	position: absolute;
	bottom: 0;
	display: block;
	height: 4px;
}
body.sitemap div.parent > a::before {
	width: 100px;
	background-color: #3189E1;
	z-index: 2;
}
body.sitemap div.parent > a::after {
	width: 100%;
	background-color: #D6D6D6;
	z-index: 1;
}
body.sitemap ul.child {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
}
body.sitemap ul.child li {
	width: calc(97% / 4);
	padding: 6px 0 6px 0;
}
body.sitemap ul.child li:not(:nth-child(4n)) {
	margin: 0 1% 0 0;
}
body.sitemap ul.child li a {
	font-size: 0.875em;
	text-align: center;
}

@media screen and (max-width: 600px) {
	body.sitemap div.parent {
		margin: 0 0 20px 0;
	}
	body.sitemap ul.child li {
		width: calc(99% / 2);
		padding: 6px 0 6px 0;
	}
	body.sitemap ul.child li:not(:nth-child(4n)) {
		margin-right: unset;
	}
	body.sitemap ul.child li:not(:nth-child(2n)) {
		margin-right: 1%;
	}
}
@media screen and (max-width: 375px) {
	body.sitemap ul.child li a {
		text-align: left;
	}
}

/* || -------------------- news */

body.news div.child h1 {
	font-weight: 700;
	padding: 0 0 12px 0;
}
body.news div.inner {
	width: 100%;
	padding: 0 12px 0 12px;
}
body.news p.textarea {
	width: 100%;
	font-size: 0.9em;
	margin: 0 0 20px 0;
}
body.news p.textarea a {
	text-decoration: underline;
	color: #0000ee;
}
body.news table.holiday {
	width: 100%;
	table-layout: fixed;
	border: solid 1px #B8B8B8;
	font-size: 0.8em;
	margin: 0 0 20px 0;
}
body.news table.holiday tr {
	border-bottom: solid 1px #B8B8B8;
	vertical-align: baseline;
}
body.news table.holiday th {
	font-weight: normal;
	border-right: solid 1px #B8B8B8;
	background-color: #cbecf5;
	padding: 8px 8px 8px 8px;
}
body.news table.holiday td {
	border-right: solid 1px #B8B8B8;
	padding: 8px 8px 8px 8px;
}
body.news div.gallery {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0 0 20px 0;
}
body.news div.gallery a {
	width: 100%;
	max-width: 250px;
}
body.news div.gallery a:not(:last-child) {
	margin: 0 20px 0 0;
}
body.news div.gallery a img {
	object-fit: cover;
	width: 100%;
	aspect-ratio: 1 / 1;
}
body.news div.pagelink {
	display: flex;
	align-items: stretch;
	justify-content: flex-start;
	flex-wrap: wrap;
	width: 100%;
	margin: 0 0 16px 0;
}
body.news div.pagelink a {
	width: fit-content;
	font-size: 0.9em;
	color: #000;
	background-color: lavender;
	text-decoration: none;
	padding: 8px 8px 8px 8px;
	margin: 0 4px 4px 0;
}
body.news div.pdflink {
	display: flex;
	align-items: stretch;
	justify-content: flex-start;
	flex-wrap: wrap;
	width: 100%;
	margin: 0 0 16px 0;
}
body.news div.pdflink a {
	width: fit-content;
	font-size: 0.9em;
	color: #000;
	background-color: palegoldenrod;
	text-decoration: none;
	padding: 8px 8px 8px 8px;
	margin: 0 4px 4px 0;
}

@media screen and (max-width: 450px) {
	body.news table.holiday td {
		padding: 6px 6px 6px 6px;
	}

	body.news div.gallery {
		flex-direction: column;
	}
	body.news div.gallery a {
		max-width: unset;
	}
	body.news div.gallery a:not(:last-child) {
		margin: 0 0 10px 0;
	}
	body.news div.gallery a img {
		aspect-ratio: unset;
		height: 240px;
	}
}

/* br */
br.pc-none {
	display: none;
}
@media screen and (max-width: 450px) {
	br.pc-none {
		display: block;
	}
}

