/* ==========================================================================
	基本リセット & グローバル設定
========================================================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 140px;
  font-size: 16px; /* 1rem = 16px */
}

@media (max-width: 768px) {
  html {
    scroll-padding-top: 80px;
  }
}
body {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	line-height: 2;
  color: #000;
  background: #fff;
}

a{
  color: #000;
  text-decoration: none;
  transition: color 0.3s;
}
a:hover{
  color: #005EAE;
}

img{
  max-width: 100%;
}

ul,li{
  list-style: none;
}

/* ==========================================================================
	共通レイアウトクラス
========================================================================== */
/* --- Margin Top --- */
.mt-10 { margin-top: 0.75rem; }
.mt-20 { margin-top: 1.25rem; }
.mt-30 { margin-top: calc(1.35rem + 0.5vw); }
.mt-40 { margin-top: calc(1.5rem + 1.5vw) !important; }
.mt-50 { margin-top: calc(2.0rem + 1.75vw); }
.mt-60 { margin-top: calc(2.5rem + 2vw); }
.mt-70 { margin-top: calc(3.0rem + 2.25vw); }
.mt-80 { margin-top: calc(3.5rem + 2.5vw); }
.mt-90 { margin-top: calc(4.0rem + 2.75vw) !important;}
.mt-100 { margin-top: calc(4.5rem + 3vw); }

/* --- Margin Bottom --- */
.mb-10 { margin-bottom: 0.75rem; }
.mb-20 { margin-bottom: 1.25rem; }
.mb-30 { margin-bottom: calc(1.35rem + 0.5vw); }
.mb-40 { margin-bottom: calc(1.5rem + 1.5vw); }
.mb-50 { margin-bottom: calc(2.0rem + 1.75vw); }
.mb-60 { margin-bottom: calc(2.5rem + 2vw); }
.mb-70 { margin-bottom: calc(3.0rem + 2.25vw); }
.mb-80 { margin-bottom: calc(3.5rem + 2.5vw); }
.mb-90 { margin-bottom: calc(4.0rem + 2.75vw); }
.mb-100 { margin-bottom: calc(4.5rem + 3vw); }

/* --- Margin Left --- */
.ml-10 { margin-left: 0.75rem; }
.ml-20 { margin-left: 1.25rem; }
.ml-30 { margin-left: calc(1.35rem + 0.5vw); }
.ml-40 { margin-left: calc(1.5rem + 1.5vw); }
.ml-50 { margin-left: calc(2.0rem + 1.75vw); }
.ml-60 { margin-left: calc(2.5rem + 2vw); }
.ml-70 { margin-left: calc(3.0rem + 2.25vw); }
.ml-80 { margin-left: calc(3.5rem + 2.5vw); }
.ml-90 { margin-left: calc(4.0rem + 2.75vw); }
.ml-100 { margin-left: calc(4.5rem + 3vw); }

/* --- Margin Right --- */
.mr-10 { margin-right: 0.75rem; }
.mr-20 { margin-right: 1.25rem; }
.mr-30 { margin-right: calc(1.35rem + 0.5vw); }
.mr-40 { margin-right: calc(1.5rem + 1.5vw); }
.mr-50 { margin-right: calc(2.0rem + 1.75vw); }
.mr-60 { margin-right: calc(2.5rem + 2vw); }
.mr-70 { margin-right: calc(3.0rem + 2.25vw); }
.mr-80 { margin-right: calc(3.5rem + 2.5vw); }
.mr-90 { margin-right: calc(4.0rem + 2.75vw); }
.mr-100 { margin-right: calc(4.5rem + 3vw); }

.pt-0{ padding-top: 0 !important;}
.pb-0{ padding-bottom: 0 !important;}
.pl-0{ padding-left: 0 !important;}
.pr-0{ padding-right: 0 !important;}

.pb-60 {padding-bottom: clamp(2.5rem, 4vw, 3.75rem) !important;}

