@charset "utf-8";

/*=================================================================================================================================*/
/** 個別指定 for スマートフォン
/*=================================================================================================================================*/

@media screen and (max-width: 1150px) {
  #nav_rec{
    display: block;
    max-width:200px;
    margin:0 auto;
  }
  #nav_rec>li{
    width:100%!important;
    font-size:160%;
    text-align: left;
  }
  #nav_rec>li a{
    padding:10px 0!important;
    margin-bottom:20px;
    display: block;
    font-weight: 600;
  }
}

/*---------------------------------------------
 ** 768px
---------------------------------------------*/
@media screen and (max-width: 768px) {

  /*---------------------------------------------
	body
---------------------------------------------*/
  html {
    scroll-behavior: smooth;
  }

  body {
    border: none;
    font-size: 2.4vw;
  }

  .only_pc_none {
    display: block !important;
  }

  .only_sp_none {
    display: none !important;
  }

  .sp_br {
    display: inline;
  }

  .pc_br {
    display: none;
  }

  /*画像*/
  img {
    max-width: 100%;
    height: auto;
  }
  #main{
    aspect-ratio: 9 / 16;
    min-height:auto;
  }
  #top_mv{
    display: none;
  }
  #top_mv_sp{
    width:100%;
    min-height:auto;
    position: fixed;  
    top:0;
    left:0;
    z-index:1;
    display: block;
  }
  #top_mv_sp video{
    width:100%;
    height:auto;
    min-height:auto;
    object-fit: cover;
    object-position: center;
    opacity: 1;
    transition: opacity 0.5s ease;
  }
  #top_mv_sp video.hidden {
    opacity: 0;
    pointer-events: none; 
  }
  
  #header_in {
    height: 70px;
    padding: 10px 0 0px;
    z-index:10;
  }
  h1{
    width:100px;
  }

  #nav>ul{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
  }
  #nav>ul>li{
    width:48%;
    margin-bottom:10px;
    min-width:unset;
    font-weight: 600;
  }
  #nav_rec{
    display: block;
    max-width:200px;
    margin:0 auto;
  }
  #nav_rec>li{
    width:100%!important;
    font-size:160%;
    text-align: left;
  }
  #nav_rec>li a{
    padding:10px 0!important;
    margin-bottom:0px;
  }
  #nav>ul>li:last-child {
    width:80%;
    max-width:250px;
    margin:0 auto;
    position:relative;
  }
  #nav>ul>li:last-child>a{
    border-radius: 7px;
    padding: 10px 10px;
    font-size: 110%;
  }
  #nav>ul>li>a {
    width: 100%;
    border-radius: 7px;
    display: block;
    padding: 10px 20px;
    position:relative;
  }
  #nav>ul>li>a::after {
    content:'';
    width:8px;
    height:10px;
    background:url(../img/icon_arrow.png) no-repeat center center;
    background-size:100% auto;
    position:absolute;
    right:15px;
    top:0;
    bottom:0;
    margin:auto 0;
  }
  #nav>ul>li>p {
    width: 100%;
    border-radius: 10px;
    display: block;
    padding: 10px 20px;
    background:#009a92;
    color:#fff;
    text-align: center;
  }
  .gnav_child{
    position:relative;
    visibility: visible; /*表示する*/
    opacity: 1; /*フェイドイン 透明度を１に*/
    transform: scaleY(1);
    background:none;
    -webkit-box-shadow:none;
    box-shadow:none;
    left:0;
  }
  .gnav_child::before {
    display: none;
  }
  .gnav_child > li{
    width:100%;
    text-align: center;
  }
  .gnav_child a {
    color:#009a92;
  }
  #top_message{
    padding:12% 0 10%;
  }

  #top_news{
    padding:15% 0 10%;
  }
  #top_news ul{
    width:80%;
  }
  #top_report ul{
    width:80%;
  }
  .slick-arrow:before{
    width: 70%!important;
    height: 70%!important;
  }
  .slick-next{
    right:-75px!important;
  }
  .slick-prev{
    left:-55px!important;
  }

  #top_hall{
    display: none;
  }
  #top_hall_sp{
    display:block;
    background:#f4f2e9;
  }
  
  #top_hall_sp ul{
    width:100%;
    max-width:680px;
    aspect-ratio: 75 / 487;
    position:relative;
    margin:0 auto;
  }
  
  #top_hall_sp ul li{
    display: block;
    position:absolute;
  }
  
  
  .hall_kyoto01_sp{
    width:100%;
    top:12.5%;
    left:-12%;
  }
  .hall_kyoto02_sp{
    width:99%;
    top:5%;
    right:-5.5%;
  }
  .hall_kyoto03_sp{
    width:71%;
    top:20.5%;
    right: -19%;
  }
  .hall_kyoto04_sp{
    width:55%;
    top:29%;
    left:0;
  }
  .hall_kyoto05_sp{
    width: 68.5%;
    top:20%;
    left:-21%;
  }
  .hall_kyoto06_sp{
    width:68%;
    top:29.1%;
    right:-13%;
  }
  .hall_shiga01_sp{
    width:60%;
    top:42.2%;
    right:1%;
    z-index:1;
  }
  .hall_shiga02_sp{
    width: 73%;
    top: 44.7%;
    left:2%;
    z-index:0;
  }
  .hall_osaka01_sp{
    width:83%;
    top:56%;
    left:3%;
  }
  .hall_okayama01_sp{
    width:65%;
    top:68.7%;
    right:-13%;
  }
  .hall_okayama02_sp{
    width:50%; 
    top:68.5%;
    left:0%;
  }
  .hall_okayama03_sp{
    width: 88%;
    top:80.5%;
    left:2%;
  }
  .hall_hiroshima01_sp{
    width:98%;
    bottom:0%;
    left:2%;
  }
  
  #top_hall_sp ul li:last-child{
    position: static;
  }
  #top_hall_sp ul li>img{
    width:40%;
    position: absolute;
    pointer-events: none;
    margin:0 auto;
  }
  #icon_kyoto_sp{
    top:3.2%;
    right:0;
    left:0;
  }
  #icon_shiga_sp{
    top:42.5%;
    left:0%;
  }
  #icon_osaka_sp{
    top:56.1%;
    right:7%;
  }
  #icon_okayama_sp{
    bottom:32%;
    right:0;
    left:0;
  }
  #icon_hiroshima_sp{
    width:50%!important;
    bottom:10%;
    right:0;
    left:0;
  }
  
  
  
  #top_hall_sp ul li a{
    position:relative;
    display: block;
    z-index:0;
  }
  #top_hall_sp ul li a:hover{
    display: block;
    position:relative;
    z-index:2;
  }
  #top_hall_sp ul li a::before{
    content:'';
    width:calc(100% + 80px);
    height:calc(100% + 80px);
    pointer-events: none;
    border-radius: 20px;
    background:none;
    position:absolute;
    top:-40px;
    right:-40px;
    z-index:-1;
  }
  #top_hall_sp ul li a:hover img{
    filter: brightness(110%); 
  }
  
  #top_hall_sp ul li a:hover::before{
    background: #ffffffe4;
    box-shadow: 0px 0px 20px #d0c9c3;
    animation: fadeIn 1s forwards; /* アニメーションを適用 */
  }
  @keyframes fadeIn {
    0% {
      transform: scale(0.9);
      opacity: 0;
    }
    100% {
      transform: scale(1);
      opacity: 1;
    }
  }
  #top_hall_sp ul li a.hover-off::before{
    animation: fadeOut 1s forwards; /* アニメーションを適用 */
    background: #ffffffe4;
    box-shadow: 0px 0px 20px #d0c9c3;
  }
  @keyframes fadeOut {
    0% {
      transform: scale(1);
      opacity: 1;
    }
    100% {
      transform: scale(0.9);
      opacity: 0;
    }
  }

