@charset "UTF-8";

.indexwrapper{
  overflow:hidden;
  width:100%;
  position: relative;
  padding-bottom: 60px;
}

.indexwrapper + footer{
  margin-top: 0;
}

/* header */

header{
  position: relative;
  z-index:1000;
}

nav ul{
  gap:10px;
}

.nav-item{
  letter-spacing: 0.05em;
  padding:0;
}

nav .nav-item:first-of-type{
	margin-left:-20px;
}

.nav-item > a{
  display: block;
  position: relative;
  padding:10px 20px;
  font-size: 17px;
}

.submenu li{
  padding:5px 20px;
  font-size: 13px;
}

.submenu li a{font-weight: 400;}

.contact-btns{
	display:flex;
	gap:5px;
	margin-left:23px;
}

.contact-button {
  display:block;
  width:130px;
  height:33px;
  padding:0;
  line-height:33px;
  text-align:center;
  font-size: 15px;
  font-weight:500;
  letter-spacing: 0.06em;
  border:#f88471 1px solid;
}

.contact-button:last-of-type {
	background-color:#fff;
	color:#f88471;
	letter-spacing:0;
}

.nav-item > a::after{
  content: '';
	position:absolute;
	right: 0;
	top: 50%;
	width: 6px;
	height:  6px;
	border-right: 1px solid #333;
	border-bottom: 1px solid #333;
	transform: translate(0, -50%) rotate(45deg);
}


/* common bg */

.pink-box{
  width:78vw;
  height:47.5vw;
}

.blue-box{
  top:49vw;
  width:18vw;
  height:34vw;
}


/* indexkv */

.indexkv{
  position: relative;
  height:50vw;
  overflow: hidden;
}

.indexkv-img-01{
  overflow: hidden;
  position: absolute;
  left:0;
  top:0px;
  width:47vw;
  height:31vw;
  border-radius: 0 100px 0 0;
}

.indexkv-img-02{
  overflow: hidden;
  position: absolute;
  right:0;
  top:6vw;
  width:37vw;
  height:34vw;
  border-radius: 0 0 0 100px;
}

.indexkv-img-03{
  overflow: hidden;
  position: absolute;
  left:3vw;
  top:34vw;
  width:20vw;
  height:14vw;
  border-radius: 0 0 160px 0;
}

.indexkv-img-04{
  overflow: hidden;
  position: absolute;
  left:26vw;
  top:34vw;
  width:32vw;
  height:14vw;
  border-radius: 160px 0 160px 0;
}

.indexkv-img-01 img,
.indexkv-img-02 img,
.indexkv-img-03 img,
.indexkv-img-04 img{
  width:100%;
  height:100%;
  object-fit: cover;
}

.indexkv-title{
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 2.6vw;
  color: #666666;
  font-weight: 300;
  text-align: center;
  position: relative;
  letter-spacing: 0.21em;
  z-index: 1;
  line-height: 1.5;
  max-width: 100%;
  height: auto;
  position: absolute;
  left:54.5vw;
  top:8vw;
  transform: translate(-50%,0);  
}


/* indexnews */

.news{
  margin-bottom: 50px;
  display: block;
  position: relative;
}

.news-image{
  position: absolute;
  right: 40px;
  top: -6vw;
  overflow: hidden;
  width: 22vw;
  height: 400px;
  border-radius: 0 0 0 160px;
  max-width: 100%;
  margin: 0;
}

.news-image img {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;
  object-fit: cover;
}

.news-text{
  padding: 60px 60px 60px;
  box-sizing: border-box;
  width:71vw;
}
.news-text h2{
  font-size: 1.8em;
  margin:0 0 15px 0;
}

.news-text ul{
  padding:0;
  margin:0;
}

.news-text li {
  margin-bottom: 20px;
  font-size: 1.1em;
}
.news-text li:last-child{margin-bottom: 0;}

.news-text li a{
  color: #333;
  font-weight: bold;
  display: flex;
	gap: 10px;
}

.news-text li a strong{
  width:95px;
}