.text-center { text-align: center !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.font-bold { font-weight: 700 !important; }

.font-18{ font-size: clamp(1rem, 1.2vw, 1.125rem);}
.font-20{ font-size: clamp(1.125rem, 1.5vw, 1.25rem);}
.font-24{ font-size: clamp(1.25rem, 2vw, 1.5rem);}
.font-26{ font-size: clamp(1.125rem, 2vw, 1.625rem);}

.text-blue{ color: #005EAE;}

.bg_blue { 
  color: #fff !important;
  background: linear-gradient(180deg, #005EAE 0%, #57A5E8 100%);
}
.bg_blue h2,
.bg_blue a{ 
  color: #fff !important;
}
.bg_lightblue { 
  background: linear-gradient(95deg, #E1F1FF 10.51%, #FFF 34.39%, #E1F1FF 94.69%);
}

.container {
	width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(40px, 8.2vw + 10px, 128px) 0;
  position: relative;
}
.wide-container{
	width: 96%;
	max-width: 1340px;
	margin: 0 auto;
  padding: clamp(40px, 8.2vw + 10px, 128px) 0;
  position: relative;
}
.narrow-container{
	width: 96%;
	max-width: 1170px;
	margin: 0 auto;
  position: relative;
}
.wide-container.wide-max,.wide-max{
  width: 100%;
	max-width: 100%;
  position: relative;
}

/* グリッドレイアウト */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  align-items: center;
}
@media (min-width: 769px) {
  .grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 縮小しても横並びをキープ */
    gap: 2vw; /* 隙間も画面幅に連動 */
  }
}
.grid .l-container{
  padding-right: clamp(3rem, 5vw, 5rem);
  padding-left: clamp(3rem, 5vw, 5rem);
}
.grid .r-container{
  padding: 0 clamp(3rem, 5vw, 5rem);
}
@media (min-width: 1025px) {
  .grid .l-container {
    padding-right: clamp(3rem, 5vw, 5rem);
    padding-left: clamp(3rem, 5vw, 5rem);
  }
}

.wide-container.w1440 .grid .l-container{
  padding-right: clamp(6rem, 8vw, 8.125rem);
  padding-left: clamp(6.5rem, 8.5vw, 8.75rem);
}
.wide-container.w1440 .grid .r-container{
  padding-left: clamp(3.5rem, 5.5vw, 5.625rem);  
}
.grid img{
  width: 100%;
  object-fit: cover;
}

.align-start{
  align-items: flex-start !important;
}
.justify-start{
  justify-content: flex-start !important;
}
/* フレックスレイアウト */
.flex {
  display: flex;
	flex-shrink: 1;
	justify-content: space-between;
  gap: 1.25rem;
}
.flex .l-container,
.flex .r-container{
  width: 50%;
}

/* 改行設定 */
.nobr {
  display: inline-block;
  white-space: nowrap;
}
.sp-only { display: none; }
.ssp-only { display: none; }
@media (max-width: 768px) {
  .pc-only { display: none; }
  .sp-only { display: inline; }
}
@media (max-width: 375px) {
  .ssp-only { display: inline; }
}
/* ボタン */
.btn {
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 140%; /* 19.6px */
  letter-spacing: 0.7px;
  border-radius: 5px;
  padding: 1rem;
}

/* アイコン付きテキストリンク */
.text-link-arrow {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 1.64px;
  position: relative;
}

.text-link-arrow:hover {
  color: #000;
}

.text-link-arrow::before {
  content: "";
  display: inline-block;
  width: clamp(3rem, 6vw, 4.5rem);
  height: clamp(3rem, 6vw, 4.5rem);
  background-color: #fff;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-image: url("../images/common/link_arrow.svg");
  mask-image: url("../images/common/link_arrow.svg");
  position: absolute;
  right: 0;
  z-index: 2; /* 丸より上に配置 */
  transition: background-color 0.6s cubic-bezier(0.25, 1, 0.5, 1), 
              transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.text-link-arrow::after {
  content: "";
  display: inline-block;
  width: clamp(3rem, 6vw, 4.5rem);
  height: clamp(3rem, 6vw, 4.5rem);
  background-color: #000; /* 初期状態は黒 */
  border-radius: 50%;
  margin-left: 1rem;
  box-sizing: border-box; /* 枠線を含めて計算 */
  border: 1px solid transparent; /* 初期は透明な枠線 */
  transition: background-color 0.6s cubic-bezier(0.25, 1, 0.5, 1), 
              border-color 0.6s cubic-bezier(0.25, 1, 0.5, 1), 
              transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  /*   transition: background-color 0.3s ease, border-color 0.3s ease;
  transition: transform 0.3s ease; */
}

/* ホバー時 */
.text-link-arrow:hover::before {
  background-color: #005eae;
  transform: scale(1.05);
}
.text-link-arrow:hover::after {
  background-color: #fff;
  border-color: #005EAE;
  transform: scale(1.05);
}

/* 戻るボタン */
.text-link-arrow._back {
  padding-left: calc(clamp(2rem, 4.2vw, 2.8125rem) + 1rem);
}
.text-link-arrow._back::before {
  width: clamp(2rem, 4.2vw, 2.8125rem);
  height: clamp(2rem, 4.2vw, 2.8125rem);
  transform: rotate(180deg);
  position: absolute;
  left: 0;
}
.text-link-arrow._back::after {
  width: clamp(2rem, 4.2vw, 2.8125rem);
  height: clamp(2rem, 4.2vw, 2.8125rem);
  margin-left: 0;
  position: absolute;
  left: 0;
}

/* アンカーリンク */
.text-link-arrow._anchor {
  font-weight: normal;
  padding-left: calc(clamp(1.625rem, 3.7vw, 2rem) + 1rem);
}
.text-link-arrow._anchor::before {
  width: clamp(1.625rem, 3.7vw, 2rem);
  height: clamp(1.625rem, 3.7vw, 2rem);
  transform: rotate(90deg);
  position: absolute;
  left: 0;
}
.text-link-arrow._anchor::after {
  width: clamp(1.625rem, 3.7vw, 2rem);
  height: clamp(1.625rem, 3.7vw, 2rem);
  margin-left: 0;
  position: absolute;
  left: 0;
}

a.tel-button,a:hover.tel-button{
  color: #000;
}
.header a.tel-button{
  color: #005EAE;
}
/* ==========================================================================
	ヘッダー & ナビゲーション
========================================================================== */
.header {
  width: calc(100% - 40px);
  background: #fff;
  border-radius: 10px;
  padding: 8px 20px;
  position: fixed;
  top: 25px;
  z-index: 100;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 7px rgba(0, 0, 0, 0.1);
}
.header .container{
  width: 100%;
  max-width: 100%;
  display: flex;
  align-items: center;
  padding: 0;
}

.header .logo{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
  row-gap: .5rem;
  margin-right: 15px;
}
.header .logo img{
  width: 84px;
  margin-right: 7px;
  line-height: 1;
}
.header .logo p{
  color: #000;
  font-size: clamp(0.7rem, 2vw, 1.4375rem); /* 23px */
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.15px;
  white-space: nowrap;
}
.header .logo p span{
  font-weight: 400;
  font-size: clamp(0.5rem, 0.9vw, 0.875rem); /* 14px */ 
}
.header .logo a{
  line-height: 1;
}
.nav {
	display: flex;
	justify-content: flex-end;
  align-self: stretch;
}
.nav ul {
  display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
  list-style: none;
}
.nav ul.main-links {
  align-items: center;
  gap: clamp(1rem, 2vw, 1.875rem);
}
.nav li {
  display: flex;
}
.nav li a {
  font-size: clamp(12px, 1.25vw, 15px);
	font-weight: 500;
	letter-spacing: 0.8px;
  line-height: 140%; /* 21px */
  letter-spacing: 0.75px;
  display: inline-block;
	white-space: nowrap;
}
.nav ul.btn-links {
  justify-content: center;
  gap: 8px;
  margin-left: clamp(1.5rem, 3.5vw, 1.875rem);
}
.nav ul.btn-links li.recruit .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-weight: 700;
  padding: 0 clamp(1.25rem, 2vw, 1.5rem);
  color: #005EAE;
  border: 1px solid #005EAE;
  background: #fff;
  position: relative;
  transition: background-color 0.3s ease;
}
.nav ul.btn-links li.recruit .btn::before {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  margin-right: 8px;
  background-color: currentColor; 
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M7 5.99903C6.17533 5.99903 5.469 5.70503 4.881 5.11703C4.293 4.52903 3.99933 3.82303 4 2.99903C4.00067 2.17503 4.29433 1.46836 4.881 0.879028C5.46767 0.289694 6.174 -0.00330521 7 2.81215e-05C7.826 0.00336145 8.53233 0.296694 9.119 0.880028C9.70567 1.46336 9.99933 2.17003 10 3.00003C10.0007 3.83003 9.707 4.53603 9.119 5.11803C8.531 5.70003 7.82467 5.99303 7 5.99903ZM0 13.23V11.584C0 11.1714 0.12 10.7854 0.36 10.426C0.600667 10.066 0.924 9.78669 1.33 9.58803C2.274 9.13536 3.21867 8.79603 4.164 8.57003C5.10867 8.34336 6.054 8.23003 7 8.23003C7.946 8.23003 8.89167 8.34336 9.837 8.57003C10.7823 8.79669 11.7263 9.13603 12.669 9.58803C13.0757 9.78669 13.399 10.066 13.639 10.426C13.8797 10.7854 14 11.1714 14 11.584V13.23H0Z"/></svg>');
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M7 5.99903C6.17533 5.99903 5.469 5.70503 4.881 5.11703C4.293 4.52903 3.99933 3.82303 4 2.99903C4.00067 2.17503 4.29433 1.46836 4.881 0.879028C5.46767 0.289694 6.174 -0.00330521 7 2.81215e-05C7.826 0.00336145 8.53233 0.296694 9.119 0.880028C9.70567 1.46336 9.99933 2.17003 10 3.00003C10.0007 3.83003 9.707 4.53603 9.119 5.11803C8.531 5.70003 7.82467 5.99303 7 5.99903ZM0 13.23V11.584C0 11.1714 0.12 10.7854 0.36 10.426C0.600667 10.066 0.924 9.78669 1.33 9.58803C2.274 9.13536 3.21867 8.79603 4.164 8.57003C5.10867 8.34336 6.054 8.23003 7 8.23003C7.946 8.23003 8.89167 8.34336 9.837 8.57003C10.7823 8.79669 11.7263 9.13603 12.669 9.58803C13.0757 9.78669 13.399 10.066 13.639 10.426C13.8797 10.7854 14 11.1714 14 11.584V13.23H0Z"/></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.nav ul.btn-links li.recruit .btn:hover{
  color: #fff;
  background: #005EAE;
}

.nav ul.btn-links li.contact {
  flex-wrap: wrap;
  justify-content: center;
}
.nav ul.btn-links li.contact .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  background: #005EAE;
  border: 1px solid #005EAE;
  position: relative;
  transition: background-color 0.3s ease;
  padding: 0.9rem 1rem;
  line-height: 1;
}
.nav ul.btn-links li.contact .btn::before {
  content: "";
  display: block;
  width: 16px;
  height: 12px;
  margin-right: 8px;
  background-color: currentColor; 
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12"><path d="M13.6 0H2.4C1.76348 0 1.15303 0.237053 0.702944 0.65901C0.252856 1.08097 0 1.65326 0 2.25V9.75C0 10.3467 0.252856 10.919 0.702944 11.341C1.15303 11.7629 1.76348 12 2.4 12H13.6C14.2365 12 14.847 11.7629 15.2971 11.341C15.7471 10.919 16 10.3467 16 9.75V2.25C16 1.65326 15.7471 1.08097 15.2971 0.65901C14.847 0.237053 14.2365 0 13.6 0ZM13.272 1.5L8.568 5.91C8.49363 5.9803 8.40515 6.03609 8.30766 6.07417C8.21017 6.11225 8.10561 6.13185 8 6.13185C7.89439 6.13185 7.78983 6.11225 7.69234 6.07417C7.59485 6.03609 7.50637 5.9803 7.432 5.91L2.728 1.5H13.272ZM14.4 9.75C14.4 9.94891 14.3157 10.1397 14.1657 10.2803C14.0157 10.421 13.8122 10.5 13.6 10.5H2.4C2.18783 10.5 1.98434 10.421 1.83431 10.2803C1.68429 10.1397 1.6 9.94891 1.6 9.75V2.5575L6.304 6.9675C6.754 7.38885 7.364 7.62552 8 7.62552C8.636 7.62552 9.246 7.38885 9.696 6.9675L14.4 2.5575V9.75Z"/></svg>');
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12"><path d="M13.6 0H2.4C1.76348 0 1.15303 0.237053 0.702944 0.65901C0.252856 1.08097 0 1.65326 0 2.25V9.75C0 10.3467 0.252856 10.919 0.702944 11.341C1.15303 11.7629 1.76348 12 2.4 12H13.6C14.2365 12 14.847 11.7629 15.2971 11.341C15.7471 10.919 16 10.3467 16 9.75V2.25C16 1.65326 15.7471 1.08097 15.2971 0.65901C14.847 0.237053 14.2365 0 13.6 0ZM13.272 1.5L8.568 5.91C8.49363 5.9803 8.40515 6.03609 8.30766 6.07417C8.21017 6.11225 8.10561 6.13185 8 6.13185C7.89439 6.13185 7.78983 6.11225 7.69234 6.07417C7.59485 6.03609 7.50637 5.9803 7.432 5.91L2.728 1.5H13.272ZM14.4 9.75C14.4 9.94891 14.3157 10.1397 14.1657 10.2803C14.0157 10.421 13.8122 10.5 13.6 10.5H2.4C2.18783 10.5 1.98434 10.421 1.83431 10.2803C1.68429 10.1397 1.6 9.94891 1.6 9.75V2.5575L6.304 6.9675C6.754 7.38885 7.364 7.62552 8 7.62552C8.636 7.62552 9.246 7.38885 9.696 6.9675L14.4 2.5575V9.75Z"/></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.nav ul.btn-links li.contact .btn:hover {
  background-color: #fff;
  color: #005EAE;
}

.nav .btn-links li.contact p {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #005EAE;
  font-size: 13px;
  font-weight: 700;
  line-height: 140%; /* 18.2px */
  letter-spacing: 0.65px;
  text-align: center;
  margin-top: 0.2rem;
  position: relative;
}
.nav .btn-links li.contact p::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  margin-right: 8px;
  background-color: currentColor; 
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12"><path d="M2.41333 5.19333C3.37333 7.08 4.92 8.62 6.80667 9.58667L8.27333 8.12C8.45333 7.94 8.72 7.88 8.95333 7.96C9.7 8.20667 10.5067 8.34 11.3333 8.34C11.7 8.34 12 8.64 12 9.00667V11.3333C12 11.7 11.7 12 11.3333 12C5.07333 12 0 6.92667 0 0.666667C0 0.3 0.3 0 0.666667 0H3C3.36667 0 3.66667 0.3 3.66667 0.666667C3.66667 1.5 3.8 2.3 4.04667 3.04667C4.12 3.28 4.06667 3.54 3.88 3.72667L2.41333 5.19333Z"/></svg>');
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12"><path d="M2.41333 5.19333C3.37333 7.08 4.92 8.62 6.80667 9.58667L8.27333 8.12C8.45333 7.94 8.72 7.88 8.95333 7.96C9.7 8.20667 10.5067 8.34 11.3333 8.34C11.7 8.34 12 8.64 12 9.00667V11.3333C12 11.7 11.7 12 11.3333 12C5.07333 12 0 6.92667 0 0.666667C0 0.3 0.3 0 0.666667 0H3C3.36667 0 3.66667 0.3 3.66667 0.666667C3.66667 1.5 3.8 2.3 4.04667 3.04667C4.12 3.28 4.06667 3.54 3.88 3.72667L2.41333 5.19333Z"/></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.nav h1 {
  display: none !important;
}
@media (max-width: 768px) {
  .header .logo p {
    font-size: initial;
  }
}
/* ==========================================================================
	ヒーローエリア (MV)
========================================================================== */
/* ヒーローエリア */
.hero {
  width: 100%;
  margin: 0 auto;
  color: #fff;
  position: relative;
	background-image: url(../images/top/mv.jpg);
  background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
  overflow: hidden;
}
.hero .container{
  width: 100%;
  max-width: 100%;
  padding-top: clamp(200px, 4.8vw + 180px, 312px);
  padding-bottom: clamp(200px, 4.8vw + 180px, 312px);
  padding-left: clamp(2rem, 3vw, 3.125rem);
  background: linear-gradient(203deg, rgba(0, 94, 174, 0.00) 35.07%, rgba(0, 94, 174, 0.80) 81.84%);
  position: relative;
}
.hero h2 {
	color: #FFF;
  font-size: clamp(3rem, 5vw, 5rem);
  font-weight: 700;
  line-height: 128%; /* 100.07px */
  letter-spacing: 11.727px;
  white-space: nowrap;
}
.hero h2 span {
  background: linear-gradient(90deg, #07D 0%, #005EAE 28.37%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.hero .catch {
  margin-top: 25px;
  line-height: 190%; /* 30.4px */
  letter-spacing: 0.32px;
}

.headerText-scroller {
  width: 100%;
  overflow: hidden; 
  position: absolute;
  bottom: -32px;
  left: 0;
}

.scroller-inner {
  display: flex;
  width: max-content;
  animation: scroll-left 60s linear infinite;
}

.scroller-inner span {
  display: block;
  color: #FFF;
  font-family: Figtree, sans-serif;
  font-size: 8.75rem;
  font-weight: 600;
  line-height: 117%;
  letter-spacing: 7px;
  white-space: nowrap;
  opacity: .4;
  padding-right: 50px; 
}

@keyframes scroll-left {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}


/* ==========================================================================
	セクション共通
========================================================================== */
.section{
	position: relative;
	overflow: hidden;
}
.section h2{
	color: #005EAE;
  font-size: clamp(3rem, 6vw, 4.5rem); 
  font-family: Figtree;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 1.44px;
}
.section h2 span{
  display: block;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.6px;
  margin-top: 1.75rem;
}

.section h3{
  font-size: clamp(1.25rem, 3.5vw, 1.875rem);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 3px;
}

.title-container{
  width: 96%;
  max-width: 1340px;
  margin: 0 auto;
  padding-top: clamp(8rem, 15vw, 15rem);
}
.title-container h2 {
  color: #005EAE;
  font-family: Figtree;
  font-size: clamp(3.5rem, 5.5vw, 5.625rem);
  font-weight: 600;
  letter-spacing: 1.8px;
  line-height: 1;
}
.title-container p {
  color: #005EAE;
  font-size: clamp(1.125rem, 1.5vw, 1.25rem);
  font-weight: 500;
  letter-spacing: 1.6px;
  line-height: 1;
  margin-top: 1rem;
}

.breadcrumb{
  width: 96%;
  max-width: 1340px;
  margin: clamp(3.5rem, 6vw, 5.9375rem) auto 0;
}
.breadcrumb-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
}

