/*
Thin 100 / ExtraLight 200 / Light 300 / Regular 400
Medium 500 / SemiBold 600 / Bold 700 / Black 900 
*/

/*------------------------------------------------------------
	デフォルトスタイル
------------------------------------------------------------*/

.josefin {
  font-family: "Josefin Sans", sans-serif;
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	outline: 0;
	font-size: 1em;
}
table {
    border-collapse: collapse;
}
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
	display: block;
}
ol, ul {
	list-style: none;
}
img {
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
}
a, a:link {
    color: #000;
    text-decoration: none;
}
a:visited {
	color: #000;
}
a.button, a.button:link {
	color: #000;
	text-decoration: none;
}
a,a:hover {
	text-decoration: none;
	cursor: pointer;
	transition: all .3s ease 0s;
}
a:hover img {
	filter: alpha(opacity=75);
	-moz-opacity: 0.75;
	opacity: 0.75;
}
a img {
	-webkit-transition: opacity 0.3s ease-out;
	-moz-transition: opacity 0.3s ease-out;
	-ms-transition: opacity 0.3s ease-out;
	transition: opacity 0.3s ease-out;
}
a:active {
    color: #000;
}
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 768px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
}
.pc_on {
  display: inline !important;
}
@media screen and (max-width: 768px) {
  .pc_on {
    display: none !important;
  }
}

.pc_on_block {
  display: block !important;
}
@media screen and (max-width: 768px) {
  .pc_on_block {
    display: none !important;
  }
}

.sp_on {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .sp_on {
    display: inline !important;
  }
}

.sp_on_block {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .sp_on_block {
    display: block !important;
  }
}

.sp_on_block800 {
  display: none !important;
}
@media screen and (max-width: 800px) {
  .sp_on_block800 {
    display: block !important;
  }
}

.sp_on_block620 {
  display: none !important;
}
@media screen and (max-width: 620px) {
  .sp_on_block620 {
    display: block !important;
  }
}