.news-text li a span{
  flex:1;
  overflow:hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.news .green-box{
  height:100%;
  margin-left:0;
  border-radius: 0 15px 15px 0px;
  width:71vw;
}

/* indexabout */

.about{
  position: relative;
  padding:100px 80px 100px 0;
}

.about::after{
	display:block;
	content:'';
	background:#fafafa;
	width:100%;
	height:100%;
	position:absolute;
  left:0;
  top:0;
  border-radius: 160px 0 0 0;
}

.about-inner{
  position: relative;
  z-index: 2;
}

.about h2{
  font-size: 2em;
  letter-spacing: 0.1em;
  margin:0 0 70px;
}

.artlife-container{
  gap:80px;
}

.artlife-image{
  width:47%;
  overflow: hidden;
  border-radius: 0 0 160px 0;
}

.artlife-image img{
  width:100%;
  height:100%;
  object-fit: cover;
}

.artlife-content{
  flex:1;
  padding:0;
}

.artlife-content h3{
  margin:0 0 40px;
  font-weight: 400;
  line-height: 1.8;
  font-size: 22px;
  letter-spacing: 0.1em;
}

.artlife-content p{
  font-size: 17px;
  line-height: 2;
  margin-bottom: 40px;
}

.detail-button {
  background-color: #f88471;
  color: #ffffff;
  padding: 13px 33px;
  border-radius: 30px;
  text-decoration: none;
  display: inline-block;
  font-size: 17px;
  font-weight: normal;
  letter-spacing: 0.1em;
  position: relative;
}

.detail-button::after{
  content: '';
	position:absolute;
	right: 15px;;
	top: 50%;
	width: 6px;
	height:  6px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: translate(0, -50%) rotate(45deg);
}


/* indexbusiness */

.business-section{
  padding:100px 50px;
}

.business-section h2{
  font-size: 2em;
  letter-spacing: 0.1em;
  margin:0 0 70px;
}

.business-grid{
  display: block;
  max-width:1100px;
  margin:0 auto;
  padding:100px 0 0 0;
}

.facility-box{
  display: block;
  position: relative;
  padding:0;
  border-radius: 0;
  margin-bottom: 150px;
}

.facility-box .facility-h3{
  padding:3px 5px 3px 10px;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing:0.2em;
  margin:0 0 40px 0;
  box-sizing: border-box;
  height:auto;
}

.facility-image img{
  width:100%;
  height:auto;
}

.facility-text{
  width:35%;
  min-width:0;
  padding:0;
}

.facility-text p{
  font-size: 17px;
  line-height: 1.9;
  margin-bottom: 40px;
  letter-spacing: 0.1em;
}

.facility-image{
  position: absolute;
  right:0;
  top:-100px;
  width:58%;
}

.facility-image.image-01{aspect-ratio: 640/464;}
.facility-image.image-02{aspect-ratio: 640/244;}
.facility-image.image-03{aspect-ratio: 640/232;}

.facility-image-item {
  position: absolute;
  overflow: hidden;
}

.facility-image.image-01 .facility-image-item:first-of-type{
  top: 0;
  left: 0;
  width: calc(336 / 640 * 100%);
  aspect-ratio: 336/437;
  border-radius: min(calc(50 / 1200 * 100vw), 50px) 0 0 min(calc(50 / 1200 * 100vw), 50px);
}

.facility-image.image-01 .facility-image-item:nth-of-type(2){
  top: 10.7%;
  right: 5.4%;
  width: calc(256 / 640 * 100%);
  aspect-ratio: 256/192;
  border-radius: min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px) 0 0;
}

.facility-image.image-01 .facility-image-item:nth-of-type(3){
  bottom: 2.2%;
  left: 7.4%;
  width: calc(289 / 640 * 100%);
  aspect-ratio: 289/198;
  border-radius: 0 0 min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px);
}

.facility-image.image-01 .facility-image-item:nth-of-type(4){
  bottom: 0;
  right: 0;
  width: calc(291 / 640 * 100%);
  aspect-ratio: 291/208;
  border-radius: 0 min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px) 0;
}

.facility-image.image-02 .facility-image-item:first-of-type{
  bottom: 0;
  left: 5.4%;
  width: calc(336 / 640 * 100%);
  aspect-ratio: 336/242;
  border-radius: min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px) 0 min(calc(50 / 1200 * 100vw), 50px);
}

.facility-image.image-02 .facility-image-item:nth-of-type(2){
  bottom: 0;
  right: 0;
  width: calc(256 / 640 * 100%);
  aspect-ratio: 256/192;
  border-radius: min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px) 0;
}

.facility-image.image-03 .facility-image-item:first-of-type{
  bottom: 0;
  left: 5.4%;
  width: calc(306 / 640 * 100%);
  aspect-ratio: 306/232;
  border-radius: min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px) 0 min(calc(50 / 1200 * 100vw), 50px);
}

.facility-image.image-03 .facility-image-item:nth-of-type(2){
  bottom: 0;
  right: 0;
  width: calc(286 / 640 * 100%);
  aspect-ratio: 286/182;
  border-radius: min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px) min(calc(50 / 1200 * 100vw), 50px) 0;
}