.breadcrumb-item {
  display: flex;
  align-items: center;
}
.breadcrumb-item:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 50px;
  height: 1px;
  background-color: #D9D9D9;
  margin: 0 15px;
}

.sub-container .l-container,
.sub-container .r-container{
  padding-left: 0;
  padding-right: 0;
}
.sub-container .p-r{
  padding-right: clamp(3.5rem, 6vw, 5.9375rem) !important;
}
.sub-container .p-l{
  padding-left: clamp(3.5rem, 6vw, 5.9375rem) !important;
}
.sub-container h3{
  color: #005EAE;
}
.sub-container .number,.number{
  color: #005EAE;
  font-family: Figtree;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.32px;
}
.sub-container .sub-catch{
  font-weight: bold;
  font-size: clamp(1.125rem, 1.5vw, 1.25rem);
  margin-top: 20px;
}

.col-links{
  margin-top: clamp(4.5rem, 7vw, 6.875rem);
  gap: clamp(2rem, 3vw, 3.125rem);
}
.col-links .l-container{
  text-align: right;
}

/* ==========================================================================
	1.TOP
========================================================================== */
/* 四角のかざり */
.bg_rectanglesTop::before,
.bg_rectangles::before,
.bg_rectangles::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  opacity: 0.1;
  background: linear-gradient(90deg, #005EAE 0%, #FFF 48.56%, #005EAE 100%);
  width: 100%;
  height: auto;
}

/* メッセージ */
.message{
  padding-bottom: clamp(40px, 8.2vw + 10px, 128px);

}
.message.bg_rectanglesTop::before {
  width: 185px;
  height: 164px;
  top: 60px;
  right: 0;
}

.message .bg_rectangles::before {
  width: 96px;
  height: 85px;
  left: 130px;
  bottom: 240px;
}

.message .bg_rectangles::after {
  width: 155px;
  height: 137px;
  bottom: 65px;
  left: 0;
}

/* スライダー */
/* 外枠：はみ出しを隠す */
.photo-container {
  width: 100%;
  overflow: hidden;
  background: #fff;
}

/* 2つのリストを横並びにする枠 */
.photo-track {
  display: flex;
  width: max-content;
  /* 無限ループアニメーション */
  animation: infinity-scroll 20s linear infinite;
}

/* 画像のリスト */
.photo-list {
  display: flex;
}

/* 各画像アイテムのサイズ設定 */
.photo-item {
  width: 550px;  /* ご指定の幅 */
  height: 350px; /* ご指定の高さ */
  flex-shrink: 0;
}

.photo-item img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 比率を保って切り抜き */
  display: block;
}

/* アニメーション：1セット分（100%）左にスライド */
@keyframes infinity-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); } /* 全体の半分（1セット分）動いたらリセット */
}

/* --- レスポンシブ対応（スマホ） --- */
@media (max-width: 600px) {
  .photo-item {
    width: 100vw; /* スマホ画面いっぱいの幅に */
    height: 65vw; /* 幅に合わせて高さも調整（お好みで） */
  }
}


/* ビジネス */
.r-container .grid-image{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  width: 100%;
  position: relative;
  z-index: 1;
}
.r-container .grid-image .grid-item {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.r-container .grid-image .grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.r-container .grid-image .item-large {
  grid-column: span 2;
}

@media (max-width: 768px) {
  .r-container .grid-image .image-grid {
    grid-template-columns: 1fr; /* 1列にする */
  }
/*   .r-container .grid-image .item-large {
    grid-column: span 1;
  } */
}

.business.bg_rectanglesTop::before {
  width: 155px;
  height: 137px;
  top: 98px;
  left: 50px;
}

.business .bg_rectangles::before {
  width: 135px;
  height: 119px;
  left: calc(50% - 67px);
  top: 271px;
}

.business .bg_rectangles::after {
  width: 128px;
  height: 113px;
  bottom: 101px;
  left: 96px;
}

/* ニュース */
.grid-news {
  display: grid;
  grid-template-columns: 4fr 6fr;
  align-items: top;
}
.grid-news .l-container{
  padding-left: clamp(3rem, 5vw, 5rem);
}

.news-list li {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 1.5rem;
  border-bottom: 1px solid #D9D9D9; 
  padding: 1rem 1.25rem;
  transition: background-color 0.4s ease;
  cursor: pointer;
  position: relative;
}
/* ホバー時に伸びる青い線（下線） */
.news-list li::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #005EAE;
  
  /* 最初は幅（スケール）を0にして左端に置く */
  transform: scaleX(0);
  transform-origin: left; 
  transition: transform 0.5s ease; /* 0.4秒かけて伸びる */
}

/* ホバーした時に線を1(100%)に伸ばす */
.news-list li:hover::after {
  transform: scaleX(1);
}

