@charset "utf-8";
@media screen and (max-width: 1280px){
}
@media (max-width: 1024px){
header{
	padding: 0 2.0rem;
}
header h1{
	width: 250px;
	padding: 2.0rem 3.5rem;
}
.index-keyv-txt h2{
	font-size: 4.5rem;
}
#index-about article .index-about-box article .index-about-box-L {
	padding: 10.0rem 5.0rem;
}
.index-service-box-inner {
	padding: 0 5.0rem;
}
.index-service-box-inner .index-service-box-item .index-txt {
	padding: 0 1.0rem 3.0rem;
}
.profile-box .profile-box-R {
	height: 500px;
}
/* page */
.intro-txt {
	width: 580px;
}
.page-matter-image .image {
	height: 1020px;
}
}
@media (max-width: 820px){
.gnav {
	display: none;
}
.sp-header {
  position: relative;
  padding: 20px;
}
.hamburger {
  position: fixed;
  top: 35px;
  right: 20px;
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 50%;
  background: #5C4033;
  cursor: pointer;
  z-index: 100000002;
}
.hamburger__line {
  position: absolute;
  left: 11px;
  width: 26px;
  height: 1px;
  background-color: #fff;
  transition: all .4s;
}
.hamburger__line:nth-of-type(1) {
  top: 14px;
}
.hamburger__line:nth-of-type(2) {
  top: 23px;
}
.hamburger__line:nth-of-type(3) {
  top: 32px;
}
.hamburger.active .hamburger__line:nth-of-type(1) {
  transform: translateY(9px) rotate(-45deg);
}
.hamburger.active .hamburger__line:nth-of-type(2) {
  opacity: 0;
}
.hamburger.active .hamburger__line:nth-of-type(3) {
  transform: translateY(-9px) rotate(45deg);
}
#sp-nav-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #fff;
  box-shadow: 2px 0 4px rgba(0,0,0,.1);
  transform: translateX(-100%);
  transition: transform .4s;
  z-index: 100000000;
}
#sp-nav-menu.active {
  transform: translateX(0);
}
.sp-nav__list {
  margin: 0;
  padding: 10.0rem 2.0rem 0;
  list-style: none;
}
.sp-nav__list li{
	padding: 1.0rem 0;
	border-bottom: 1px solid #5C4033;
	font-size: 1.4rem;
}
.sp-nav__list li:first-child{
	border-top: 1px solid #5C4033;
}
.sp-nav__list li a{
	color: #333;
}
.sp-nav__item {
  padding: 0 20px;
}
.sp-nav__link {
  display: block;
  padding: 15px 0;
  color: #333;
  text-decoration: none;
  border-bottom: 1px solid #eee;
}
.index-keyv-txt h2{
	font-size: 3.5rem;
}
.index-keyv-txt h3{
	font-size: 2.0rem;
}
#index-about article .index-about-box article .index-about-box-L {
    padding: 10.0rem 5.0rem 10.0rem 3.0rem;
}
#index-about article .index-about-box article .index-about-box-R {
    transform: translate(-5%, 35%);
}
.index-service-box-inner .index-service-box-item:nth-child(odd){
	padding: 0 2.0rem 0 0;
}
.index-service-box-inner .index-service-box-item:nth-child(even){
	padding: 0 0 0 2.0rem;
}
.profile-box .profile-box-R {
	transform: translate(-5%, 10%);
	padding: 5.0rem 2.0rem;
	height: 550px;
}
#index-office article, .contact-form {
	width: 95%;
}
/* page */
h2.page-ttl {
	font-size: 3.0rem;
	margin-bottom: 2.0rem;
}
.intro-txt {
	width: 100%;
}
.page-matter-box{
	width: 100%;
	padding: 0;
	order: 2;
}
.page-matter-image {
	width: 100%;
	order: 1;
	margin-bottom: 2.0rem;
}
.page-matter-image .image {
	border-radius: 1.6rem;
	height: 500px;
}
.page-conv {
	padding: 5.0rem 0;
}
}
@media (max-width: 480px) {
.sp {
	display: block;
}
.pc {
	display: none;
}
#index-office article h2{
	font-size: 2.7rem;
}
h2.section-ttl {
	font-size: 2.7rem;
	margin-bottom: 2.0rem;
}
h2.section-ttl span.en {
	font-size: 1.6rem;
}
header h1{
	width: 200px;
	padding: 1.5rem 3.5rem;
}
.hamburger {
	top: 28px;
}
.index-keyv-txt h2{
	font-size: 2.5rem;
	line-height: 1.2;
	margin-bottom: 2.0rem;
}
.index-keyv-txt h2 span{
	display: none;
}
.index-keyv-txt h3{
	font-size: 1.8rem;
}
#index-about article .index-about-box {
	margin-bottom: 0;
}
#index-about article .index-about-box article{
	flex-wrap: wrap;
	overflow-x: hidden;
}
#index-about article .index-about-box article .index-about-box-L {
	flex: initial;
	width: 100%;
	padding: 5.0rem 3.0rem;
}
#index-about article .index-about-box article .index-about-box-L h3{
	font-size: 1.8rem;
}
#index-about article .index-about-box article .index-about-box-R {
	width: 100%;
	height: 300px;
	transform: translate(0, 0);
}
.index-service-box-inner {
	padding: 0 2.5rem;
}
.index-service-box-inner .index-service-box-item {
	width: 100%;
}
.index-service-box-inner .index-service-box-item:nth-child(odd), .index-service-box-inner .index-service-box-item:nth-child(even){
	padding: 0;
}
.index-service-box-inner .index-service-box-item:nth-child(3){
	margin-bottom: 3.0rem;
}
.index-service-box-inner .index-service-box-item h2{
	width: 280px;
	font-size: 1.8rem;
}
.index-service-box-inner .index-service-box-item .index-txt {
	font-size: 1.4rem;
}
#index-profile {
	padding: 10.0rem 0;
}
.profile-box .profile-box-L {
	width: 100%;
	height: 300px;
}
.profile-box .profile-box-R {
	width: 100%;
	height: auto;
	transform: translate(0, 0);
}
.index-office-list li{
	font-size: 1.4rem;
}
.index-office-list li span, .index-office-list li span.col {
	width: 100%;
}
.contact-form ul li h4, .contact-form ul li .input-form {
	width: 100%;
}
.contact-form ul li h4{
	margin-bottom: 0.5rem;
}
.contact-form {
	padding: 5.0rem 2.0rem;
}
/* page */
#page-keyv .page-keyv-txt {
	width: 90%;
}
#page-keyv .page-keyv-txt h1{
	font-size: 2.1rem;
}
#page-keyv .page-keyv-txt h2{
	font-size: 1.4rem;
}
h2.page-ttl {
	font-size: 2.4rem;
	line-height: 1.4;
}
h2.page-ttl span{
	font-size: 1.4rem;
}
.intro-txt {
	font-size: 1.6rem;
}
.work-visa .page-matter-inner .page-matter-image, .formation .page-matter-inner .page-matter-image, .succession .page-matter-inner .page-matter-image {
	height: 250px;
}
.page-matter-image .image, .work-visa .page-matter-inner .page-matter-image .image {
	height: 250px;
}
h3.page-subttl {
	font-size: 1.8rem;
}
.page-matter-box ul li{
	font-size: 1.4rem;
}
.page-txt {
	font-size: 1.4rem;
}
ul.flex-box li.page-detail-item {
	padding: 0;
}
.table-cover {
	position: relative;
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.table-cover::after {
  /* 影のデフォルトは非表示に */
  opacity: 0;
  transition: opacity 0.3s;
}
.table-cover.has-shadow::after {
  opacity: 1;
  /* ここにshadow本体を書く */
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 30px;
  pointer-events: none;
  background: linear-gradient(to right, transparent, rgba(0,0,0,0.08));
  z-index: 2;
}
.table-cover table {
  min-width: 600px; /* ←スマホ幅より広くする（必要に応じて調整） */
  width: 100%;
  border-collapse: collapse;
}
.table-cover th,
.table-cover td {
  white-space: nowrap; /* 横詰まり防止、必要なら */
}
.table-cover .rubi.right {
  min-width: 600px;
  text-align: right;
  display: block;
  padding: 0 16px 0 0;
  white-space: nowrap;
}

.page-detail-item ol.support-step{
	list-style: outside;
}
.page-detail-item ol.support-step li{
	width: 100%;
}
.page-detail-item ol.support-step li:nth-child(2){
	border-top: 0;
}
.page-conv {
	padding: 5.0rem 2.0rem;
}
.page-conv h2{
	font-size: 2.7rem;
}
.page-conv-tel {
	width: 100%;
	margin: 0 0 2.0rem;
}
.page-conv-mail {
	width: 100%;
}
.page-conv a{
	padding: 5.0rem 2.0rem;
}
}