/* 星空の背景のスタイル */
.stars {
  position: relative;
}

/* 星のスタイル */
.star {
  position: absolute;
  display: block;
  background:url(../img/kirakira.png) no-repeat;
  background-size:100% auto;
  opacity: 0;
  animation: twinkle 3s infinite;
  pointer-events: none;
  z-index:9;
}

/* 星がキラキラ光るアニメーション */
@keyframes twinkle {
  0% {
    opacity: 0;
  }

  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }

  100% {
    opacity: 0;
    transform: scale(1);
  }
}  



  #top_report{
    padding:13% 0 8%;
  }
  #top_recruit>div>div>p{
    font-size:170%;
  }
  #top_recruit>div>div h2{
    font-size:360%;
  }
  #top_recruit>img {
    width: 55%;
  }
  #top_special{
    padding:13% 0 160px;
  }

  #top_blog>div>div>div {
    padding: 12% 0 12%;
    position:relative;
    text-align: center;
  }
  #top_blog .more_btn {
    position:absolute;
    right:0;
    left:0;
    top:30%;
  }

  #top_blog>div>div::before {
    content: '';
    width: 100%;
    height: 600px;
    display: block;
    background: url(../img/blog_bg.jpg) no-repeat left bottom;
    background-size: 105% auto;
    position: absolute;
    bottom: -40%;
    left: 0;
    z-index: 1;
  }
  #top_ban{
    padding:15% 0 10%;
  }
  #top_ban>div{
    width:90%;
  }
  #top_ban #ban01{
    width:49%;
    margin-right:3%;
  }
  #top_ban #ban02{
    width:48%;
    margin-right:0;
  }
  #top_ban #ban03{
    width:48%;
    margin-right:3%;
  }
  #top_ban #ban04{
    width:49%;
    margin-right:0;
  }
  #top_ban #ban05{
    width:37%;
    margin-right:3%;
    margin-left:11%;
  }
  #top_ban #ban06{
    width:40%;
    margin-right:0;
  }



  footer{
    padding:10% 0 4%;
  }
  footer>div{
    max-width:600px;
    padding-bottom:100px;
  }
  .rec_foot>div{
    padding-bottom:60px;
  }
  footer>div>ul{
    width:38%;
  }
  footer>div>div {
    width:50%;
  }

  #pageTop{
    right:15px;
  }
  #recruit{
    font-size:1.6rem;
  }
  .slide_pc{
    display: none!important;
  }
  .slide_sp{
    display: block!important;
  }
  #rec_main{
    height:auto;
  }

  #rec_slide>ul li img{
    height:auto;
  }
  #rec_slide>p.eigo2 {
    width: 330px 
  }


  .rec_entry_btn {
    max-width: 330px;
  }
  .rec_entry_btn a {
    height: 90px;
    font-size:160%;
  }
  .rec_entry_btn a::after {
    width: 15px;
    height:15px; 
  }
  #anc_recruitment h2 span {
    font-size: 320%;
  }
  .recruitment_data>a>div:nth-of-type(1){
    width:250px;
  }
  .recruitment_data>a>div:nth-of-type(2) {
    width:calc(95% - 250px);
  }
  #anc_interviews h2:after{
    width:85%;
  }
  .interview_block01 {
    background: url(../img/recruit/interview01.jpg) no-repeat right -100px top;
    background-size: cover;
  }
  .interview_block02{
    background:url(../img/recruit/interview02.jpg) no-repeat left -80px top;
    background-size:cover;
  }
  .interview_block03{
    background:url(../img/recruit/interview03.jpg) no-repeat right -100px top;
    background-size:cover;
  }
  .staff_voice>div>div{
    width:100%;
  }
  .staff_voice>div>img {
    width: 100%;
    max-width:400px;
    margin:0 auto 30px;
  }
  .rec_entry_btn{
    top:-40px;
  }
  #anc_awards {
    padding: 180px 0 50px 0;
  }
  #awards_bg01 {
    height: 90%;
  }
  .recruitment_data .icon_yen{
    padding:2px 0 5px 30px;
    background-size:25px auto;
  }
  .recruitment_data .icon_town{
    padding:2px 0 5px 30px;
    background-size:17px auto;
  }
  .recruitment_data>a>div:nth-of-type(1){
    width:50%;
  }
  .recruitment_data>a>div:nth-of-type(2) {
    width:46%;
  }
  .staff_data::before{
    left:-40%;
  }
  .staff_data.open {
    padding: 70px 5% 20px;
  }
  .interview_block>div>img {
    width: 70px;
    height: 70px;
    top:auto;
    bottom:-35px;
    left:15px;
  }
  .staff_ban:hover img {
    transform: scale(1.0);
    border:3px solid #fff;
  }
  .staff_ban.active img {
    transform: rotate(225deg) scale(1.0);
  }
  
  #anc_model h2{
    font-size:300%;
  }
  .model_data{
    max-width:500px;
  }
  .model_accodion{
    width:100%;
    margin-bottom:3%;
    padding: 25px 20px 15px 20px;
    border-radius: 0 20px 0 0;
  }
  .model_ban{
    min-height:auto;
  }
  .model_ban>span{
    top:25px;
  }
  .model_detail>div dl dd {
    width: calc(97% - 60px);
  }
  #anc_job h2{
    font-size:280%;
  }
  #anc_entry h2 br.br_none{
    display: inline;
  }

  @media screen and (max-width: 680px) {
    .rec_message02>div>div {
      padding: 30px 0 20px;
    }

  }
  @media screen and (max-width: 580px) {
    .rec_message02>div>div {
      padding: 30px 0 20px;
    }
    #anc_awards p .br_none{
      display: none;
    }
    .interview_block>div:nth-of-type(1){
      min-height:400px;
      align-items:flex-end;
      justify-content: right;
    }
    .interview_block01 {
      background: url(../img/recruit/interview01.jpg) no-repeat right -100px top #000;
      background-size: cover;
    }
    .interview_block>div:nth-of-type(1)>div:nth-of-type(1){
      background:#ffffff87;
      padding:15px;
      margin-bottom:20px;
    }
    .interview_block>div.interview_block03>div:nth-of-type(1){
      background:#0006;
    }
    .staff_ban h3 span {
      font-size: 190%;
    }
    .staff_ban p br{
      display: none;
    }
    .staff_ban h3 span br{
      display: none;
    }
    .interview_block>div:nth-of-type(1)>div{
      white-space: wrap;
    }
  }


  @media screen and (max-width: 480px) {
    body {
      font-size: 3.3vw;
    }
    #top_mv{
      min-height: auto;
      max-height: 100svh;
    }
    #top_mv video{
      min-height: auto;
      height:auto!important;
    }
    #main>a{
      display: none;
    }
    #award_btn_sp{
      position:relative;
      display: block;
      background:#4c4945cd;
      text-align: center;
      padding:15px 0;
      z-index:2;
    }
    #award_btn_sp > a{
      width:80%;
      max-width:280px;
      display: block;
      margin:0 auto;
    }

    #top_message{
      padding:12% 0 5%;
      background:url(../img/message_bg03.jpg) no-repeat bottom left;
      background-size:100% auto;
    }
    #top_message>div h3{
      text-align: center;
      padding-left:0;
    }
    
    #top_message>div p{
      padding-left:0%;
      text-align: center;
    }

    #top_news ul{
      width:80%;
    }
    #top_report ul{
      width:80%;
    }
    .slick-arrow:before{
      width: 50%!important;
      height: 50%!important;
    }
    .slick-next{
      right:-70px!important;
    }
    .slick-prev{
      left:-40px!important;
    }
    #top_recruit>div{
      text-align: center;
      padding:15% 0;
    }
    #top_recruit>img{
      width:100%;
      opacity: 0.5;
    }
    #top_blog>div {
      width: 93%;
      border-radius: 0% 40px 0 0;
    }
    #top_blog>div h3 {
      width: 50%;
      max-width: 230px;
      margin:0 auto;
    }
    #top_blog>div h3 img {
      filter: drop-shadow(1px 1px 3px #fff) drop-shadow(1px 1px 3px #fff);
    }
    #top_blog>div>div>div {
      padding: 22% 0 35%;
    }
    #top_blog>div>div::before {
      height: 500px;
      background: url(../img/blog_bg.jpg) no-repeat left -40px bottom;
      background-size: cover;
    }
    #top_blog .more_btn {
      top: 56%;
    }
    #top_ban{
      padding:25% 0 20%;
    }
    #top_ban>div{
      width:90%;
    }
    #top_ban #ban01{
      width:90%;
      margin:0 auto 4%;
    }
    #top_ban #ban02{
      width:90%;
      margin:0 auto 4%;
    }
    #top_ban #ban03{
      width:90%;
      margin:0 auto 4%;
    }
    #top_ban #ban04{
      width:90%;
      margin:0 auto 4%;
    }
    #top_ban #ban05{
      width:75%;
      margin:0 auto 4%;
    }
    #top_ban #ban06{
      width:75%;
      margin:0 auto 4%;
    }
    
    footer>div{
      max-width:300px;
    }
    footer>div>ul{
      width:100%;
    }
    footer>div>ul li{
      text-align: center;
    }
    footer>div>div p{
      text-align: center;
    }
    footer>div>div{
      width:100%;
      margin-top:3%;
    }
    footer>div>div>div{
      max-width:52vw;
      margin:0 auto;
    }
    footer>div>div>div>ul:nth-child(1){
      margin-right:0;
    }


    #pageTop a {
      display: block;
      width: 10px;
      height: 140px;
      background: url(../img/pagetop.png) no-repeat bottom left;
      background-size: 100% auto;
    }

    #recruit{
      font-size:1.3rem;
    }
    #rec_slide>p.eigo2 {
      width: 230px;
      height:45px;
    }
    .c-text{
      padding:10px 0;
    }
    .c-text__item{
      font-size:80px;
    }
    .c-text span {
      padding-right: 40px;
    }
    #anc_message{
      padding-top:100px;
    }
    .rec_message01 > img {
      width: 91%;
    }    
    
    #anc_message p{
      text-align: left;
    }
    #anc_message h2{
      position:absolute;
      top:30px;
      right:30px;
      text-align: right;
    }
    #anc_message h3, #anc_message p {
      text-align: left;
    }

    #anc_awards p{
      text-align: left;
    }
    .recruitment_data>a>div:nth-of-type(1){
      width:100%;
      margin-bottom:20px;
    }
    .recruitment_data>a>div:nth-of-type(2){
      width:100%;
    }
    .recruitment_data>a>div:nth-of-type(1) img{
      height:unset;
    }
    #anc_job{
      text-align: center;
    }
    #anc_job ul{
      width:90%;
      max-width:300px;
      margin:0 auto;
    }
    #anc_job ul li {
      width: 100%;
      margin-right: 0%;
    }

    .staff_ban p br{
      display: inline;
    }
    .staff_ban h3 span {
      font-size: 170%;
    }
    .recruitment_data .icon_yen {
      padding: 2px 0 5px 28px;
      background-size: 22px auto;
    }
    .recruitment_data .icon_town {
      padding: 2px 0 5px 28px;
      background-size: 16px auto;
    }
    .faq_block {
      width: 100%;
    }
    .faq_q {
      padding: 17px 40px 17px 40px;
    }
    .faq_a {
      padding: 0 20px 0 40px;
    }
    .faq_a.open {
      padding: 17px 20px 17px 40px;
    }

  }
  @media screen and (max-width: 425px) {
    #recruit{
      font-size:1.2rem;
    }

    #anc_awards {
      padding: 120px 0 50px 0;
    }
    #anc_interviews h2:after{
      width:90%;
    }
    #anc_recruitment {
      padding: 70px 0 60px;
    }
    #anc_job {
      padding: 80px 0 60px;
    }
    .tab-item>div dl dt{
      padding:8px 0;
    }
    #anc_faq {
      padding: 70px 0 60px;
    }
    #anc_entry {
      padding: 60px 0 80px;
    }
    .faq_q {
      padding: 17px 40px 17px 35px;
    }
    .faq_a {
      padding: 0 20px 0 35px;
    }
    .faq_a.open {
      padding: 17px 20px 17px 35px;
    }
    .rec_entry_btn a {
      height: 75px;
    }
  }
  @media screen and (max-width: 360px) {
    .staff_ban h3 span {
      font-size: 150%;
    }
  }
  @media screen and (max-width: 340px) {
    #recruit{
      font-size:1.1rem;
    }
  }
  
  





}




/* スマホのときのみ電話をかける */
@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    color: #717071;
  }

}