.news-list li .date{
  color: #005EAE;
  font-family: Roboto;
  font-size: 14px;
  letter-spacing: 0.42px;
}
.news-list li .ico{
  font-size: 12px;
  border-radius: 100px;
  border: 1px solid #D9D9D9;
  padding: .2rem 1.25rem;;
}
.news-list li:hover a{
  color: #005EAE;
}

/* お問い合わせ */
.recruit{
}
.recruit .wide-container{
  width: 100% !important;
  padding: clamp(8rem, 15vw, 14.0625rem) 0;
  position: relative;
}
.recruit .recruit-container{
  text-align: center;
  position: relative;
  z-index: 10;
}
.recruit-text{
  display: flex;
  justify-content: center;
  padding: 0 clamp(3%, 3.5vw, 1.875rem);
}
.recruit-img{
  z-index: 1;
}
.recruit-img img{
  height: 100%;
  object-fit: cover;
  opacity: .6;
}
.recruit-img .item-1,.recruit-img .item-2,.recruit-img .item-3,.recruit-img .item-4 {
  position: absolute;
}
.recruit-img .item-1 {
  /* 幅: 150px$301C246px | 高: 171px$301C281px */
  width: clamp(9.375rem, 15vw, 15.375rem);
  height: clamp(10.6875rem, 17vw, 17.5625rem);
  left: clamp(1.25rem, 4vw, 3.125rem);
  top: clamp(2.5rem, 6vw, 5rem);
}

.recruit-img .item-2 {
  /* 幅: 200px$301C328px | 高: 236px$301C387px */
  width: clamp(12.5rem, 20vw, 20.5rem);
  height: clamp(14.75rem, 24vw, 24.1875rem);
  right: 0;
  top: clamp(2.5rem, 6vw, 5.5625rem);
}

.recruit-img .item-3 {
  /* 幅: 200px$301C324px | 高: 135px$301C219px */
  width: clamp(12.5rem, 20vw, 20.25rem);
  height: clamp(8.4375rem, 13vw, 13.6875rem);
  left: clamp(1.875rem, 6vw, 5.625rem);
  bottom: clamp(6.25rem, 10vw, 10.375rem);
}

.recruit-img .item-4 {
  /* 幅: 140px$301C229px | 高: 110px$301C177px */
  width: clamp(8.75rem, 15vw, 14.3125rem);
  height: clamp(6.875rem, 11vw, 11.0625rem);
  right: clamp(2.5rem, 18vw, 17.125rem);
  bottom: clamp(4.25rem, 7vw, 7.0625rem);
}

@media (max-width: 376px) {
  .recruit-img .item-4 {
    right: 0;
    bottom: 0;
  }
}