.facility-image img{
  width:100%;
  height:auto;
  border-radius: 0;
}

.facility-button {
  padding: 12px 35px;
  position: relative;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  display: inline-block;
}

.facility-button::after{
  content: '';
	position:absolute;
	right: 15px;;
	top: 50%;
	width: 6px;
	height:  6px;
	border-top: 1px solid #f88471;
	border-right: 1px solid #f88471;
	transform: translate(0, -50%) rotate(45deg);
}


/* indexrecruit */

.recruit{
  padding:0 0 0 160px;
}

.recruit-content{
  width:100%;
  border-radius: 160px 0 0 0;
  flex-direction: row-reverse;
  height:100%;
}

.recruit-left{
  width: 50%;
  box-sizing: border-box;
  padding:160px 50px 80px 120px;
}

.recruit-left .subtitle{
  font-size: 15px;
  letter-spacing: 0.1em;
}

.recruit-left h2 {
  font-size: 2.1em;
  color: #666666;
  margin: 20px 0 50px 0;
  font-weight: normal;
  letter-spacing: 0.15em;
}

.recruit-left p {
  margin-bottom: 40px;
  line-height: 2;
  font-size: 17px;
  max-width: 400px;
}

.recruit-button {
  background-color: #f88471;
  color: #ffffff;
  padding: 13px 33px;
  border-radius: 30px;
  text-decoration: none;
  display: inline-block;
  font-size: 17px;
  font-weight: normal;
  letter-spacing: 0.1em;
  position: relative;
}

.recruit-button::after{
  content: '';
	position:absolute;
	right: 15px;;
	top: 50%;
	width: 6px;
	height:  6px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: translate(0, -50%) rotate(45deg);
}

.recruit-right{
  overflow: hidden;
  border-radius: 0 0 0 160px;;
}

.recruit-right img{
  width:100%;
  height:100%;
  object-fit: cover;
}

.recruit-requirements-entry{
  margin:50px 0 0;
}


/* indexinterview */

.interview-section {
  padding:100px 0px 0;
}

.interview-section-title{
  padding:0 50px;
  margin-bottom: 60px;
}

.interview-section-title-inner{
  max-width:1100px;
  margin:0 auto;
}

.interview-section .subtitle{
  font-size: 14px;
  font-weight: bold;
  display: block;
  margin-bottom: 5px;
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.interview-section h2{
  font-size: 3.5em;
  letter-spacing: 0.15em;
  margin:0;  
}

#interviewslider{
  overflow: hidden;
  padding-bottom: 10px; 
}

.indexinterview-slider-slide{

}

.indexinterview-slider-slide-inner{
}

.indexinterview-slider-slide-inner a{
  display: block;
  position: relative;
}

.indexinterview-slider-slide-inner .side-img{
  width:calc(100% - 40px);
  height:350px;
  overflow: hidden;
  display: block;
}

.indexinterview-slider-slide-inner .side-img img{
  width:100%;
  height:100%;
  object-fit: cover;
  border-radius: 0;
  max-width:100%;
}

.interview-line {
  position: absolute;
  left:auto;
  right: 10px;
  top: 0;
  background: #42bdf2;
  width: 1px;
  height: 70px;
}


.side-txt.is-user .interview-line{
  background: #00ccb2;
}

.side-txt.is-user .interview-syubetsu{
  color: #00ccb2;
}

.interview-syubetsu {
  position: absolute;
  left: auto;
  right: 0;
  top: 80px;
  writing-mode: sideways-rl;
  text-orientation: upright;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0.5em;
  color: #42bdf2;
}

.interview-syubetsu.is-user{
  color: #00ccb2;
}


.interview-info{
  margin-top: 8px;
}

.interview-info-place{
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin:0 0 8px 0
}

.interview-info-staff{
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin:0;
}

.interview-info-staff .categorytag{
  border: 1px solid #42bdf2;
  color:#42bdf2;
  line-height: 1;
  font-size: 14px;
  padding:0px 5px;
}

.interview-info-staff .categorytag.is-user{
  border: 1px solid #ACD8CC;
  color:#ACD8CC;
}

.interview-info-staff .categorytag.is-staff{
  border: 1px solid #42bdf2;
  color:#42bdf2;
}

.swiper-slide{}


/* footer */

footer{
  margin:130px 0 0;
  position: relative;
  padding-top:80px;
  position: relative;
  z-index:2;
}

.footer-inner{
  position: relative;
  margin:0 auto;
  max-width:1280px;
}

.footer-sns{
  position: absolute;
  left:0px;
  top:-110px;
}

