@charset "UTF-8";

	.pc-only {		display : inline !important;	}
	.sp-only {		display : none !important;		}

@media screen and (max-width: 1200px) {
   .wrap,
   .one-column #content .wrap{
	   margin-left: 0;
	   margin-right: 0;
   }
}
@media screen and (max-width: 1000px) {
	.pc-only {		display : none !important;		}
	.sp-only {		display : inline !important;	}

	.news-section {
		padding: 10% 5%;
	}
	.recruit-content,
	.news-wrapper{
		display: flex;
		flex-flow: column;
		align-items: center;
		gap:0px;
	}
	.news-wrapper .section-label{
		font-size: clamp(12px, 2vw,18px);
	}
	.news-wrapper .section-title{
		font-size: clamp(24px, 3vw, 42px);
	}
	.business-items {
		gap:20px;
	}
	.business-items .vertical-text{
		margin-top: -20% !important;
		padding-left: 5px;
		writing-mode: inherit;
		font-size: clamp(46px, 10vw, 100px);
		text-align: left;
		left: 0;
		top: 0;
		transform: translateY(0);
	}
	.business-items .business-label{
		font-size: clamp(12px, 2vw,18px);
	}
	.business-items .business-title{
		font-size: clamp(14px, 2.4vw,24px);
	}
	.business-circle-img {
        max-width: 280px;  /* タブレット */
    }
    
    .service-section {
	    padding: 0 0 0 0;
	}
	.service-bg-pattern {
	    border-radius:0;
	}
	.biz__head .biz__title {
		font-size: clamp(64px, 9vw, 120px);
		margin: -47px 0 0 0;
		text-align:center;
	}
	
	.biz__head .biz__lead-en {
		margin: 47px 0 0 0;
		font-size: clamp(.8rem, 2vw, 2rem);
		text-align:center;
	}

	.biz__head .biz__lead-ja {
		font-size: clamp(1.5rem, 3vw, 3rem);
		text-align:center;
	}
	
	.biz-item {
		display:block;
	}
	.biz-item__media {
		margin: 0 -10% 5%;
	}
	.biz-item__body {
		margin-right:0;
	}
	.biz-item__no {
		text-align: center;
		font-size: clamp(3rem, 3vw, 3rem);
		margin-bottom: 2%;
	}
	.biz-item__name {
		text-align: center;
		font-size: clamp(1.5rem, 3vw, 3rem);
	}
	.service-section2 {
		padding: calc(var(--space-xl) * 2) var(--space-xl);
	}
	.biz-item__body .biz__lead-en {
		text-align: center;
		font-size: clamp(.8rem, 2vw, 2rem);
	}
	.biz-item__body .biz__lead-ja {
		text-align: center;
		font-size: clamp(1.5rem, 3vw, 3rem);
		margin-bottom: 10%;
	}
	 
	.recruit-content {
		gap: 1rem;
	}
	.recruit-image {
		width: 90%;
	}
	.recruit-section .vertical-text-recruit{
		left: 10%;
	}
	.company-aboutus-section{
		padding: 0; 
	}
	.company-aboutus-bg-pattern{
		border-radius: 0;
		padding-bottom: 0;
	}
	.aboutus__lead-en{
		margin-top: 0;
	}
	.aboutus__head{
		padding: 40px 0 20px 0;
	}
	.aboutus__lead-en,
	.aboutus__lead-ja{
		margin: 0;
		text-align: center;
	}
	.aboutus-item{
		width: 90%;
		margin: 0 auto;
		padding: 0;
	}
	.company-aboutus-section .vertical-text-aboutus{
		transform: translate(0,0) rotate(180deg);
		bottom: 35%;
		right: 0;
	}

	.business-section {
		padding-top: 0;
		padding-right:8%;
	}
	.business-bg-pattern {
		padding: 20% 0 20%;
	}

	.iframe-content {
		margin: 0 -5%;
	  position: relative;
	  padding-bottom: 70%;
	  height: 0;
	  overflow: hidden;
	}
	.iframe-content iframe {
	  position: absolute;
	  top: 0;
	  left: 0;
	  width: 100%;
	  height: 100%;
	}
	
	
	.recruit-company_policy-section {
	    padding: 0 0 0 0;
	}
	.recruit-company_policy__head .recruit-company_policy__title{
		font-size: clamp(48px, 9vw, 120px);
		margin: -47px 0 0 0;
		text-align:center;
	}
	.recruit-company_policy__head .recruit-company_policy__lead-en {
		margin: 47px 0 0 0;
		font-size: clamp(.8rem, 2vw, 2rem);
		font-size: ;
		text-align:center;
	}
	.recruit-company_policy__head .recruit-company_policy__lead-ja {
		font-size: clamp(1.5rem, 3vw, 3rem);
		text-align:center;
	}
	.recruit-company_policy-item {
		display:block;
	}
	.recruit-company_policy__list {
		padding: 5% 10%;
	}
	.recruit-company_policy-item__media {
	}
	.recruit-company_policy-item__body {
		margin: 120px 0 0;
	}
	
	.recruit-training--section {
	    padding: 10%;
	}
	.recruit-training__title {
		font-size: clamp(48px, 9vw, 120px);
		margin: 0px 0 0 0;
		text-align:center;
		z-index: 10;
		position: relative;
	}
	.recruit-company_policy-item__media {
		z-index: 0;
		margin: -120px 0 0 0;
		box-shadow: none;
	}
	.recruit-training__head {
		margin: 40px 0 0 0;
	}
	.recruit-training__head .recruit-training__lead-en {
		position: relative;
		margin: 47px 0 0 0;
		font-size: clamp(.8rem, 2vw, 2rem);
		text-align:center;
	}
	.recruit-training__head .recruit-training__lead-ja {
		font-size: clamp(1.5rem, 3vw, 3rem);
		text-align:center;
	}
	
	.recruit-requirements-section {
		padding:10%;
	}
	.recruit-requirements__head .recruit-requirements__lead-en {
		position: relative;
		margin: 0 0 0 0;
		font-size: clamp(.8rem, 2vw, 2rem);
		text-align:center;
	}
	.recruit-requirements__head .recruit-requirements__lead-ja {
		font-size: clamp(1.5rem, 3vw, 3rem);
		text-align:center;
	}
	
	
	.contact-cta__telitem {
		display: flex;
		justify-content: center; 
		flex-wrap: wrap;
		white-space: normal;
		gap: 20px;
	}
	.contact-cta__hours{
  		flex-basis: 100%;
  		margin-left: 38px; 
  	}
	
	.contact-cta__grid {
		grid-template-columns: 1fr;
		gap: 20px;
		padding: 32px 0;
	}
	.contact-cta__grid .contact-cta__card{
		width: 100%;
		padding: 0 12.5% !important;
	} 	
	
	
  /* フッター全体：上（会社情報）→下（ナビ）に縦積み */
  .footer-content{
    display: flex !important;
    flex-direction: column !important;
    gap: 18px;
    padding: 30px 16px !important;
  }

  /* 会社情報：1行目に「ロゴ + 社名」、2行目に住所 */
  .footer-company{
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "logo name"
      "addr addr";
    column-gap: 12px;
    row-gap: 6px;
    align-items: center;
    margin: auto;
  }

  .footer-logo{
    grid-area: logo;
    margin: 0 !important;
    max-width: 120px;       /* ロゴ幅は好みで調整 */
    float: none !important; /* 既存float打ち消し */
  }
  .footer-logo img{
    width: 100%;
    height: auto;
    display: block;
  }

  .footer-company-name{
    grid-area: name;
    margin: 0 !important;
    font-size: 0.95rem;
    text-align: left;
    float: none !important; /* 既存float打ち消し */
  }

  .footer-info{
    grid-area: addr;
    margin: 0 !important;
    text-align: center;
    line-height: 1.7;
    font-size: .7rem;
  }

  /* ナビを「会社情報の下」に表示 */
  .footer-nav{
    order: 2;
    width: 100%;
    margin: 8px 0 0 !important;
    float: none !important;
  }

  /* ナビ：横並びで折り返し（必要なら縦並びにも可） */
  .footer-nav ul,
  .footer-nav-list{
    display: flex !important;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 10px 16px;
    padding: 0;
    margin: 0;
    list-style: none;
  }

  .footer-nav-list li{
    float: none !important;
    width: auto !important;
    margin: 0 !important;
  }

  .footer-bottom{
    text-align: center;
    padding: 0 16px;
  }
}
/* ===================================
   Mobile Navigation (768px以下) 
   =================================== */