/* お問い合わせ */
.btn-contact{
  max-width: 433px;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #fff;
  font-size: clamp(0.875rem, 1.1vw, 1rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 1.28px;
  background-color: #000;
  border-radius: 5px;
  padding: clamp(24px, 3.0vw, 36px) clamp(1.125rem, 1.5vw, 1.25rem);
  position: relative;
  transition: background-color 0.3s ease;
  cursor: pointer;
}
.btn-contact:after{
	content: "";
  display: block;
  width: 16px;
  height: 12px;
  background-image: url(../images/common/link_arrow.svg);
  background-position: center;
}
.btn-contact:hover{
  color: #fff;
  background-color: #005EAE;
}


.sub-box-contact{
  max-width: 433px;
  display: flex;
  flex-wrap: wrap;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  background-color: #fff;
  border-radius: 5px;
  padding: clamp(1.125rem, 1.5vw, 1.25rem) 0;
}
.sub-box-contact p{
  flex: 1;
  position: relative;
}
.sub-box-contact p:first-child{
  border-right: 1px solid #d9d9d9;
}
.sub-box-contact span,
.footer .tel{
  color: #005EAE;
  font-family: Figtree;
  font-size: clamp(1.125rem, 1.5vw, 1.25rem);
  font-weight: 600;
  letter-spacing: 0.8px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.sub-box-contact .tel span::before,
.footer .tel::before{
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  margin-right: 8px;
  background-color: currentColor; 
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"><path d="M3.46917 7.46542C4.84917 10.1775 7.0725 12.3912 9.78458 13.7808L11.8929 11.6725C12.1517 11.4137 12.535 11.3275 12.8704 11.4425C13.9438 11.7971 15.1033 11.9887 16.2917 11.9887C16.8188 11.9887 17.25 12.42 17.25 12.9471V16.2917C17.25 16.8188 16.8188 17.25 16.2917 17.25C7.29292 17.25 0 9.95708 0 0.958333C0 0.43125 0.43125 0 0.958333 0H4.3125C4.83958 0 5.27083 0.43125 5.27083 0.958333C5.27083 2.15625 5.4625 3.30625 5.81708 4.37958C5.9225 4.715 5.84583 5.08875 5.5775 5.35708L3.46917 7.46542Z"/></svg>');
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"><path d="M3.46917 7.46542C4.84917 10.1775 7.0725 12.3912 9.78458 13.7808L11.8929 11.6725C12.1517 11.4137 12.535 11.3275 12.8704 11.4425C13.9438 11.7971 15.1033 11.9887 16.2917 11.9887C16.8188 11.9887 17.25 12.42 17.25 12.9471V16.2917C17.25 16.8188 16.8188 17.25 16.2917 17.25C7.29292 17.25 0 9.95708 0 0.958333C0 0.43125 0.43125 0 0.958333 0H4.3125C4.83958 0 5.27083 0.43125 5.27083 0.958333C5.27083 2.15625 5.4625 3.30625 5.81708 4.37958C5.9225 4.715 5.84583 5.08875 5.5775 5.35708L3.46917 7.46542Z"/></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.sub-box-contact .tel span::before{
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  margin-right: 8px;
  background-color: currentColor; 
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"><path d="M3.46917 7.46542C4.84917 10.1775 7.0725 12.3912 9.78458 13.7808L11.8929 11.6725C12.1517 11.4137 12.535 11.3275 12.8704 11.4425C13.9438 11.7971 15.1033 11.9887 16.2917 11.9887C16.8188 11.9887 17.25 12.42 17.25 12.9471V16.2917C17.25 16.8188 16.8188 17.25 16.2917 17.25C7.29292 17.25 0 9.95708 0 0.958333C0 0.43125 0.43125 0 0.958333 0H4.3125C4.83958 0 5.27083 0.43125 5.27083 0.958333C5.27083 2.15625 5.4625 3.30625 5.81708 4.37958C5.9225 4.715 5.84583 5.08875 5.5775 5.35708L3.46917 7.46542Z"/></svg>');
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"><path d="M3.46917 7.46542C4.84917 10.1775 7.0725 12.3912 9.78458 13.7808L11.8929 11.6725C12.1517 11.4137 12.535 11.3275 12.8704 11.4425C13.9438 11.7971 15.1033 11.9887 16.2917 11.9887C16.8188 11.9887 17.25 12.42 17.25 12.9471V16.2917C17.25 16.8188 16.8188 17.25 16.2917 17.25C7.29292 17.25 0 9.95708 0 0.958333C0 0.43125 0.43125 0 0.958333 0H4.3125C4.83958 0 5.27083 0.43125 5.27083 0.958333C5.27083 2.15625 5.4625 3.30625 5.81708 4.37958C5.9225 4.715 5.84583 5.08875 5.5775 5.35708L3.46917 7.46542Z"/></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.sub-box-contact .fax span::before{
  content: "";
  display: block;
  width: 20px;
  height: 17px;
  margin-right: 8px;
  background-color: currentColor; 
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 17"><path d="M2.875 16.2917C2.07639 16.2917 1.39757 16.0122 0.838542 15.4531C0.279514 14.8941 0 14.2153 0 13.4167V6.70833C0 5.90972 0.279514 5.2309 0.838542 4.67188C1.39757 4.11285 2.07639 3.83333 2.875 3.83333C3.30625 3.83333 3.70172 3.92118 4.06142 4.09687C4.42111 4.27257 4.7364 4.50417 5.00729 4.79167H5.75V0H15.3333V4.79167H16.2917C17.0903 4.79167 17.7691 5.07118 18.3281 5.63021C18.8872 6.18924 19.1667 6.86806 19.1667 7.66667V15.3333H5.00729C4.73576 15.6208 4.42047 15.8524 4.06142 16.0281C3.70236 16.2038 3.30689 16.2917 2.875 16.2917ZM2.875 14.375C3.14653 14.375 3.37429 14.283 3.55829 14.099C3.74229 13.915 3.83397 13.6876 3.83333 13.4167V6.70833C3.83333 6.43681 3.74133 6.20936 3.55733 6.026C3.37333 5.84264 3.14589 5.75064 2.875 5.75C2.60411 5.74936 2.37667 5.84136 2.19267 6.026C2.00867 6.21064 1.91667 6.43808 1.91667 6.70833V13.4167C1.91667 13.6882 2.00867 13.916 2.19267 14.1C2.37667 14.284 2.60411 14.3756 2.875 14.375ZM7.66667 4.79167H13.4167V1.91667H7.66667V4.79167ZM5.75 13.4167H17.25V7.66667C17.25 7.39514 17.158 7.16769 16.974 6.98433C16.79 6.80097 16.5626 6.70897 16.2917 6.70833H5.75V13.4167ZM12.4583 9.58333C12.7299 9.58333 12.9576 9.49133 13.1416 9.30733C13.3256 9.12333 13.4173 8.89589 13.4167 8.625C13.416 8.35411 13.324 8.12667 13.1407 7.94267C12.9573 7.75867 12.7299 7.66667 12.4583 7.66667C12.1868 7.66667 11.9594 7.75867 11.776 7.94267C11.5926 8.12667 11.5006 8.35411 11.5 8.625C11.4994 8.89589 11.5914 9.12365 11.776 9.30829C11.9606 9.49293 12.1881 9.58461 12.4583 9.58333ZM15.3333 9.58333C15.6049 9.58333 15.8326 9.49133 16.0166 9.30733C16.2006 9.12333 16.2923 8.89589 16.2917 8.625C16.291 8.35411 16.199 8.12667 16.0157 7.94267C15.8323 7.75867 15.6049 7.66667 15.3333 7.66667C15.0618 7.66667 14.8344 7.75867 14.651 7.94267C14.4676 8.12667 14.3756 8.35411 14.375 8.625C14.3744 8.89589 14.4664 9.12365 14.651 9.30829C14.8356 9.49293 15.0631 9.58461 15.3333 9.58333ZM12.4583 12.4583C12.7299 12.4583 12.9576 12.3663 13.1416 12.1823C13.3256 11.9983 13.4173 11.7709 13.4167 11.5C13.416 11.2291 13.324 11.0017 13.1407 10.8177C12.9573 10.6337 12.7299 10.5417 12.4583 10.5417C12.1868 10.5417 11.9594 10.6337 11.776 10.8177C11.5926 11.0017 11.5006 11.2291 11.5 11.5C11.4994 11.7709 11.5914 11.9987 11.776 12.1833C11.9606 12.3679 12.1881 12.4596 12.4583 12.4583ZM15.3333 12.4583C15.6049 12.4583 15.8326 12.3663 16.0166 12.1823C16.2006 11.9983 16.2923 11.7709 16.2917 11.5C16.291 11.2291 16.199 11.0017 16.0157 10.8177C15.8323 10.6337 15.6049 10.5417 15.3333 10.5417C15.0618 10.5417 14.8344 10.6337 14.651 10.8177C14.4676 11.0017 14.3756 11.2291 14.375 11.5C14.3744 11.7709 14.4664 11.9987 14.651 12.1833C14.8356 12.3679 15.0631 12.4596 15.3333 12.4583ZM6.70833 12.4583H10.5417V7.66667H6.70833V12.4583Z"/></svg>');
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 17"><path d="M2.875 16.2917C2.07639 16.2917 1.39757 16.0122 0.838542 15.4531C0.279514 14.8941 0 14.2153 0 13.4167V6.70833C0 5.90972 0.279514 5.2309 0.838542 4.67188C1.39757 4.11285 2.07639 3.83333 2.875 3.83333C3.30625 3.83333 3.70172 3.92118 4.06142 4.09687C4.42111 4.27257 4.7364 4.50417 5.00729 4.79167H5.75V0H15.3333V4.79167H16.2917C17.0903 4.79167 17.7691 5.07118 18.3281 5.63021C18.8872 6.18924 19.1667 6.86806 19.1667 7.66667V15.3333H5.00729C4.73576 15.6208 4.42047 15.8524 4.06142 16.0281C3.70236 16.2038 3.30689 16.2917 2.875 16.2917ZM2.875 14.375C3.14653 14.375 3.37429 14.283 3.55829 14.099C3.74229 13.915 3.83397 13.6876 3.83333 13.4167V6.70833C3.83333 6.43681 3.74133 6.20936 3.55733 6.026C3.37333 5.84264 3.14589 5.75064 2.875 5.75C2.60411 5.74936 2.37667 5.84136 2.19267 6.026C2.00867 6.21064 1.91667 6.43808 1.91667 6.70833V13.4167C1.91667 13.6882 2.00867 13.916 2.19267 14.1C2.37667 14.284 2.60411 14.3756 2.875 14.375ZM7.66667 4.79167H13.4167V1.91667H7.66667V4.79167ZM5.75 13.4167H17.25V7.66667C17.25 7.39514 17.158 7.16769 16.974 6.98433C16.79 6.80097 16.5626 6.70897 16.2917 6.70833H5.75V13.4167ZM12.4583 9.58333C12.7299 9.58333 12.9576 9.49133 13.1416 9.30733C13.3256 9.12333 13.4173 8.89589 13.4167 8.625C13.416 8.35411 13.324 8.12667 13.1407 7.94267C12.9573 7.75867 12.7299 7.66667 12.4583 7.66667C12.1868 7.66667 11.9594 7.75867 11.776 7.94267C11.5926 8.12667 11.5006 8.35411 11.5 8.625C11.4994 8.89589 11.5914 9.12365 11.776 9.30829C11.9606 9.49293 12.1881 9.58461 12.4583 9.58333ZM15.3333 9.58333C15.6049 9.58333 15.8326 9.49133 16.0166 9.30733C16.2006 9.12333 16.2923 8.89589 16.2917 8.625C16.291 8.35411 16.199 8.12667 16.0157 7.94267C15.8323 7.75867 15.6049 7.66667 15.3333 7.66667C15.0618 7.66667 14.8344 7.75867 14.651 7.94267C14.4676 8.12667 14.3756 8.35411 14.375 8.625C14.3744 8.89589 14.4664 9.12365 14.651 9.30829C14.8356 9.49293 15.0631 9.58461 15.3333 9.58333ZM12.4583 12.4583C12.7299 12.4583 12.9576 12.3663 13.1416 12.1823C13.3256 11.9983 13.4173 11.7709 13.4167 11.5C13.416 11.2291 13.324 11.0017 13.1407 10.8177C12.9573 10.6337 12.7299 10.5417 12.4583 10.5417C12.1868 10.5417 11.9594 10.6337 11.776 10.8177C11.5926 11.0017 11.5006 11.2291 11.5 11.5C11.4994 11.7709 11.5914 11.9987 11.776 12.1833C11.9606 12.3679 12.1881 12.4596 12.4583 12.4583ZM15.3333 12.4583C15.6049 12.4583 15.8326 12.3663 16.0166 12.1823C16.2006 11.9983 16.2923 11.7709 16.2917 11.5C16.291 11.2291 16.199 11.0017 16.0157 10.8177C15.8323 10.6337 15.6049 10.5417 15.3333 10.5417C15.0618 10.5417 14.8344 10.6337 14.651 10.8177C14.4676 11.0017 14.3756 11.2291 14.375 11.5C14.3744 11.7709 14.4664 11.9987 14.651 12.1833C14.8356 12.3679 15.0631 12.4596 15.3333 12.4583ZM6.70833 12.4583H10.5417V7.66667H6.70833V12.4583Z"/></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

@media (max-width: 1000px) {
  .sub-box-contact{
    display: flex;
    flex-wrap: wrap;
    padding-top: .5rem;
    padding-bottom: .8rem;
  }
  .sub-box-contact p{
    width: 100%;
    flex: none;
  }
  .sub-box-contact p:first-child{
    width: 94%;
    margin: 0 auto .5rem;
    border-right: none;
    border-bottom: 1px solid #d9d9d9;
    padding-bottom: .5rem;
  }
}
/* ==========================================================================
	フッター
========================================================================== */
.footer{
  padding-top: clamp(3rem, 5vw, 5rem);
}
.footer-nav {
  width: 100%;
  text-align: right; /* ブロック全体を右に寄せる */
}
.footer-link {
  display: inline-grid;
  grid-template-columns: repeat(2, auto);
  gap: 1rem clamp(3rem, 5vw, 5rem);
  list-style: none;
  text-align: left;
  padding: 0;
}

.footer-logo{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
  row-gap: .5rem;
}
.footer-logo img{
  width: 84px;
}
.footer-logo p{
  color: #000;
  font-size: clamp(1.1875rem, 2vw, 1.4375rem); /* 23px */
  font-weight: 700;
  line-height: 140%; /* 21px */
  letter-spacing: 0.15px;
  margin-left: 7px;
}
.footer-logo p span{
  font-weight: 400;
  font-size: clamp(0.8rem, 0.9vw, 0.875rem); /* 14px */ 
}

.footer .tel{
  color: #000;
  font-family: Figtree;
  font-size: 15px;
  font-weight: 400;
  justify-content: left;
}
.footer .tel::before{
  width: 12px;
  height: 12px;
}
.footer .footer-top{
  padding-bottom: clamp(5rem, 8vw, 7.5rem);
}
.footer .footer-bottom .grid{
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  border-top: 1px solid #D9D9D9;
  padding-top: clamp(1.5rem, 3.5vw, 1.875rem);
  padding-bottom: clamp(1.5rem, 3.5vw, 1.875rem);
}
.footer .footer-bottom .r-container{
  text-align: right;
}

/* ==========================================================================
	2. business
========================================================================== */
.b-catch-text{
  padding: 0 clamp(3.5rem, 5.5vw, 5.625rem);
}

.bg-ticker {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center; /* 中央に配置 */
  overflow: hidden;
  z-index: -1;
}

.scrolling-text {
  color: #F7FAFC;
  font-family: Figtree;
  font-size: 120px;
  font-style: normal;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  white-space: nowrap;
  animation: scroll 30s linear infinite;
}

@keyframes scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.b-a-container{
  padding: 0 clamp(3.5rem, 5.5vw, 5.625rem);
}
.b-a-container h3{
  color: #005EAE;  
}
.b-a-container ul{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 40px;
  margin-top: 20px;
}
.b-a-container ul li{
  width: 160px;
  height: 160px;
  padding: 1rem;
  background-color: #fff;
  border-radius: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 768px) {
  .b-a-container{
    padding: 0;
  }
  .b-a-container ul {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
  .b-a-container ul li{
    width: auto;
    height: auto;
  }
}
@media (max-width: 375px) {
  .b-a-container ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ==========================================================================
	3. Feature
========================================================================== */
#feature .bg_rectanglesTop::before {
  width: 185px;
  height: 125px;
  top: 149px;
  right: 0;
}

#feature .bg_rectangles::before {
  width: 96px;
  height: 85px;
  left: 113px;
  top: 96px;
}

#feature  .bg_rectangles::after {
  width: 155px;
  height: 137px;
  bottom: 84px;
  left: 0;
}

@media (max-width: 768px) {
  #feature .bg_rectanglesTop::before {
    top: 30%;
    right: -1rem;
    transform: scale(.8);
    transform-origin: right top;
  }

  #feature .bg_rectangles::before {
    left: 0;
    top: 1rem;
  }

  #feature  .bg_rectangles::after {
    bottom: 0;
    transform: scale(.8);
    transform-origin: left bottom;
  }
}