.sns{
  margin:0;
}

.sns__icons{
  gap:12px;
  margin:0;
}

.company-left{
  width: 380px;
  flex: none;
}

.company-left ul{
  margin:0;
  padding:0;
}

.company-left p{
  font-size: 14px;
  letter-spacing: 0.1em;
  margin:0;
}

.company-right{
  display: block;
  padding:20px 0px;
  min-height:0;
}

.company-contact{
  display: flex;
	align-items: center;
	flex-wrap: wrap;
  justify-content:center;
  gap:0 42px;
}

.company-contact-tel{
  text-align: center;
  color:#fb907b;
  line-height: 1.1;
  /*width:49%;*/
  padding:20px 0;
}

.company-contact-tel a{
  display: block;
  font-size: 23px;
  letter-spacing: 0.1em;
}

.company-contact-term{
  font-size: 12px;
  margin-top: 7px;
  letter-spacing: 0.05em;
}

.company-contact-btn{
  display:flex;
  gap:5px;
  text-align: center;
  border-left: 1px solid #ccc;
  padding:20px 0 20px 42px;
}

.footer-contact-button{
  background-color: #f88471;
  color: #ffffff;
  border-radius: 40px;
  text-decoration: none;
  font-weight: 500;
  letter-spacing: 0;
  font-size: 15px;
  width:164px;
  display: flex;
	justify-content: center;
	align-items: center;
  gap:5px;
  height:46px;
  margin:0 auto;

}

.footer-contact-button::before{
	content:'';
	display: inline-block;
	vertical-align: middle;
	background: url('../img/common/mail-white.png') 0 0 no-repeat;
  background-size: 100%;
	width:25px;
	height:19px;
}

.footer-column{
  flex:none;
  min-width:175px;
}
.footer-column:nth-child(4){
  width:150px;
}

.footer-column-empty{
  height:38px;
}

.footer-bottom{
  text-align:left;
  margin:0;
  padding:5px 40px;
}

.footer-bottom p{
  max-width:1280px;
  margin:0 auto;
  font-size: 12px;
  line-height: 1.5;
}


/* 下層 */

.pageheader{

}
.pageheader-left h2 {
  width: calc(100% - 197px);
}


/* news */

.news-top{
  padding:100px 40px 0;
  position: relative;
  z-index:2;
}

.news-top-container{
  max-width:1100px;
  min-height:300px;
  margin:0 auto;
  background: #fff;
  padding:50px;
}

.news-top img{
  max-width:100%;
  margin:0 auto;
  display: block;
  margin-bottom: 20px;
}

.news-block{}

.news-list{
  padding:0;
  list-style:none;
  margin:0
}

.news-list li{
  margin:0 0 20px;
  font-size:16px;
  padding:0;
  list-style:none;
}

.news-list li a{
}

.news-list-body{
  color: #333;
  font-weight: bold;
  display: flex;
  gap: 10px;
}

.news-list-date{
  color: #00ccb2;
  width: 95px;
}

.news-list-title{
  flex: 1;
  margin:0;
}

.news-detail{
  padding:100px 40px 0;
  position: relative;
  z-index:2;
}

.news-detail-container{
  max-width:1100px;
  min-height:300px;
  margin:0 auto;
  background: #fff;
  padding:50px;
}

.news-detail img{
  max-width:100%;
  margin:0 auto;
  display: block;
  margin-bottom: 20px;
}



.news-back-button-top,
.news-back-button-bottom {
    margin: 30px 0;
}

.news-back-button-top {
    margin-bottom: 40px;
}

.news-back-button-bottom {
    text-align: center;
}

/* 戻るボタン */
.news-back-btn {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    background: #ffffff;
    color: #00ccb2;
    text-decoration: none;
    border: 2px solid #00ccb2;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    transition: all 0.3s ease;
    gap: 8px;
}

.news-back-btn:hover {
    background: #00ccb2;
    color: #ffffff;
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 204, 178, 0.25);
}

.news-back-btn .back-arrow {
    font-size: 16px;
    font-weight: bold;
    transition: transform 0.3s ease;
}

.news-back-btn:hover .back-arrow {
    transform: translateX(-3px);
}


.news-detail-header {
  margin: 20px 0 30px;
  padding-bottom: 20px;
  border-bottom: 2px solid #00ccb2;
}

.news-detail-date {
  color: #666666;
  font-size: 14px;
  margin-bottom: 10px;
  font-weight: 500;
}

.news-detail-title {
  color: #333333;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0;
}

/* アイキャッチ画像 */
.news-detail-image {
  margin: 30px 0;
  text-align: center;
}