@media screen and (max-width: 768px) {
	#header #logo{
		display: none;
	}

    /* --- 1. ヘッダーとボタンの強制表示 --- */
    #header, #header > .wrap {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 7.5px!important;
        gap: 0 !important;
    }

    #header #header-menu-tog {
        display: block !important;
        visibility: visible !important;
        z-index: 10001 !important;
        position: relative !important;
    }

    #header #header-menu-tog a {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 36px !important;
        height: 36px !important;
        background: rgba(255, 255, 255, 0.2) !important;
        border-radius: 50% !important;
        backdrop-filter: blur(4px);
    }

    /* --- 2. 三本線の基本デザイン --- */
    .hamburger-icon {
        width: 13px !important;
        height: 10px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-between !important;
    }

    .hamburger-icon span {
        display: block !important;
        width: 13px !important;
        height: 1px !important;
        background-color: #ffffff !important;
        transition: all 0.3s ease !important;
    }

    /* ----------------------------------
       【解決策】navにactiveがついている時、ボタンをバツにする
       （CSSの :has セレクタを使用）
       ---------------------------------- */
    /* 「activeクラスがついたnav」を子に持つheaderを探し、その中のspanを動かす */
    #header:has(nav#gnav.active) .hamburger-icon span:nth-child(1) {
        transform: translateY(4.5px) rotate(45deg) !important;
    }
    #header:has(nav#gnav.active) .hamburger-icon span:nth-child(2) {
        opacity: 0 !important;
    }
    #header:has(nav#gnav.active) .hamburger-icon span:nth-child(3) {
        transform: translateY(-4.5px) rotate(-45deg) !important;
    }

    /* --- 3. メニュー本体 (gnav) の表示設定 --- */
    /* PC版の display: contents 等を完全に打ち消す */
    #gnav, #gnav .wrap, #gnav-container {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100vh !important;
        margin: 0 !important;
        padding: 0 !important;
        background-color: #0b5eb0 !important;
        z-index: 10000 !important;
        display: none !important; /* 通常は隠す */
    }

    /* 現状通り、nav#gnavにactiveがついた時に表示させる */
    nav#gnav.active, 
    nav#gnav.active .wrap, 
    nav#gnav.active #gnav-container {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* --- 4. リスト内の文字調整 --- */
    #gnav-ul {
        display: flex !important;
        flex-direction: column !important;
        gap: 2rem !important;
        text-align: center !important;
        list-style: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    #gnav-ul li a {
        color: #ffffff !important;
        font-size: 1.4rem !important;
        font-weight: bold !important;
        text-decoration: none !important;
        background: transparent !important;
        border: none !important;
    }

    /* お問合せボタン（最後のリセット） */
    #gnav-ul li:last-child a {
        background: #ffffff !important;
        color: #0b5eb0 !important;
        padding: 10px 30px !important;
        border-radius: 999px !important;
    }
    
	.post-content h3 {
	    font-size: 1.2rem !important;
	}
	.post-content img.isp {
		margin:0;
		width: calc(100% + 40px);
	}	
	/* ===================================
   TOPページ
   =================================== */
   	.hero-section  {
	   	min-height:42vh;
   	}
   	.hero-left-image {
	   	width:40%;
   	}
   	.hero-left-image img {
	   	min-width:300px;
   	}
   	.hero-content {
	   	padding: 0 0 0 0;
	   	
   	}
   	.hero-subtitle,
   	.hero-title-ja {
	   	font-weight: 900;
	   	font-size : 1.2rem;
	   	margin: 0 0 0 100px;
	   	width: 190px;
   	}
   	.hero-title-en {
	   	font-size:2rem;
	   	margin-top:var(--space-lg);
	   	margin-bottom:0;
	}
	.message-content{
		display: flex;
		flex-flow: column;
		gap:20px;
    }
	.message-clouds-overlay{
		top: -2%;
	}
	#message .container{
		margin-top: -160px;
	}
	.message-image{
		width: 60%;
	}
	.message-text .section-label {
		font-size: clamp(10px, 1.6vw, 24px);
		margin-bottom:0px;
	}
	.message-text .section-title {
		font-size: clamp(24px, 3vw, 42px);
		margin-bottom:10px;
	}
	.message-body {
	    margin:0 0 20px 0;
		font-size: clamp(14px,1vw, 18px);
	    line-height: 1.5;
	}
	
	.message-text br,
	.recruit-text br{
		display: none;
	}
	#message h2,
	#message .section-label,
	#recruit h2,
	#recruit .section-label,
	#news h2,
	#news .section-label{
		text-align: center;
	}
	.business-circle-img {
        max-width: 220px;  /* スマホ */
    }
	.message-large-text{
		bottom: -2rem;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		font-size: clamp(60px, 3vw, 100px);
	}
	.message-text {
		display: flex;
		flex-flow: column;
		align-items: center;
	}
	.recruit-text{
		flex-flow: column;
		align-items: center;
	}
	.recruit-text .section-label {
		font-size: clamp(10px, 1.6vw, 24px);
		margin-bottom:0px;
	}
	.recruit-text .section-title {
		font-size: clamp(24px, 3vw, 42px);
		margin-bottom:10px;
	}
	.recruit-body {
		margin: 0;
	    line-height: 1.5;
		font-size: clamp(14px,1vw, 18px);
	}
	.recruit-image {
		margin-right: -150px !important;
		width: 115%;
	}
	.recruit-section .vertical-text-recruit.is-visible {
		font-size: clamp(55px, 4vw, 100px);
		font-style: italic;
		top:42%;
		left:13%;
	}
	
	/* ===================================
   その他ページ
   =================================== */
   
   .page-hero{
	   height: 300px;
	   min-height: inherit;
   }
   .page-hero .container{
	   padding:0 0 0 1rem;
   }
   .page-hero-content {
	   padding: 0 1rem;
   }
	.page-hero-subtitle-ja {
	    font-size: 1.2rem;
	    margin-bottom: 0;
	}
	.page-hero-title {
	    font-size: 1.8rem;
	}
	.page-hero_contents-title {
	    font-size: 3.2rem;
	}
   .page-hero-subtitle_contents-ja{
	   padding-top: 40px !important;
	   font-size: 1rem;
   }
   .post-content, .cta-post-title, .post-cta, .post-cta-inner, .post-share, .post-author, article.page .post-header {
		padding:0 20px !important;
   }
   .post-content h2.company-message-section__title,
   .company-aboutus-section h2.aboutus__lead-ja {
	   font-size: clamp(24px, 3vw, 42px);
   }
   .company-message-section__inner{
	   display: flex;
	   flex-flow: column;
	   align-items: center;
	   gap: 0;
   }
   .company-message-section__photo{
	   order: 2;
	   width: 70%;
   }
   .company-message-section__content {
	   order: 1;
   }
   .company-message-section__head{
	   text-align: center;
   }
   .company-message-section{
	   padding: 0 0 140px 0;
   }
   .company-message-section__watermark{
	   left: 50%;
	   bottom: -2rem;
	   transform: translateX(-50%);
   }
   .company-image-section {
	   height: calc(var(--space-xl) * 2);
   }
   table.table_company th,
   table.table_company td,
   table.table_recruit th,
   table.table_recruit td {
	   display: block;
	   width: 100%;
	   text-align: left;
   }
   table.table_company th,
   table.table_recruit th {
	   margin-bottom: 0px;
       border-bottom: 1px solid #0A5EB0 !important;
   }
   table.table_company td,
   table.table_recruit td {
	   margin-bottom: 0px;
	   border-bottom: none !important;
   }
   table.table_recruit {
	   border-spacing:0;
	   margin-bottom: 0;
	}
   .company-aboutus-section .vertical-text-aboutus {
		right: -5px;
		line-height: 1;
		font-size: clamp(60px, 3vw, 100px);
		bottom: 24%;
   }
   .table-wrap{
	   overflow: inherit;
	   white-space: normal;
   }
   .archive-news #main .post-header .post-meta{
	   width: 100%;
   }
   .archive-news #main .post-header{
	   flex-wrap: wrap;
   }
   .archive-news #main .post-header .link-arrow{
	   width: 28px;
	   height: 28px;
	   padding: 0;
	   display: flex;
	   justify-items: center;
	   justify-content: center;
   }
   .archive-news #main .post-header .link-arrow img{
	   width: 14px;
	   height: auto;
   }
   .archive-news #main .post-header .post-title{
	   width: calc(100% - 40px);
   }
}
@media screen and (max-width: 500px) {
	.single article footer{
		justify-content: center;
	}
	.single footer .post-meta{
		width: 100%;
	}
}