/* ==========================================================================
	4. Company
========================================================================== */
.c-table{
  width: 100%;
  border-collapse: collapse;
}
.c-table th,.c-table td{
  padding: 30px 20px;
  border-bottom: 1px solid #d9d9d9;
}
.c-table th{
  text-align: left;
  vertical-align: top;
  width: 30%;
}
.c-table td{
  font-size: clamp(0.8rem, 0.9vw, 0.875rem);
}
.c-table .c-table-history div{
  display: flex;
  gap: 1rem;
}
.c-table .c-table-history div dt{
  color: #005EAE;
}
.c-table .c-table-history div dd{
  flex: 1;
}
@media (max-width: 768px) {
  .c-table{
    border-top: 1px solid #d9d9d9;
  }
  .c-table th,.c-table td{
    width: 100%;
    padding: 1rem;
    display: block;
    border-left: 1px solid #d9d9d9;
    border-right: 1px solid #d9d9d9;
  }
  .c-table th{
    background-color: #F2F5F7;
  }
}

/* ==========================================================================
	5. プライバシーポリシー
========================================================================== */
#privacy .p-container {
  padding: 0 clamp(1.75rem, 4vw, 2.5rem);
}
#privacy .p-container a{
  color: #005EAE;
  word-break: break-all;
  transition: color 0.3s;
}
#privacy .p-container a:hover{
  text-decoration: underline;
}
.ml-5{
  margin-left: 5px;
}
#privacy .p-container h2 {
  font-size: clamp(1.5rem, 3.5vw, 1.875rem) !important;
  font-weight: 700;
  letter-spacing: 3px;
  color: #005EAE;
  border-bottom: 1px solid #D9D9D9;
  line-height: 2;
  margin-top: 4rem;
}
#privacy .p-container h3{
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  margin-top: 4rem;
}
#privacy .p-container p{
  margin-top: 1rem;
}
#privacy .p-container ol {
  margin-left: 1.6rem;
  list-style-type: none;
}
#privacy .p-container ol > li {
  list-style-type: decimal;
}
#privacy .p-container .table {
  overflow-x: auto;
  overflow-y: hidden;
  margin-top: 2rem;
}
#privacy .p-container .table > table {
  width: auto;
  border-spacing: 0;
  empty-cells: show;
  table-layout: fixed;
  min-width: 100%;
  border-collapse: collapse;
  border-bottom: 1px solid #C8CED3;
}
#privacy .p-container .table > table.middle th, #privacy .p-container .table > table.middle td {
  vertical-align: middle;
}
#privacy .p-container .table > table th, #privacy .p-container .table > table td {
  padding: 16px;
  border-top: 1px solid #C8CED3;
  border-left: 1px solid #C8CED3;
  line-height: 27px;
}
#privacy .p-container .table > table th.w_30, #privacy .p-container .table > table td.w_30 {
  width: 30%;
}

#privacy .p-container .table > table th:first-child, #privacy .p-container .table > table td:first-child {
  border-left: none;
  border-right: 1px solid #C8CED3;
}
#privacy .p-container .table > table tbody th {
  text-align: left;
  background: #F2F5F7;
}
#privacy .p-container .table > table th, #privacy .p-container .table > table td {
  padding: 16px;
  border-top: 1px solid #C8CED3;
  border-left: 1px solid #C8CED3;
  line-height: 27px;
}
#privacy .p-container h4 {
  padding: 0 0 0 16px;
  margin-top: 64px;
  margin-bottom: 64px;
  border-left: 5px solid #C8CED3;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 36px;
  color: #61788B;
  font-weight: normal;
}
#privacy .p-container ul {
  margin-left: 1.6rem;
}
#privacy .p-container ul > li {
  list-style-type: disc;
}
#privacy .p-container ul.list-link{
  margin-left: 0;
}
#privacy .p-container ul.list-link li{
  list-style-type: none;
}
#privacy .p-container ul.list-link li a{
  color: #000;
  transition: color 0.3s;
}
#privacy .p-container ul.list-link li a:hover{
  color: #005EAE;
  transform: none;
  text-decoration: none;
}
@media (max-width: 768px) {
  #privacy .p-container {
    padding: 0;
  }
  #privacy .p-container table th,
  #privacy .p-container table td{
    width: 100% !important;
    display: block;
  }
  #privacy .p-container table th{
    border-left: 1px solid #C8CED3 !important;
  }
  #privacy .p-container table td{
    border-right: 1px solid #C8CED3 !important;
  }
}
.footer.line{
  border-top: 1px solid #D9D9D9;
}

/* ==========================================================================
	6. 機械設計・製作 / machine
========================================================================== */
.bg_machine{
  background: linear-gradient(122deg, #E1F1FF 22.14%, #FCFDFE 53.75%, #E1F1FF 89.24%);
  padding-bottom: clamp(40px, 8.2vw + 10px, 128px);
}
.bg_machine .sub-container.grid {
  gap: 6.5vw;
}

.sub-container--machine{
  border-radius: 10px;
  background: #FFF;
  padding: clamp(0.875rem, 1vw, 0.9375rem);
  margin-bottom: 10px;
  gap: 0;
  grid-template-columns: 1fr 420px;
}
.sub-container--machine .l-container{
  padding: 0 clamp(3rem, 5vw, 5rem);
}
.sub-container--machine .r-container{
  line-height: 1;
}
.flex-strengths{
  display: flex;
  gap: clamp(1.5rem, 4.2vw, 2.8125rem);;
  margin-bottom: clamp(5rem, 8vw, 7.5rem);
}
.flex-strengths dl{
  width: calc(100% / 3);
}
.flex-strengths dl dt{
  margin-bottom: 2rem;
  line-height: 1;
}
.flex-strengths dl dd{
  line-height: 1.6;
}
.flex-strengths dl dd .number{
  margin-bottom: .3rem;
}
.btn-container .btn-item{
  border-radius: 10px;
  background: #FFF;
  padding: clamp(0.875rem, 1vw, 0.9375rem);
}
.btn-container .btn-item a.btn-other{
  display: grid;
  grid-template-columns: clamp(6.5rem, 13vw, 11.875rem) 1fr;
  align-items: center;
  color: #005EAE !important;
  font-size: clamp(.8rem, 1.5vw, 1.25rem);
  gap: clamp(1rem, 3.5vw, 1.875rem);
  position: relative;
}
.btn-container .btn-item a.btn-other::before {
  content: "";
  display: inline-block;
  background-color: #fff;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-image: url(../images/common/link_arrow.svg);
  mask-image: url(../images/common/link_arrow.svg);
  transition: background-color 0.6s cubic-bezier(0.25, 1, 0.5, 1), transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  width: clamp(2rem, 4.2vw, 2.8125rem);
  height: clamp(2rem, 4.2vw, 2.8125rem);
  position: absolute;
  right: 0;
  z-index: 2;
}
.btn-container .btn-item a.btn-other::after {
  content: "";
  display: inline-block;
  width: clamp(2rem, 4.2vw, 2.8125rem);
  height: clamp(2rem, 4.2vw, 2.8125rem);
  background-color: #000;
  border-radius: 50%;
  box-sizing: border-box;
  border: 1px solid transparent;
  transition: background-color 0.6s cubic-bezier(0.25, 1, 0.5, 1), border-color 0.6s cubic-bezier(0.25, 1, 0.5, 1), transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  position: absolute;
  right: 0;
}
/* ホバー時 */
.btn-container .btn-item a.btn-other:hover::before {
  background-color: #005eae;
  transform: scale(1.05);
}
.btn-container .btn-item a.btn-other:hover::after {
  background-color: #fff;
  border-color: #005EAE;
  transform: scale(1.05);
}
@media (max-width: 768px) {
  #machine .title-container h2{
    font-size: clamp(2rem, 4.2vw, 2.8125rem);
  }
  .bg_machine .sub-container.grid {
    gap: 0;
  }
  .sub-container--machine .l-container{
    padding-top: 1rem;
  }
  .flex-strengths{
    flex-direction: column;
    gap: 1rem;
  }
  .flex-strengths dl{
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 1rem;
    align-items: center;
  }
  .flex-strengths dl dt{
    margin-bottom: 0;
  }
  .btn-container .btn-item{
    margin-bottom: 1rem;
  }
}