.news-detail-image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* 記事内容 */
.news-detail-content {
  line-height: 1.8;
  color: #333333;
  font-size: 16px;
  border-top: 1px solid #e0e0e0;
  margin-bottom: 50px;
  padding-bottom: 30px;
}

.news-detail-content p {
  margin-bottom: 1.5em;
}

.news-detail-content h1,
.news-detail-content h2,
.news-detail-content h3,
.news-detail-content h4,
.news-detail-content h5,
.news-detail-content h6 {
  color: #333333;
  margin: 2em 0 1em;
  line-height: 1.4;
}

.news-detail-content h2 {
  font-size: 20px;
  border-left: 4px solid #00ccb2;
  padding-left: 12px;
}

.news-detail-content h3 {
  font-size: 18px;
  color: #00ccb2;
}

.news-detail-content ul,
.news-detail-content ol {
  margin: 1.5em 0;
  padding-left: 2em;
}

.news-detail-content li {
  margin-bottom: 0.5em;
}

.news-detail-content blockquote {
  margin: 2em 0;
  padding: 1em 1.5em;
  background: #f8f9fa;
  border-left: 4px solid #00ccb2;
  font-style: italic;
}

.news-detail-content img {
  max-width: 100%;
  height: auto;
  margin: 1.5em 0;
  border-radius: 4px;
}

.pagination {
  margin: 60px 0 40px;
  text-align: center;
  clear: both;
}

.pagination .page-numbers {
  display: inline-block;
  min-width: 40px;
  height: 40px;
  line-height: 38px;
  margin: 0 4px;
  padding: 0 8px;
  background: #ffffff;
  color: #333333;
  text-decoration: none;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

/* ホバー効果 */
.pagination .page-numbers:hover {
  background: #f8f9fa;
  border-color: #00ccb2;
  color: #00ccb2;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 124, 186, 0.15);
}

/* 現在のページ */
.pagination .page-numbers.current {
  background: #00ccb2;
  color: #ffffff;
  border-color: #00ccb2;
  cursor: default;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0, 124, 186, 0.25);
}