p {
  font-size: 1.6rem;
  line-height: 1.875;
  font-weight: 400;
  letter-spacing: 0;
  color: #000;
}
/*------------------------------------------------------------
	レイアウト
------------------------------------------------------------*/
html {
	font-size: 10px;
	width: 100%;
}
body {
	font-family: "Noto Sans JP", sans-serif;
	width: 100%;
	color: #494037;
	font-size: 14px;
	font-size: 1.4rem;
	line-height: 2.0;
	letter-spacing: 0;
	text-size-adjust: 100%;
	position: relative;
	font-weight: 400;
}
body, table, input, textarea, select, option {
    font-weight: 400;
    position: relative;
    width: 100%;
}
#wrap {
  overflow: hidden;
}
/*------------------------------------------------------------
	ヘッダー
------------------------------------------------------------*/
#header {
	width: 100%;
}
.header_inner {
  width: 1200px;
  height: 55px;
  max-width: 90%;
  margin: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
h1.logo {
  width: 160px;
}
.btn_lineup_header {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 185px;
  height: 50px;
  background: url("../images/gra_bg1.png") no-repeat 100% 100%/185px auto;
  margin-right: 10px;
}
.btn_lineup_header a {
  font-size: 1.2rem;
  font-weight: 400;
  color: #fff;
  padding-bottom: 2px;
}
.header_right {
  display: flex;
}
ul.header_sns {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
ul.header_sns li {
  margin: 0 5px;
}
ul.header_sns li img {
  width: 30px;
}
.fv_area {
  background: url("../images/fv_bg.webp") no-repeat;
  background-size: cover;
  background-position: 86% 100%;
  height: 1180px;
  position: relative;
}
.fv_area_inner {
  width: 1200px;
  max-width: 90%;
  margin: auto;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  padding: 167px 0 121px;
}
.fv_copy1 {
  font-size: 2.7rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 5px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border: solid 1px #686b6e;
  padding: 4px 25px 5px 31px;
  color: #686b6e;
  margin-bottom: 40px;
}
.fv_copy2 {
  background: #fff;
  font-size: 8.2rem;
  color: #686b6e;
  line-height: 1.1;
  padding: 0 9px 4px;
  margin-bottom: 24px;
  letter-spacing: 2px;
}
.fv_copy3 {
  background: #fff;
  font-size: 8.2rem;
  color: #686b6e;
  line-height: 1.1;
  padding: 0 9px 4px;
  margin-bottom: 20px;
  letter-spacing: 2px;
}
.fv_copy4 {
  font-size: 2.4rem;
  font-family: "Josefin Sans", sans-serif;
  color: #686b6e;
  margin-bottom: 53px;
  margin-left: 8px;
  letter-spacing: 2.4px;
}
.btn_lineup_fv {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 510px;
  height: 90px;
  background: url("../images/gra_bg2.png") no-repeat 100% 100%/510px auto;
  margin-left: -14px;
}
.btn_lineup_fv a {
  font-size: 2.2rem;
  font-weight: 400;
  color: #fff;
  padding-bottom: 2px;
  letter-spacing: 2.6px;
}
.nichinoken_kansai img {
  width: 100%;
}
.nichinoken_kansai {
	width: 100%;
	padding: 0 4px;
	position: absolute;
	right: 50%;
	top: 70%;
	transform: translateX(50%);
}
.ttl_commitment {
  font-size: 6.4rem;
  font-family: "Josefin Sans", sans-serif;
  font-weight: 200;
  color: #becce7;
  text-align: center;
  line-height: 1;
  position: absolute;
  right: 49.5%;
  bottom: 96px;
  transform: translateX(50%);
  letter-spacing: 7px;
}
.txt_commitment {
  font-size: 3.1rem;
  color: #285ae6;
  text-align: center;
  line-height: 1;
  position: absolute;
  right: 49.5%;
  bottom: 54px;
  transform: translateX(50%);
  font-weight: 600;
  letter-spacing: 6px;
}
.concept_area_inner {
  display: flex;
}
.ttl_concept_area {
  width: 45%;;
  height: 740px;
  background: url("../images/concept_bg_left.jpg") no-repeat center center/cover;
  display: flex;
  align-items: center;
  position: relative;
}
.txt_concept_area {
	width: 55%;
	height: 740px;
	background: url("../images/concept_bg_right.jpg") no-repeat center center/cover;
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	justify-content: center;
}
.ttl_concept_area img {
	width: 220px;
	margin: 0 18% 0 auto;
	display: block;
}
.txt_concept_area p {
  color: #fff;
  line-height: 2.722;
  margin: 0 auto 30px 9%;
  padding-right: 9%;
  font-size: 1.8rem;
  letter-spacing: 2px;
}
.txt_concept_area p:first-child {
  border-bottom: solid 1px #fff;
  padding-bottom: 30px;
}
.program_lineup {
  background: #eef4f7;
}
.ttl_program_lineup p {
  font-family: "Josefin Sans", sans-serif;
  color: #becce7;
  font-size: 6.4rem;
  font-weight: 200;
  text-align: center;
  padding: 135px 0 0;
  line-height: 1.3;
  letter-spacing: 8px;
}
.ttl_program_lineup h3 {
  color: #285ae6;
  font-size: 3.2rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.5;
  letter-spacing: 4px;
}
.program_lineup_lead {
  background: url("../images/program_lineup_bg.png") no-repeat top center/1920px auto;
  padding-bottom: 164px;
}
@media screen and (min-width: 1920px) {
.program_lineup_lead {
  background-position: top left;
}
}
.program_lineup_txt {
  width: 1100px;
  max-width: 90%;
  margin: 175px auto 0;
}
.program_lineup_txt h3 {
	background: #fff;
	font-size: 5.1rem;
	color: #686b6e;
	line-height: 1.1;
	padding: 0 9px 4px;
	margin-bottom: 37px;
	letter-spacing: 0;
  font-weight: 400;
  display: inline-block;
}
.program_lineup_txt p {
  font-size: 1.8rem;
  line-height: 2.1;
  margin-top: 19px;
}
.ttl_program_table h3 {
  text-align: center;
  font-size: 3.1rem;
  line-height: 1.8;
  color: #285ae6;
  font-weight: 500;
  margin-bottom: 30px;
  letter-spacing: 5px;
}
.program_table {
  width: 100%;
  max-width: 1637px;
  margin: auto;
}
.grid_bg:before {
  content: "";
  background: url("../images/lineup_bt.png") no-repeat 0 0/contain;
  position: absolute;
  left: 50%;
	top: -1px;
	transform: translateX(-50%);
  width: 180px;
  height: 88px;
}
.grid_bg {
	margin: auto;
	position: relative;
	width: 100%;
	height: 100%;
	background-size: 30px 30px;
	background-position: 50% 0%;
	background-image: repeating-linear-gradient( 90deg, #f2f7fa , #f2f7fa 1px, transparent 1px, transparent 30px),repeating-linear-gradient( 0deg, #f2f7fa , #f2f7fa 1px, #fff 1px, #fff 30px);
	border: solid 1px #f2f7fa;
  padding: 152px 0 87px;
}
h3.ttl_grid {
  font-size: 3.2rem;
  color: #285ae6;
  text-align: center;
  margin-bottom: 28px;
  letter-spacing: 2px;
}
.ttl_recruit {
  margin-bottom: 51px;
}
.ttl_recruit p {
	font-family: "Josefin Sans", sans-serif;
	color: #becce7;
	font-size: 6.4rem;
	font-weight: 200;
	text-align: center;
	padding: 59px 0 0;
	line-height: 1.1;
	letter-spacing: 8px;
}
.ttl_recruit h3 {
	color: #00b9ac;
	font-size: 3.2rem;
	font-weight: 600;
	text-align: center;
	line-height: 1.5;
	letter-spacing: 4px;
}
.other_bnr {
  margin-top: 113px;
}
.banner {
  background: linear-gradient(
    60deg,
    #c40099 0%,
    #f61d66 67.9%,
    #f41c68 100%
  );
  box-shadow:
    0 0 10px rgba(173, 100, 168, 0.35),
    0 0 24px rgba(173, 100, 168, 0.18);
  border-radius: 30px;
  width: 804px;
  max-width: 90%;
  min-height: 230px;
  margin: auto;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  margin-bottom: 60px;
}

.banner__logo {
  width: 253px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.banner__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 50px 40px 44px;
}
.banner__body2 {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 30px 40px 21px;
}
.banner__body3 {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 38px 29px 21px 12px;
}
.banner__logo img {
  max-width: 250px;
  max-height: 100%;
  display: block;
}
.banner__ttl {
  padding-bottom: 22px;
  margin-bottom: 20px;
  border-bottom: solid 1px #fff;
  display: flex;
  justify-content: space-between;
}
.banner__ttl h3 {
  font-size: 2.6rem;
  font-size: clamp(1.8rem, 2.6vw, 2.6rem);
  font-weight: 400;
  line-height: 1.3;
  color: #fff;
}
.banner__ttl span {
  font-size: 2.0rem;
  font-size: clamp(1.8rem, 2.0vw, 2.0rem);
  font-weight: 400;
  color: #fff;
}
.banner__ttl2 {
  padding-bottom: 7px;
  margin-bottom: 16px;
  border-bottom: solid 1px #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.banner__ttl2 h3 {
  font-size: 2.6rem;
  font-size: clamp(1.8rem, 2.6vw, 2.6rem);
  font-weight: 400;
  line-height: 1.3;
  color: #fff;
}
.banner__ttl2 span {
  font-size: 2.0rem;
  font-size: clamp(1.8rem, 2.0vw, 2.0rem);
  font-weight: 400;
  color: #fff;
}
.banner__txt {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.75;
  color: #fff;
}

.banner2 {
  background: linear-gradient(
  60deg,
  #1b00d0 0%,
  #2e7bd7 67.7%
  );
  box-shadow:
    0 0 10px rgba(173, 100, 168, 0.35),
    0 0 24px rgba(173, 100, 168, 0.18);
  border-radius: 30px;
  width: 804px;
  max-width: 90%;
  min-height: 230px;
  margin: auto;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  margin-bottom: 69px;
}

.banner3 {
  background: linear-gradient(
  60deg,
  #00bcff 0%,
  #00b9b0 67.7%,
  #00b9b0 100%
  );
  box-shadow:
    0 0 10px rgba(173, 100, 168, 0.35),
    0 0 24px rgba(173, 100, 168, 0.18);
  border-radius: 30px;
  width: 804px;
  max-width: 90%;
  min-height: 230px;
  margin: auto;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  margin-bottom: 60px;
}
.banner__logo2 {
  width: 330px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 20px;
}
.banner__logo2 img {
  width: 331px;
  max-width: 100%;
  max-height: 100%;
  display: block;
}
.banner__ttl3 {
  padding: 12px;
  margin-bottom: 16px;
  border: solid 1px #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.banner__ttl3 h3 {
  font-size: 2.6rem;
  font-size: clamp(1.8rem, 2.6vw, 2.6rem);
  font-weight: 400;
  line-height: 1.3;
  color: #fff;
}
.banner__txt3 {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.75;
  color: #fff;
  text-align: center;
  letter-spacing: 3px;
}
.footer_bottom {
  width: 1200px;
  max-width: 90%;
  margin: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 25px 0;
}
.footer_right {
  display: flex;
}
.footer_right p {
  font-size: 1.5rem;
  margin-right: 14px;
}
ul.footer_sns {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
ul.footer_sns li {
  margin: 0 5px;
}
ul.footer_sns li img {
  width: 30px;
}
.footer_logo {
  width: 160px;
}


@media screen and (max-width: 1300px) {
.fv_copy2, .fv_copy3 {
	font-size: clamp(5rem, 6vw, 8.2rem);
}
.program_lineup_txt h3 {
	font-size: clamp(3rem, 4vw, 5.1rem);
  margin-bottom: clamp(18px, 2.8vw, 37px);
}
.grid_bg::before {
	width: clamp(120px, 18vw, 180px);
	height: clamp(58px, 8.8vw, 88px);
}
.grid_bg {
	padding:
		clamp(80px, 12vw, 152px)
		0
		clamp(48px, 7vw, 87px);
}
}

@media screen and (max-width: 1170px) {
.program_lineup_lead {
	background: url("../images/program_lineup_bg.png") no-repeat top 0 right 45%/1920px auto;
}
}
@media screen and (max-width: 1150px) {
.program_lineup_lead {
  background: url("../images/program_lineup_bg.png") no-repeat top 0 right 45%/cover;
}
}

@media screen and (max-width: 1000px) {
.fv_area_inner {
	padding: 30px 0 100px;
}
.fv_area {
  background: url("../images/fv_bg.webp") no-repeat;
  background-position: 75% 150%;
  background-size: cover;
}
.fv_copy4 {
	font-size: 2rem;
}
.fv_copy1 {
  font-size: clamp(1.4rem, 2.7vw, 2.7rem);
}
.fv_copy4 {
  font-size: clamp(1.4rem, 2vw, 2rem);
}
.btn_lineup_fv a {
  font-size: clamp(1.7rem, 2.2vw, 2.2rem);
}
.ttl_commitment, .ttl_program_lineup p, .ttl_recruit p {
  font-size: clamp(3.4rem, 6vw, 6.4rem);
}
.txt_commitment, .ttl_program_lineup h3, .ttl_recruit h3 {
  font-size: clamp(1.8rem, 3vw, 3.1rem);
}
.ttl_program_table h3 {
	letter-spacing: clamp(0px, 0.5vw, 5px);
	font-size: clamp(2rem, 3vw, 3.1rem);
}
h3.ttl_grid {
	font-size: clamp(2rem, 3vw, 3.2rem);
}
.program_lineup_txt p {
	font-size: clamp(1.6rem, 1.8vw, 1.8rem);
	text-shadow: 0 0 6px rgba(255,255,255,.6);
}
.banner__txt3 {
	font-size: clamp(1.6rem, 1.8vw, 1.8rem);
}
.ttl_recruit p {
	padding: 0 0 0;
}
.ttl_recruit p, .ttl_program_lineup p, .ttl_commitment {
  letter-spacing: clamp(0px, 0.8vw, 8px);
}
.ttl_recruit {
	margin-bottom: 40px;
	margin-top: 80px;
}
}/*1000px*/


@media screen and (max-width: 900px) {
.concept_area_inner {
	flex-wrap: wrap;
}
.ttl_concept_area {
	width: 100%;
	height: auto;
	padding: 70px 0;
}
.txt_concept_area {
	width: 100%;
	height: auto;
}
.ttl_concept_area img {
	width: 120px;
	margin: auto;
	display: block;
}
.txt_concept_area p {
	line-height: 1.75;
	margin: 0 auto;
	padding-right: 0;
	letter-spacing: 1px;
	padding: 70px 0;
  width: 350px;
}
.ttl_program_lineup p {
	padding: 40px 0 0;
}
.program_lineup_txt {
	margin: 40px auto 0;
}
}/*900px*/


@media screen and (max-width: 800px) {
.program_lineup_lead {
  background: none;
  padding-bottom: 0;
}
}/*800px*/