/* ==========================================================================
	7. 新着情報 / News
========================================================================== */
/* .news-section{
  display: grid;
  grid-template-columns: 214px auto;
  gap: 90px;
  align-items: flex-start;
}
.tag-title{
  font-weight: 500;
  letter-spacing: 1.3px;
  margin-bottom: 20px;
}
.news-tags li{
  line-height: 1;
  font-size: 12px;
  padding: 6px 20px;
  border-radius: 1.6rem;
  border: 1px solid #D9D9D9;
}
.news-tags li{
  margin-bottom: 13px;
  text-align: center;
}
.news-tags li.current{
  color: #fff;
  border: 1px solid #005EAE;
  background: #005EAE;
} */

.news-list-item{
  display: grid;
  grid-template-columns: 226px auto;
  align-items: flex-start;
  gap: 25px 35px;
  border-bottom: 1px solid #D9D9D9;
  margin-bottom: 25px;
}
.news-list-item dt{
  line-height: 1;
}
.news-list-item dt img{
  width: 100%;
  border-radius: 5px;
  border: 1px solid #D9D9D9;
  transition: all .5s;
}
a:hover .news-list-item dt img{
  opacity: .7;
}
.news-list-item .news-list-title{
  font-weight: 500;
  margin-top: 5px;
}
.news-list-item .news-list-text{
  font-size: 14px;
  color: #606060;
  margin-top: 5px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 2;
}
.news-list-item .news-list-icon{
  display: flex;
  align-items: center;
  gap: 1rem;
}
.news-list-item .news-icon{
  display: inline-block;
  border-radius: 100px;
  color: #fff;
  background: #005EAE;
  line-height: 1;
  font-size: 12px;
  padding: 6px 20px;
  border-radius: 1.6rem;
}
.news-list-item .news-date{
  font-family: Figtree;
  font-size: 14px;
  letter-spacing: 0.42px;
  line-height: 1;
}

/* ページ送り */
.pagination-container {
  display: flex;
  justify-content: center;
  margin: 5rem 0 0;
  position: relative;
}

.pagination {
  display: flex;
  list-style: none;
  padding: 0;
  gap: 10px;
  align-items: center;
}
.pagination li{
  font-family: Figtree;
  column-gap: 0;
  border-bottom: 0;
  padding: 0;
}
.pagination li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  text-decoration: none;
  font-size: 14px;
  border-radius: 50%;
  border: 1px solid #000;
  background: #FFF;
  transition: all 0.3s;
}
.pagination li a:hover {
  background-color: #000;
  color: #fff;
}
.pagination li.active a {
  background-color: #000;
  color: #fff;
}

.pagination li.dots {
  padding: 0 5px;
}

.pagination li.prev a,.pagination li.next a{
  border: none;
}
.pagination li.prev {
  width: auto;
  position: absolute;
  left: 0;
  padding-left: 47px;
  font-size: 14px;
}
.pagination li.next {
  width: auto;
  position: absolute;
  padding-right: 47px;
  font-size: 14px;
  right: 0;
}
.pagination li.next a,.pagination li.prev a {
  font-size: 14px;
  background: none;
}
.pagination li.prev a::before {
  content: "";
  display: block;
  width: 47px;
  height: 47px;
  background-color: #000;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-image: url("../images/common/link_arrow.svg");
  mask-image: url("../images/common/link_arrow.svg");
  transform: rotate(180deg);
  position: absolute;
  left: 0;
}
.pagination li.next a::after {
  content: "";
  display: inline-block;
  width: 47px;
  height: 47px;
  background-color: #000;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-image: url("../images/common/link_arrow.svg");
  mask-image: url("../images/common/link_arrow.svg");
  position: absolute;
  right: 0;
}
.pagination li.next a:hover,.pagination li.prev a:hover {
  color: #000;
}
@media (max-width: 768px) {
  .news-section{
    display: block;
  }
  .news-tags{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
  }
  .news-tags li{
    margin-bottom: 0;
  }
  .news-container{
    margin-top: 1.5rem;
  }
  .news-list-item{
    display: block;
    margin-bottom: 3rem;
    border-bottom: none;
  }
  .news-list-item dt{
    margin-bottom: 1rem;
  }
}

/* ニュース／記事 */
.title-container.new-detail h2{
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: #000;
  font-family: "Noto Sans JP";
  line-height: 1.4;
}
.title-container.new-detail h2 p{
  color: #000;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 1.4px;
  margin-bottom: 20px;
}
.title-container.new-detail h2 .news-icon{
  display: inline-block;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  padding: .3rem 1rem;
  margin-left: 1rem;
  border-radius: 100px;
  color: #fff;
  background: #005EAE;
}

.news-detail{
  max-width: 1000px;
  width: 94%;
  margin: clamp(4.5rem, 7vw, 6.875rem) auto 0;
}
.news-detail .grid,
.news-detail .text{
  margin-top: 2rem;
  padding: 0 2rem;
  gap: 2rem;
}

.news-detail h2{
  color: #000;
  font-size: clamp(1.5rem, 3.5vw, 1.875rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 2.6px;
  padding-bottom: 20px;
  position: relative;
}
.news-detail h2::before{
  content: "";
  display: block;
  width: 25px !important;
  height: 5px !important;
  background-image: none;
  background-color: #005EAE;
  position: absolute;
  left: 0;
  bottom: 0;
}

.news-detail h3{
  font-size: clamp(1.375rem, 2vw, 1.625rem);/* 26px */
  border-left: 5px solid #005EAE;
  line-height: 1;
  margin-top: 3.5rem;
  padding-left: 1rem;
  text-align: left;
}
.news-detail .news-detail-text{
  line-height: 170%; /* 27.2px */
  letter-spacing: 2.4px;
}
.news-detail .news-detail-photo{
  width: 820px;
  max-width: 100%;
  margin: 0 auto;
}
.news-detail .news-detail-photo .text-sub{
  color: #AEAEAE;
  font-size: 12px;
}

.news-detail table{
  width: 100%;
  border-top: 1px solid #D9D9D9;
  border-collapse: collapse;
}
.news-detail table th{
  background-color: #F2F7FB;
  font-weight: 700;
  text-align: left;
}
.news-detail table th,
.news-detail table td{
  padding: 30px 20px;
  border-bottom: 1px solid #D9D9D9;
}
.news-detail table td{
  font-size: 14px;
}
.news-detail table.table-col th{
  width: 30%;
}
.news-detail table.table-row th,
.news-detail table.table-row td{
  width: calc(100% / 3);
  border-right: 1px solid #D9D9D9;
  vertical-align: top;
}
.news-detail table.table-row th:last-child,
.news-detail table.table-row td:last-child{
  border-right: none;
}
ul.list-disc li{
  list-style-type: disc;
  margin-left: 1rem;
}
.news-detail .news-detail-text .list-disc li,
.news-detail .news-detail-text .list-decimal li{
  font-size: 14px;
  margin-bottom: 1rem;
}
.news-detail .news-detail-text .list-disc li::marker,
.news-detail .news-detail-text .list-decimal li::marker{
  color: #005EAE;
}
.news-detail .news-detail-text .list-decimal{
  margin-left: 1rem;
}
.news-detail .news-detail-text .list-decimal li{
  list-style-type: decimal;
}

@media (max-width: 768px) {
  .news-detail table.table-col th,
  .news-detail table.table-col td{
    display: block;
    padding: 1rem;
    width: 100% !important;
  }
  .news-detail table.table-row th,
  .news-detail table.table-row td{
    padding: 1rem;
  }
  .news-detail .news-detail-text .list-decimal {
    margin-left: 2rem;
  }
}

/* ==========================================================================
  お問い合わせ
========================================================================== */
.contact-container{
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
}

/* フォームの外枠 */
.form-container {
  margin-top: clamp(3rem, 6vw, 4.5rem);
}
/* 各入力項目の間隔 */
.form-group {
  margin-bottom: 24px;
  display: grid;
  grid-template-columns: 1fr 3fr;
  gap: clamp(1.5rem, 2.5vw, 1.75rem);
  align-items: baseline;
}

label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}
label span{
  display: inline-block;
  font-size: 12px;
  line-height: 1;
  padding: .4rem .8rem;
  margin-left: 1rem;
  border-radius: 3px;
  color: #fff;
  background: #005EAE;
  position: absolute;
  right: 0;
}

/* 入力フィールドのスタイル */
input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
  width: 100%;
  padding: 16px 20px;
  border-radius: 5px;
  border: 1px solid #D9D9D9;
  box-sizing: border-box;
  transition: border-color 0.3s, box-shadow 0.3s;
}
input::placeholder,
textarea::placeholder {
  color: #d9d9d9 !important;
  font-size: 0.9rem;
  font-family: "Noto Sans JP", sans-serif;
}
input:focus,
textarea:focus {
  outline: none;
  border-color: #414141;
  box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
}