.pagination .page-numbers.current:hover {
  transform: none;
  background: #00ccb2;
  color: #ffffff;
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next {
  min-width: 60px;
  font-weight: 600;
  padding: 0 12px;
}

.pagination .page-numbers.prev:hover,
.pagination .page-numbers.next:hover {
  background: #00ccb2;
  color: #ffffff;
  border-color: #00ccb2;
}

.pagination .page-numbers.dots {
  border: none;
  background: none;
  color: #999999;
  cursor: default;
  font-weight: 600;
}

.pagination .page-numbers.dots:hover {
  background: none;
  color: #999999;
  transform: none;
  box-shadow: none;
}

.animation{
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.9s ease;
  visibility: hidden;
}

.animation.on{
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}



/* recruit */
.recruit-job-list{
	width:100%;
	max-width:350px;
}
.recruit-job-list h4{
	margin:20px 0 10px;
	text-align:left;
}
.recruit-job-list p{
	margin:0 0 7px;
	text-align:left;
}
.recruit-job-list a{
  display: block;
  position: relative;
  color:#fb907b;
}

.recruit-job-list a::before{
	content:'';
	display: inline-block;
	vertical-align: middle;
	margin-right: 10px;
	background: url('../img/common/fm-btn.png') 0 0 no-repeat;
	width:14px;
	height:14px;
  position: relative;
  top:-2px;
}







@media all and (max-width: 1320px) {
	.company-contact{
		flex-direction:column;
	}
	.company-contact-btn{
		border:none;
	}
	.company-contact-tel{
		padding:20px 0 0 0;
	}
	.company-contact-btn{
		width:330px;
		flex-wrap:wrap;
		padding:20px 0;
	}
	.footer-contact-button{
		width:240px;
	}
}



@media all and (maxwidth: 1200px) and (min-width: 901px) {

  .footer-container{
    justify-content:flex-start
  }

  .footer-column,
  .footer-column:nth-child(4){
    width:30%;
  }

}

@media all and (max-width: 1100px) and (min-width: 901px) {

  .header-container{
    padding:30px 20px;
  }

  .logo{padding:0;}
  .logo img{width:220px;}

  /*.nav-item > a{
    padding:10px 17px;
    font-size: 15px;
  }

  .contact-button {
    padding: 8px 29px;
    font-size: 15px;
  }*/


}



@media (max-width: 900px) {


  /* sp global navi */

  .header-container{
    padding:10px;
    display:block;
  }

  .logo{padding:0;}

  .logo img{width:200px;}

  .nav-menu{
    width:100%;
    height:100vh;
    height:100dvh;
    box-siziing:border-box;
    position:fixed;
  }

  .nav-contact{display: none;}

  .hamburger{
    z-index:1110;
    height: 30px;
  }
  
  .hamburger span{width:35px;}

  .hamburger span:nth-child(1){
    position: absolute;
    left:0;
    top:10px;
  }

  .hamburger span:nth-child(2){
    position: absolute;
    left:0;
    top:20px;
  }

  .hamburger.active span{
    background: #000;
    width:35px;
  }

  .hamburger.active span:nth-child(1){
    transform: rotate(45deg) translate(0px, 0px);
    position: absolute;
  }

  .hamburger.active span:nth-child(2){
    transform: rotate(-45deg) translate(0px, 0px);
    position: absolute;
  }

  .nav-menu.active{
    display: block;
    box-sizing: border-box;
    border-radius: 0;
    overflow:auto;
  }

  .nav-menu ul{
    padding-top: 80px;
    display: block;
  }

  .nav-item{display: block;}

  .nav-item > a{
    padding:0 20px 0 0;
    font-size: 15px;
    display: inline-block;
  }

  .nav-item > a:not(.spopen)::after{display: none;}
  .nav-item > a::after{
    border-color:#24cfb6;
    border-width:2px;
    transition: all .25s ease;
  }

  .nav-item > a.spopen.active::after{
    transform: translate(0, -50%) rotate(225deg);
  }

  .nav-item .subitem{
    font-size: 13px;
    padding:10px 0 10px 20px;
    display: none;
  }

  .nav-item .subitem.spaccordion{
  }

  .nav-item:hover::after, .nav-item:focus::after{display: none;}

  .nav-menu .subitem li{margin-bottom: 5px;}
  .nav-menu .subitem li a{font-weight: 400;}

  .gnav__links{
    display: block;
    padding:20px;
    text-align: center;
    margin-top: 30px;
    background: #24cfb6;
    color:#fff;
    border-radius: 8px;
  }

  .gnav__tel{
    display: block;
    margin-bottom: 13px;
  }

  .gnav__btn{
	  display:flex;
	  flex-direction:column;
	  align-items:center;
	  gap:8px;
  }

  .gnav__tel a{
    font-size: 22px;
    margin-bottom: 20px;
    position: relative;
    color:#fff;
    line-height: 1;
  }

  .gnav__tel a::before{
    content:'';
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
    background: url('../img/common/phone-white.png') 0 0 no-repeat;
    background-size: cover;
    width:20px;
    height:20px;
    position: relative;
    top:-2px;
  }

  .gnav__btn a{
	width:160px;
    font-size: 14px;
    display: inline-block;
    border-radius: 30px;
    background: #fff;
    color:#24cfb6;
    font-weight: bold;
    line-height: 1;
    padding:10px 30px;
  }

  nav .nav-item:first-of-type{
	margin-left:0;
  }


  /* common bg */

  .pink-box{
    width:78vw;
    height:47.5vw;
    top:50vw;
  }

  .blue-box{
    top:150vw;
    width:15vw;
    height:60vw;
  }


  /* indexkv */

  .indexkv{
    height:154vw;
    margin-bottom: 20px;
  }

  .indexkv-img-01{
    width:100vw;
    height:67vw;
    border-radius: 0 40vw 0 0;
  }

  .indexkv-img-01 img{width:108%;}

  .indexkv-img-02{
    top: 71vw;
    width: 66vw;
    height: 57vw;
    border-radius: 0 0 0 40vw;
  }

  .indexkv-img-03{
    left: 0;
    top: 127vw;
    width: 32vw;
    height: 27vw;
    border-radius: 0 0 20vw 0;
  }

  .indexkv-img-04{
    left: auto;
    top: 131vw;
    width: 64vw;
    height: 23vw;
    border-radius: 0 0 20vw 0;
    right: 0;
  }

  .indexkv-title{
    font-size: 6.5vw;
    left:-2.5vw;
    top:72vw;
    transform: translate(0,0);  
  }


  /* indexnews */

  .news{
    padding: 30px 20px;
    margin-bottom: 20px;
    display: block;
    position: relative;
  }

  .news-image{
    margin-top:-8%;
  }

  .news-text{
    padding: 0px 25px;
    width:100%;
  }

  .news-text h2{
    font-size: 1.7em;
    margin: 0 0 15px 0;
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .news-text li {margin-bottom: 10px;line-height: 1.3;font-size: 1em;}
  .news-text li:last-child{margin-bottom: 0;}

  .news-text li a{
    display: block;
  }

  .news-text li strong{
    display: block;
    width:100%;
  }

  .news-text li a span{
    display: block;
    width:100%;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow:unset;
    white-space:unset;
  }

  .news .green-box{
    border-radius: 15px;
    position: absolute;
    left:20px;
    top:0;
    width:calc(100% - 40px);
    height: 100%;
  }

  /* indexabout */

  .about{
    padding:40px 20px;
    background: none;
  }

  .about::after{
    border-radius: 80px 0 0 0;
  }

  .about h2{
    font-size: 1.6em;
    font-weight: 400;
    margin:0 0 20px;
  }

  .artlife-container{
    gap:18px;
  }

  .artlife-image{
    width:calc(100% + 20px );
    height:64vw;
    position: relative;
    left:-20px;
    border-radius: 0 0 120px 0;
  }

  .artlife-content h3{
    margin:0 0 15px;
    font-size: 18px;
  }

  .artlife-content p{
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 20px;
    letter-spacing: 0.05em;
  }

  .detail-button{font-size: 16px;}

  /* indexbusiness */

  .business-section{
    padding:65px 20px 60px;
  }

  .business-section::before{
    display:block;
    content:'';
    background: #fafafa;
    width:80px;
    height:80px;
    position:absolute;
    right:0;
    top:0;
    border-radius: 0;
  }
  .business-section::after{
    display:block;
    content:'';
    background:#fff;
    width:80px;
    height:80px;
    position:absolute;
    right:0;
    top:0;
    border-radius: 0 80px 0 0;
  }

  .business-section-inner{
    position: relative;
    z-index:2;
  }

  .business-section h2{
    font-size: 1.8em;
    margin:0 0 35px;
  }

  .business-grid{
    padding:0;
  }

  .facility-box{
    margin-bottom: 40px;
  }

  .facility-box:last-child{
    margin-bottom: 0;
  }

  .facility-box .facility-h3{
    padding:1px 6px;
    margin:0 0 20px 0;
    height:auto;
    letter-spacing: 0.2em;
  }

  .facility-text{
    width:auto;
  }

  .facility-text p{
    font-size: 14px;
    line-height: 1.9;
    margin:0 0 20px 0;
  }

  .facility-image{
    position: relative;
    top:0;
    width:100%;
    margin-bottom: 15px;
    overflow: hidden;
  }

  .facility-image.image-01{aspect-ratio: 675/698;}
  .facility-image.image-02{aspect-ratio: 335/170;}
  .facility-image.image-03{aspect-ratio: 335/170;}

  .facility-image.image-01 .facility-image-item:first-of-type{
    top: 0;
    left: 0;
    width: calc(164 / 335 * 100%);
    aspect-ratio: 164 / 170;
    border-radius: min(calc(50 / 375 * 100vw), 50px) 0 0 min(calc(50 / 375 * 100vw), 50px);
  }
  
  .facility-image.image-01 .facility-image-item:nth-of-type(2){
    top: 0;
    right: 0;
    width: calc(164 / 335 * 100%);
    aspect-ratio: 164 / 170;
    border-radius: min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px) 0 0;
  }
  
  .facility-image.image-01 .facility-image-item:nth-of-type(3){
    bottom: 0;
    left: 0;
    width: calc(164 / 335 * 100%);
    aspect-ratio: 164 / 170;
    border-radius: 0 0 min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px);
  }
  
  .facility-image.image-01 .facility-image-item:nth-of-type(4){
    bottom: 0;
    right: 0;
    width: calc(164 / 335 * 100%);
    aspect-ratio: 164 / 170;
    border-radius: 0 min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px) 0;
  }
  
  .facility-image.image-02 .facility-image-item:first-of-type{
    bottom: 0;
    left: 0;
    width: calc(164 / 335 * 100%);
    aspect-ratio: 164 / 170;
    border-radius: min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px) 0 min(calc(50 / 375 * 100vw), 50px);
  }
  
  .facility-image.image-02 .facility-image-item:nth-of-type(2){
    bottom: 0;
    right: 0;
    width: calc(164 / 335 * 100%);
    aspect-ratio: 164 / 170;
    border-radius: min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px) 0;
  }
  
  .facility-image.image-03 .facility-image-item:first-of-type{
    bottom: 0;
    left: 0;
    width: calc(164 / 335 * 100%);
    aspect-ratio: 164 / 170;
    border-radius: min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px) 0 min(calc(50 / 375 * 100vw), 50px);
  }
  
  .facility-image.image-03 .facility-image-item:nth-of-type(2){
    bottom: 0;
    right: 0;
    width: calc(164 / 335 * 100%);
    aspect-ratio: 164 / 170;
    border-radius: min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px) min(calc(50 / 375 * 100vw), 50px) 0;
  }

  .facility-button {
    padding: 12px 30px;
    font-size: 14px;
  }

  .facility-button::after{
    right: 12px;
  }


  /* indexrecruit */

  .recruit{
    padding:0 0 0 20px;
  }

  .recruit-content{
    border-radius: 80px 0 0 0;
    display: block;
    overflow:visible;
  }

  .recruit-left h2{
    margin: 15px 0 25px;
    font-size: 2em;
  }

  .recruit-left{
    width: auto;
    padding:45px 30px;
  }

  .recruit-left p {
    margin-bottom: 25px;
    line-height: 1.7;
    font-size: 14px;
    max-width: 100%;
    letter-spacing: 0.1em;
  }

  .recruit-right{
    border-radius: 80px 0 0 0;
    height: 81vw;
  }

  .recruit-button{font-size: 15px;}


  /* indexinterview */

  .interview-section {
    padding:60px 20px 30px;
    overflow: hidden;
    position: relative;
    z-index:2
  }

  .interview-section-title{
    padding:0 20px;
    margin-bottom: 32px;
  }

  .interview-section .subtitle{
    font-size: 11px;
    margin-bottom: 0px;
    line-height: 1;
  }

  .interview-section h2{
    font-size: 2.5em;
    line-height: 1.3;
  }

  #interviewslider{
    overflow:visible;
  }

  .indexinterview-slider-slide{

  }


  .indexinterview-slider-slide-inner .side-img{
    width:calc(100% - 30px);
    height:360px;
  }

  .interview-line {
    right: 10px;
    height: 60px;
  }

  .interview-syubetsu {
    top: 70px;
    font-size: 0.7rem;
  }

  .interview-info{
    margin-top: 5px;
  }

  .interview-info-place{
    font-size: 14px;
    margin:0 0 5px 0;
  }

  .interview-info-staff{
    font-size: 14px;
    margin:0 0 0;
  }

  .interview-info-staff .categorytag{
    font-size: 12px;
    line-height: 1.3;
    padding:2px;
  }


  /* footer */

  footer{
    margin:60px 0 0;
    padding:40px 20px 20px;
  }

  .footer-inner{
    max-width: 460px;
    margin: 0 auto;
  }

  .footer-sns{
    top:-70px;
  }

  .sns__icon{width:3rem;}
  .sns__icon img{width:100%;}

  .company-info{display: block;}

  .company-left{
    width: auto;
    margin-bottom: 30px;
  }
  .company-left p{
    font-size: 13px;
  }

  .company-logo{width:180px;}

  .company-right{
    padding:40px 0px;
    width:auto;
  }

  .company-contact{
    display: block;
    margin:0;
  }

  .company-contact-tel{
    padding:0 0;
    margin-bottom: 25px;
    width:auto;
  }

  .company-contact-tel a{
    font-size: 23px;
  }

  .company-contact-term{
    font-size: 12px;
    margin-top: 7px;
    letter-spacing: 0.05em;
  }

  .company-contact-btn{
    /*width:auto;*/
    border-left: none;
    padding:0px 0;
	margin:0 auto;
  }

  .footer-container{display: block;}

  .footer-column{
    flex:none;
    min-width:175px;
    margin-bottom: 0px;
  }
  .footer-column:nth-child(4){
    width:auto;
  }

  .footer-column h4{margin:0 0 10px 0;}

  .footer-bottom{
    text-align:center;
    padding:5px 40px;
  }

  .footer-bottom p{
    font-size: 12px;
  }


  /* pankuzu */

  .pageheader-bottom-left{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    box-sizing: border-box;
    width: calc(100% - 40px);
  }

  /* news */

  .news-top,
  .news-detail{
    padding:0px 20px 0;
    margin-top: 30px;
  }

  .news-top-container,
  .news-detail-container{padding:30px;}

  .news-list-body{
    font-size: 14px;
    display: block;
  }
  .news-list li{margin:0 0 15px;}
  .news-list-date{width:auto;}
  .news-list-title{flex:none;}


  .news-detail-header{margin:0 0 20px;}

  .news-detail-date{font-size: 13px;}

  .news-detail-title{font-size: 20px;}

  .news-detail-image{margin:20px 0;}

  .news-detail-content{font-size: 14px;}
  
  .pagination{margin:30px 0 20px;}
  .pagination .page-numbers{font-size: 13px;}
  .pagination .page-numbers.current{font-size: 14px;}
  
}