/* チェックボックス部分 */
.policy-group {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  line-height: 1;
  margin-top: clamp(2rem, 4.2vw, 2.8125rem);
}
.policy-group input {
  cursor: pointer;
}
.policy-group input[type="checkbox"] {
  transform: scale(1.3);
}
.policy-group a {
  text-decoration: underline;
}

.contact-container .btn-contact{
  margin: clamp(2.25rem, 3.5vw, 3.4375rem) auto 0;
}
button, 
input[type="submit"], 
input[type="button"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-shadow: none;
  border: none;
  outline: none;
}

/* 完了画面 */
.form-group {
  margin-bottom: 24px;
  display: grid;
  grid-template-columns: 1fr 3fr;
  gap: clamp(1.5rem, 2.5vw, 1.75rem);
  align-items: baseline;
}
.form-container--confirm {
  margin-top: clamp(3rem, 6vw, 4.5rem);
  border-top: 1px solid #d9d9d9;
}
/* 各入力項目の間隔 */
.form-container--confirm .form-group {
  border-bottom: 1px solid #d9d9d9;
  margin: 0;
  gap: 0;
  align-items: normal;
}
.form-container--confirm .form-group--title {
  background-color: rgba(0, 0, 0, 0.02);
  padding: 20px;
}
.form-container--confirm .form-group--content {
  padding: 20px;
  font-size: 1rem;
}
.form-container--confirm .confirm-text-area {
  line-height: 1.6;
  white-space: pre-wrap; /* 改行をそのまま表示 */
}
.form-container--confirm .btn-container {
  display: flex;
  justify-content: center;
  gap: 2rem;
}
.form-container--confirm .btn-container .btn-contact {
  max-width: 20rem !important;
  width: 100% !important;
  margin-left: 0;
  margin-right: 0;
  padding: 2rem 1.2rem;
}
.form-container--confirm .btn-container .btn-contact.btn-entry--back::after {
  transform: rotate(180deg);
}

@media (max-width: 768px) {
  .form-group {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .form-container--confirm .btn-container {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }
}

/* ==========================================================================
	スマートフォン向け調整 (768px以下)
========================================================================== */
/* --- ハンバーガーボタン（PCでは隠す） --- */
.hamburger {
  display: none;
  width: 44px;
  height: 44px;
  background: #fff;
  border: none;
  position: relative;
  z-index: 1001; /* ナビ背景より常に上 */
  cursor: pointer;
}

.hamburger span {
  display: block;
  position: absolute;
  width: 24px;
  height: 2px;
  background: #005EAE;
  left: 10px;
  transition: 0.3s;
}
.hamburger span:nth-child(1) { top: 14px; }
.hamburger span:nth-child(2) { top: 21px; }
.hamburger span:nth-child(3) { top: 28px; }

/* 活性化（×印） */
.hamburger.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.is-active span:nth-child(2) { opacity: 0; }
.hamburger.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* オーバーレイ */
.nav-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(128, 128, 128, 0.50);
  backdrop-filter: blur(2px);
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s;
}

/* メニューが開いている時だけ表示 */
.nav-overlay.is-active {
  opacity: 1;
  visibility: visible;
}

/* --- ナビゲーション（PC版） --- */
.nav {
  display: flex;
  justify-content: flex-end;
  flex: 1;
}
.is-resize .nav {
  transition: none !important;
}
/* --- スマホ版（768px以下）のスタイル --- */
@media (max-width: 768px) {
  .header{
    top: .5rem;
    width: calc(100% - 1rem);
  }
  .hamburger {
    display: block;
    margin-left: auto;
  }

  .nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    border-radius: 10px;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 1rem 20px 3rem;;
/*  transform: translateX(104%);
    transition: transform 0.4s ease; */
    z-index: 999;
    opacity: 0;
    visibility: hidden;    
    transition: opacity 0.5s ease, visibility 0.5s;
  }

  /* --- 修正箇所：表示状態 --- */
  .nav.is-active {
    opacity: 1;
    visibility: visible;
  }

/*   .nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    border-radius: 10px;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 2rem 2rem 3rem;
    transform: translateX(104%);
    transition: transform 0.4s ease;
    z-index: 999;
  }

  .nav.is-active {
    transform: translateX(0);
  } */

  .nav ul {
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    align-items: flex-start !important;
  }
  .nav ul li a,
  .nav .btn-links li.contact p{
    font-size: clamp(1rem, 1.2vw, 1.125rem);
  }
  
  .nav ul.btn-links {
    margin-left: 0;
    margin-top: 2rem;
    display: block;
  }
  .nav ul.btn-links li{
    display: block;
    margin-top: 1.25rem;
  }
  .nav ul.btn-links a.btn{
    width: calc(100vw - 5rem);
    min-width: 12vw;
    padding: 1.5rem !important;
  }
  .nav ul.btn-links .contact p{
    margin-top: .5rem;
  }
  .nav .main-links {
    margin-top: 3rem;
  }

  .nav h1 {
    display: flex !important;
  }
}

@media (max-width: 768px) {
  /* 1. 全体コンテナの調整 */
  .container, .wide-container {
    width: 100% !important;
    padding: 4.4rem clamp(3%, 3.5vw, 1.875rem);
		box-sizing: border-box;
    font-size: 0.8125rem;
  }
  .title-container,.breadcrumb {
    width: 100% !important;
    padding-left: clamp(3%, 3.5vw, 1.875rem);
    padding-right: clamp(3%, 3.5vw, 1.875rem);
  }
  .grid {
    grid-template-columns: 1fr;
  }
  .flex {
    flex-direction: column;
  }
  .grid .l-container{
    padding-right: 0 !important;
    padding-left: 0 !important;
    padding-bottom: clamp(2rem, 3vw, 3.125rem);
  }
  .grid .r-container{
    padding: 0;
  }
  .grid.switch .l-container { 
    order: 2; /* 2番目へ */
    padding-bottom: 0;
  } 
  .grid.switch .r-container {
    order: 1; /* 1番前へ */
    padding-bottom: clamp(2rem, 3vw, 3.125rem);
    padding-left: 0 !important;
  } 
  .hero{
    background-size: 320%;
  }
  .hero .container{
    padding: 22.25rem 20px clamp(4.5rem, 7vw, 6.875rem);
  }
  .hero h2 {
    letter-spacing: 2.7px;
  }
  .section h2 span {
    margin-top: .5rem;
    font-size: 1rem;
  }
  .headerText-scroller {
    bottom: -1.3rem;
  }
  .scroller-inner span {
    font-size: 5.625rem;
  }
  .message.bg_rectanglesTop::before {
    top: 0;
    transform: scale(.6);
    transform-origin: right top;
  }
  .message .bg_rectangles::before {
    left: 0;
    bottom: 0;
  }
  .message .bg_rectangles::after {
    transform: scale(.6);
    bottom: 1rem;
    right: 10%;
    left: auto;
  }
  .business.bg_rectanglesTop::before {
    top: 0;
    left: 0;
    transform: scale(.7);
    transform-origin: left top;
  }
  .business .bg_rectangles::before {
    right: 0;
    left: auto;
  }
  .business .bg_rectangles::after {
    display: none;
  }
  .grid-news {
    grid-template-columns: 1fr;
  }
  .grid-news .l-container{
    padding-right: 0;
    padding-left: 0;
    padding-bottom: clamp(2rem, 3vw, 3.125rem);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
  }
  .btn-contact,
  .sub-box-contact{
    margin: 20px auto 0;
  }
  .btn-contact{
    justify-content: center;
  }
  .btn-contact::after{
    margin-left: 1.25rem;
  }
  .sub-box-contact span{
    font-size: 1.375rem;
    line-height: 1.4;
  }
  .footer{
    font-size: 0.8125rem;
  }
  .footer-top {
    padding: 0 clamp(3%, 3.5vw, 1.875rem);
    justify-content: left;
  }
  .footer-top .footer-nav{
    text-align: left;
  }
  .footer-top .footer-link{
    grid-template-columns: repeat(3, auto);
  }
  .footer .footer-bottom .grid{
    justify-content: center;
    flex-direction: column-reverse;
    padding-bottom: clamp(2rem, 3vw, 3.125rem);
  }
  .footer .footer-bottom .l-container{
    margin-top: 1rem;
    padding-bottom: 0;
  }

  .sub-container .p-r{
    padding-right: 0 !important;
  }
  .sub-container .p-l{
    padding-left: 0 !important;
  }
  .grid.switch.sub-container .l-container { 
    order: 2; /* 2番目へ */
  } 
  .grid.switch.sub-container .r-container {
    order: 1; /* 1番前へ */
  } 
  .col-links{
    margin-top: clamp(4.5rem, 7vw, 6.875rem);
    gap: clamp(2rem, 3vw, 3.125rem);
  }
  .col-links .l-container,.col-links .r-container{
    text-align: center;
    padding-bottom: 0;
  }
  .b-catch-text{
    padding: 0;
  }
}

@media (max-width: 408px) {
}
@media (max-width: 351px) {
  .footer-top .footer-link {
    grid-template-columns: repeat(2, auto);
  }
}