@charset "utf-8";

/*----------------------------------------------------------------------

  common

----------------------------------------------------------------------*/

html *,
::before,
::after {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html {
  font-size: 100%;
  background-color: #ffffff;
}

@media (min-width: 835px) {
html.is-smooth {
  scroll-behavior: smooth;
}
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-size: 1rem;  /* 16px */
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.025em;
  color: var(--black_basic);
  background-color: #ffffff;
  text-size-adjust: 100%; /* ブラウザによるサイズの自動調整を抑制。スマホで勝手に文字が大きならないようにする。 */
  -webkit-text-size-adjust: 100%;
  font-feature-settings: "palt" 1;
  word-wrap: break-word;
  overflow-wrap: break-word;
  min-width: 1024px;
}

@media only screen and (min-width: 835px) and (-webkit-min-device-pixel-ratio: 2),
       only screen and (min-width: 835px) and (min-resolution: 2dppx) {
  body {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
  }
}

/* @media only screen and (-webkit-min-device-pixel-ratio: 2), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  body {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;  
  }
} */

.page_fade {
  animation: fadeIn 0.4s ease-in-out 0s 1 forwards;
  -webkit-animation: fadeIn 0.4s ease-in-out 0s 1 forwards;
}
@keyframes fadeIn {
  0% {opacity: 0}
  100% {opacity: 1}
}
@-webkit-keyframes fadeIn {
  0% {opacity: 0}
  100% {opacity: 1}
}

.total_wrapper {
  /* ▼　フッターを下部に固定 */
  display: flex;
  flex-flow: column;
  min-height: 100vh;
  min-height: 100dvh;
  /* ▲　フッターを下部に固定 mainもチェック */
}
main {
  flex: 1; /* フッターを下部に固定 */
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  list-style: none;
}

/* レスポンシブイメージと画像下スペース防止 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;/* 画像下のスペースを消す */
}

svg {
	display: block;
	width: 100%;
	height: auto;
}


:root {
  /* ==== color ==== */
  --black_basic: #000;
  --blue_1: #036eb8;
  --blue_light_1: #8fd3f5;
  --blue_light_2: #c2e6fa;
  --blue_light_3: #e4ecf8;
  --blue_very_light_1: #f6fbfe;
  --orange_1:#eb6120;
  --orange_2:#f4a572;
  --orange_pale_1: #fef5ee;
  --yellow_orange_1: #f6ad3c;
  --grey_light_1: #efefef;
  
  
  /* ==== line-heightのハーフ・レディングを打ち消し ==== */
  /* (2.2 - 1)/2 = 0.6 */
  --leading-trim-1_2: -0.10em;
  --leading-trim-1_3: -0.15em;
  --leading-trim-1_4: -0.20em;
  --leading-trim-1_5: -0.25em;
  --leading-trim-1_6: -0.3em;
  --leading-trim-1_7: -0.35em;
  --leading-trim-1_8: -0.4em;
  --leading-trim-1_9: -0.45em;
  --leading-trim-2_0: -0.5em;
  --leading-trim-2_1: -0.55em;
  --leading-trim-2_2: -0.6em;
  --leading-trim-2_3: -0.65em;
  --leading-trim-2_4: -0.7em;
  --leading-trim-2_5: -0.75em;
}
@supports (line-height: 1lh) {
  :root {
    --leading-trim: calc((1em - 1lh) / 2);
  }
}

p, h1, h2, h3, h4 {
  margin-top: var(--leading-trim, var(--leading-trim-1_9));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_9));
}

.no_pc {
  display: none;
}
.inline_b {
  display: inline-block;
}


/* container
-------------------------------------------------- */
.container_1700 {
  max-width: 1800px;
  margin: 0 auto;
  padding: 0 50px;
}
.container_1300 {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 50px;
}
.container_1200 {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 50px;
}
.container_1100 {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 50px;
}
.container_1000 {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 50px;
}
.container_850 {
  max-width: 950px;
  margin: 0 auto;
  padding: 0 50px;
}
.container_750 {
  max-width: 850px;
  margin: 0 auto;
  padding: 0 50px;
}




/* mv (main visual)
-------------------------------------------------- */
.mv .bg_1 {
  height: 185px;
  background-position: top left;
  background-size: cover;
  background-repeat: no-repeat;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
}
.mv .bg_1 .title {
  margin-top: 70px;
  text-align: center;
}
.mv .English {
  width: auto;
  height: 46px;
}
.mv .English img {
  width: auto;
  height: 100%;
}
.mv h1 {
  font-size: 1.125rem; /* 18px */
  letter-spacing: 0.1em;
  font-weight: 500;
  margin-top: calc(20px + var(--leading-trim, var(--leading-trim-1_9)));
}
.mv .bg_2 {
  height: 60px;
  background-position: top left;
  background-size: cover;
  background-repeat: no-repeat;
}




/*----------------------------------------------------------------------

  Header

----------------------------------------------------------------------*/

@media screen and (min-width: 835px) {
  .header_wrapper {
    height: 90px; /* 小さくなるヘッダーのリンク移動用ずれ防止対策：PCの時だけ本来の高さ分を確保する */
  }
}

#header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 90px;
  width: 100%;
  padding: 0 40px;
  background-color: rgba(255, 255, 255, 1);
}

#header .left {
  display: flex;
  align-items: center;
}
#header .left .logo {
  width: 224px;
}
#header .left .logo a {
  display: block;
  transition: 0.2s; 
}

@media screen and (min-width: 835px) {
  #header .left .logo a:hover {
    opacity: 0.7;
  }
}

#header .left .logo a img {
  will-change: transform;
  /* ハードウェアアクセラレーションの固定に必要 */
}
#header .left p {
  letter-spacing: 0.02em;
  margin-left: 16px;
}

#header.HeightMin {
  position: fixed;
  z-index: 100;
  height: 60px;
  animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 0;
	transform: translateY(-100%);
  }
  to {
  	opacity: 1;
	transform: translateY(0);
  }
}
#header.HeightMin .left p {
  display: none;
}
#header.HeightMin .left .logo {
  width: 180px;
}



#navi ul.menu {
  display: flex;
}
#navi ul.menu li {
  margin-left: 35px;
}

@media (max-width: 1080px) {
  #navi ul.menu li {
    margin-left: 25px;
  }
}

#navi ul.menu li a {
  display: block;
  position: relative;
}
#navi ul.menu li a::before {
  content: ""; 
  width: 100%; 
  height: 1px; 
  background: var(--black_basic);
  position: absolute;
  left: 0;
  bottom: 0;
  transform: scaleX(0);
  transition: .2s;
}
#navi ul.menu li a.current::before {
  transform: scaleX(1);
}

@media screen and (min-width: 835px) {
  #navi ul.menu li a:hover::before {
    transform: scaleX(1);
  }
}



/*----------------------------------------------------------------------

  Footer

----------------------------------------------------------------------*/
#footer {
  display: flex;
}

/* @media screen and (min-width: 1536px) {
  #footer {
    max-height: 460px;
  }
} */


/* ==== footer left ==== */
#footer .left_bg {
  width: calc(((548 + 82) / 1600) * 100%);
  display: flex;
}
#footer .left_bg .bg {
  width: calc((82 / 630) * 100%);
  position: relative;
}
#footer .left_bg .bg img {
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  height: 100%;
  width: 100%;
  object-position: top;
}
#footer .left {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: calc((548 / 630) * 100%);
  padding: 46px calc((64 / 630) * 100%) 35px;
  border-top: 1px solid var(--orange_1);
  border-bottom: 1px solid var(--orange_1);
}
#footer .left .logo_name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 15px;
}
#footer .left .logo_name .logo {
  width: 224px;
}
#footer .left .logo_name .logo a {
  display: block;
  transition: 0.2s; 
}
#footer .left .logo_name p {
  line-height: 1.5;
  margin-top: var(--leading-trim, var(--leading-trim-1_5));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_5));
}
#footer .left .footer_navi {
  display: flex;
  flex-wrap: wrap;
  margin-top: 40px;
  gap: 0px 25px;
}
#footer .left .footer_navi a {
  display: block;
  line-height: 1;
  padding: 10px 0;
  transition: 0.2s;
}

#footer .left a.privacy_policy {
  display: inline-block;
  font-size: 0.75rem; /* 12px */
  line-height: 1;
  padding: 10px 0;
  transition: 0.2s;
}
#footer .left .copy_right {
  font-size: 0.6875rem; /* 11px */
  line-height: 1.5;
  margin-top: var(--leading-trim, var(--leading-trim-1_5));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_5));
}



@media screen and (min-width: 835px) {
  #footer .left .logo_name .logo a:hover {
    opacity: 0.7;
    
  }
  #footer .left .footer_navi a:hover,
  #footer .left a.privacy_policy:hover {
    color: var(--orange_1);
    opacity: 1;
  }
  /* #footer .left .footer_navi a:hover,
  #footer .left a.privacy_policy:hover {
    opacity: 0.6;
  } */
}


/* ==== footer right  ==== */
#footer .right {
  width: calc((970 / 1600) * 100%);
  background-color: var(--blue_1);
  padding: 62px calc((96 / 1600) * 100%);
}

#footer .right h2 {
  font-size: 1.125rem; /* 18px */
  font-weight: 500;
  color: #fff;
}
#footer .right .contact_info {
  color: #fff;
  padding-top: 50px;
}
#footer .right .contact_info .tel_fax {
  display: flex;
  gap: 20px 40px;
  flex-wrap: wrap;
}
#footer .right .contact_info .tel_fax li {
  font-size: 2.375rem; /* 38px */
  line-height: 1.3;
  letter-spacing: 0.03em;
  margin-top: var(--leading-trim, var(--leading-trim-1_3));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_3));
}
#footer .right .contact_info .tel_fax li span {
  font-size: 75%;
}
#footer .right .contact_info .tel_fax li a {
  display: inline-block;
  transition: 0.2s;
}
#footer .right .hours {
  font-size: 1.125rem; /* 18px */
  font-weight: 500;
  line-height: 1.6;
  margin-top: calc(30px + var(--leading-trim, var(--leading-trim-1_6)));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_6));
}


/* @media screen and (min-width: 768px) {
  #footer .right .contact_info a:hover {
    background-color: #ebf3e2;
    opacity: 1;
  }
} */


/* ==== footer right  button_list ==== */
#footer .right .button_list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 20px;
  align-items: center;
  margin-top: 70px;
}
#footer .right .button_list a.mail_button {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: calc((12 / 22) * 1em);
  font-size: 1.375rem; /* 22px */
  text-align: center;
  background-color: #fff;
  border-radius: 6px;
  padding: calc((11 / 22) * 1em) 42px;
  transition: 0.2s;
}
#footer .right .button_list a.mail_button span {
  line-height: 1;
}
#footer .right .button_list a.mail_button svg {
  width: calc((21 / 22) * 1em);
  transform: translateY(calc((2 / 22) * 1em));
  fill: #595757;
}

#footer .right .button_list a.contact_form_button {
  font-size: 1.125rem; /* 18px */
  text-align: center;
  background-color: #fff;
  border-radius: 6px;
  display: inline-block;
  line-height: 1;
  padding: calc((13 / 18) * 1em) 42px;
  transition: 0.2s;
}

@media screen and (min-width: 835px) {
  #footer .right .contact_info .tel_fax li a:hover {
    opacity: 0.7;
  }

  #footer .right .button_list a.mail_button:hover,
  #footer .right .button_list a.contact_form_button:hover {
    opacity: 1;
    color: var(--blue_1);
  }
  #footer .right .button_list a.mail_button:hover svg {
    transition: fill 0.2s;
    fill: var(--blue_1);
  }
}



/*----------------------------------------------------------------------

  top

----------------------------------------------------------------------*/

/* top_mv
-------------------------------------------------- */
#top_mv {
  position: relative;
  width: 100%;
  aspect-ratio: 1600 / 560;
  overflow: hidden;
}
#top_mv .visual,
#top_mv .visual picture,
#top_mv .visual img {
  width: 100%;
  height: 100%;
  display: block;
}
#top_mv .visual img {
  object-fit: cover;
}
#top_mv .text {
  color: var(--blue_1);
  position: absolute;
  top: calc((274 / 560) * 100%);
  left: calc((274 / 1600) * 100%);
}
#top_mv .text h1 {  
  font-size: clamp(1.8125rem, calc(29 / 1600 * 100vw), 2.125rem); 
  /* 29pxカンプ 34px*/
  font-weight: bold;
  line-height: 1.7;
  margin-top: var(--leading-trim, var(--leading-trim-1_7));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_7));
}
#top_mv .text p {
  font-size: clamp(1.25rem, calc(20 / 1600 * 100vw), 1.375rem); 
  /* 20pxカンプ 22px*/
  line-height: 1.8;
  font-weight: 500;
  margin-top: clamp(
    calc(40px + var(--leading-trim, var(--leading-trim-1_8))),
    calc(2.5vw + var(--leading-trim, var(--leading-trim-1_8))), 
    /* 40/1600*100 = 2.5 */
    calc(42px + var(--leading-trim, var(--leading-trim-1_8)))
  );
  margin-bottom: var(--leading-trim, var(--leading-trim-1_8));
}



@media (min-width: 1921px) {
  /* 1921〜2560 */
  #top_mv .text h1 {  
    font-size: clamp(2.125rem, calc(34 / 1920 * 100vw), 2.625rem); 
  /* 34px 42px */
  }
  #top_mv .text p {
    font-size: clamp(1.375rem, calc(22 / 1920 * 100vw), 1.75rem);
    /* 22px 28px */
  }
  #top_mv .text p {
    margin-top: clamp(
      calc(42px + var(--leading-trim, var(--leading-trim-1_8))),
      calc(2.2768vw + var(--leading-trim, var(--leading-trim-1_8))), 
      /* 42/1920*100 = 2.1875 */
      /* 51/2240*100 = 2.2768*/
      calc(60px + var(--leading-trim, var(--leading-trim-1_8)))
  );
  }
}








@media (max-width: 1536px) {
  /* 1366〜1536 */
  #top_mv .text h1 {  
    font-size: clamp(1.5625rem, calc(28 / 1536 * 100vw), 1.75rem); 
    /* 25px 28px*/ 
  }
  #top_mv .text p {
    font-size: clamp(1.125rem, calc(19 / 1536 * 100vw), 1.1875rem); 
    /* 18px 19px*/
    
    margin-top: clamp(
      calc(38px + var(--leading-trim, var(--leading-trim-1_8))),
      calc(2.6vw + var(--leading-trim, var(--leading-trim-1_8))), 
      /* 40/1536*100 = 2.6 */
      calc(40px + var(--leading-trim, var(--leading-trim-1_8)))
    );
  }
}


@media (max-width: 1365px) {
  /* 1280〜 */
  #top_mv .text {
    left: calc((255 / 1600) * 100%);
  }
  #top_mv .text h1 {  
    font-size: clamp(1.5rem, calc(24 / 1280 * 100vw), 1.5625rem); 
    /* 24px 25px*/ 
  }
  #top_mv .text p {
    font-size: 1.125rem; 
    /* 18px*/
    
    margin-top: clamp(
      calc(34px + var(--leading-trim, var(--leading-trim-1_8))),
      calc(2.6563vw + var(--leading-trim, var(--leading-trim-1_8))), 
      /* 34/1280*100 = 2.6563 */
      calc(38px + var(--leading-trim, var(--leading-trim-1_8)))
    );
  }
}


@media (max-width: 1279px) {
  /* 1024〜 */

  #top_mv .text {
    left: calc((255 / 1600) * 100%);
    top: calc((260 / 560) * 100%);
  }
  #top_mv .text h1 {  
    font-size: clamp(1.25rem, calc(20 / 1024 * 100vw), 1.5rem); 
    /* 20px 24px*/ 
  }
  #top_mv .text p {
    font-size: clamp(1rem, calc(16 / 1024 * 100vw), 1.125rem); 
    /* 16px 18px*/
    
    margin-top: clamp(
      calc(30px + var(--leading-trim, var(--leading-trim-1_8))),
      calc(2.9297vw + var(--leading-trim, var(--leading-trim-1_8))), 
      /* 30/1024*100 = 2.9297 */
      calc(34px + var(--leading-trim, var(--leading-trim-1_8)))
    );
  }
}




/* top_news
-------------------------------------------------- */

#top_news {
  padding: 80px 0;
}
#top_news .content {
  display: flex;
  flex-wrap: wrap;
  gap: 24px 0; /* 上下、左右 */
}
#top_news .content h2 {
  flex-shrink: 0;
  font-size: 2.25rem; /* 36px */
  font-weight: 500;
  color: var(--blue_1);
  margin-top: calc( -0.1667em + var(--leading-trim, var(--leading-trim-1_9)));
  padding-right: 56px;
}
#top_news .content ul {
  width: calc(100% - 160px);
  /* マイナス#top_news h2の幅 */
}
#top_news li:not(:first-child) {
  margin-top: 18px;
}
#top_news li a {
  display: flex;
  align-items: flex-start;
  transition: 0.2s;
}

@media screen and (min-width: 835px) {
  #top_news li a:hover {
      opacity: 0.7;
  }
}

#top_news li a time {
  flex-shrink: 0;
  margin-right: 30px;
  text-align: center;
  font-size: 0.875rem; /* 14px */
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #fff;
  background-color: var(--yellow_orange_1);
  padding: 0 19px 0.0714em;
  /* padding-bottom: 1px; */
}

#top_news li a h3 {
  font-size: 0.9375rem; /* 15px */
  line-height: 1.7;
  margin-top: calc(0.2em + var(--leading-trim, var(--leading-trim-1_7)));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_7));
  
}










/* top_about_us
-------------------------------------------------- */

#top_about_us {
  overflow: hidden;
}

#top_about_us .content_1 {
  padding-top: 120px;
  border-top: var(--blue_1) solid 6px;
}
#top_about_us .title {
  text-align: center;
  display: inline-block;
}

#top_about_us .title .English {
  height: clamp(100px, 74px + 2.0313vw, 113px);
  /* h113_1920 h100_1280 */
}
#top_about_us .title .English img {
  height: 100%;
  width: auto;
}
#top_about_us .title h2 {
  font-size: 1.25rem; /* 20px */
  font-weight: bold;
  display: inline-block;
  line-height: 2.1;
  padding: 0 clamp(40px, 20px + 1.5625vw, 50px);
  /* 50_1920 40_1280 */
  margin-top: clamp(35px, 15px + 1.5625vw, 45px);
  /* 45_1920 35_1280 */
  margin-bottom: 0;
  background-color: var(--blue_1);
  color: #fff;
}



/* ==== 波なみパート ▼ ==== */
#top_about_us .visual_text_bg {
  position: relative;
  height: clamp(362px, 146px + 16.875vw, 470px);
  /* 470_1920 362_1280 */
  display: flex;
  align-items: flex-end;
  margin-top: clamp(20px, -60px + 6.25vw, 60px);
  /* 20_1280 60_1920 */
  z-index: 0;
}


@media (min-width: 1921px) {
  #top_about_us .visual_text_bg {
    height: clamp(470px, 356px + 5.9375vw, 508px);
    /* 470_1920 508_2560  */
  }
}

@media (max-width: 1279px) {
  #top_about_us .visual_text_bg {
    height: clamp(337px, 289.9842px + 5.6306vw, 362px);
    /* 362_1279 337_835  */
  }
}


#top_about_us .visual_text_bg::after {
  content: "";
  display: block;
  height: 100%;
  width: calc(100vw - ((100vw - 1300px) / 2));
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -10;
  background-image: url(../images/top/top_about_us_bg.svg);
  background-size: cover;
  background-repeat: no-repeat;
}

#top_about_us .visual_text {
  display: flex;
  align-items: center;
}


#top_about_us .visual_text .visual {
  flex-shrink: 0;
  width: clamp(300px, 100px + 15.625vw, 400px);
  /* w400_1920 w300_1280 */
}

#top_about_us .visual_text .visual img {
  width: 100%;
}

#top_about_us .visual_text .text {
  flex-grow: 1;
  font-size: 1.125rem; /* 18px */
  line-height: 2.3;
  color: #fff;
  padding-left: clamp(50px, calc((50 / 1024) * 100vw), 120px);
}

@media (max-width: 1366px) {
  #top_about_us .visual_text .text {
    font-size: 1.0625rem; /* 17px */
    line-height: 2.1;
  }
}
/* ==== 波なみパート ▲ ==== */



#top_about_us .content_2 {
  padding-top: 130px;
  padding-bottom: 110px;
  border-bottom: var(--blue_1) solid 6px;
}
#top_about_us .body h3 {
  font-size: clamp(7.5rem, 6rem + 1.875vw, 8.25rem);
  /* 120px_1280 132px_1920 */
  letter-spacing: 0.035em;
  text-align: center;
  color: var(--blue_1);
  font-weight: 300;
  line-height: 1.2;
  margin-top: var(--leading-trim, var(--leading-trim-1_2));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_2));
}

@media (max-width: 1279px) {
  #top_about_us .body h3 {
    font-size: clamp(6.75rem, 3.7382rem + 4.7059vw, 7.5rem);
  /* 108px_1024 120px_1279 */
  }
}


#top_about_us .body ul {
  margin-top: 105px;
}

@media (max-width: 1279px) {
  #top_about_us .body ul {
    margin-top: clamp(5.625rem, 1.8603rem + 5.8824vw, 6.5625rem);
  /* 90px_1024 105px_1279 */
  }
}


#top_about_us .body li {
  display: flex;
  align-items: center;
}
#top_about_us .body li .visual,
#top_about_us .body li .text {
  width: 50%;
}
#top_about_us .body li.two,
#top_about_us .body li.three {
  margin-top: 60px;
}
#top_about_us .body li .visual {
  text-align: right;
  padding-right: clamp(80px, 70px + 0.7813vw, 85px);
  /* 80px_1280 85px_1920 */
}
#top_about_us .body li .visual img {
  width: clamp(380px, 360px + 1.5625vw, 390px);
  /* 380px_1280 390px_1920 */
}

#top_about_us .body li .text h4 {
  font-size: 1.25rem; /* 20px */
  font-weight: 500;
  color: var(--blue_1);
  word-break: auto-phrase;
}
#top_about_us .body li .text p {
  margin-top: calc(25px + var(--leading-trim, var(--leading-trim-1_9)));
}




/* top_service
-------------------------------------------------- */

#top_service {
  padding: 115px 0 160px;
}

#top_service .title_outer {
  display: flex;
  justify-content: flex-end;
}
#top_service .title {
  text-align: center;
  display: inline-block;
}
#top_service .title .English {
  height: clamp(100px, 74px + 2.0313vw, 113px);
  /* h100_1280 h113_1920 */
}
#top_service .title .English img {
  height: 100%;
  width: auto;
}
#top_service .title h2 {
  font-size: 1.25rem; /* 20px */
  font-weight: bold;
  display: inline-block;
  line-height: 2.1;
  padding: 0 clamp(40px, 20px + 1.5625vw, 50px);
  /* 50_1920 40_1280 */
  margin-top: clamp(35px, 15px + 1.5625vw, 45px);
  /* 45_1920 35_1280 */
  margin-bottom: 0;
  background-color: var(--blue_light_1);
  color: #fff;
}





/* ==== 波なみパート ▼ ==== */
#top_service .visual_text_bg {
  position: relative;
  height: clamp(358px, 146px + 16.5625vw, 464px);
  /* 358_1280 464_1920 */
  display: flex;
  align-items: flex-end;
  margin-top: clamp(20px, -60px + 6.25vw, 60px);
  /* 45_1920 35_1280 */
  z-index: 0;
}



@media (min-width: 1921px) {
  #top_service .visual_text_bg {
    height: clamp(464px, 352.7684px + 5.7903vw, 501px);
    /* 464_1920 501_2560  */
  }
}

@media (max-width: 1279px) {
  #top_service .visual_text_bg {
    height: clamp(334px, 288.8649px + 5.4054vw, 358px);
    /* 334_835 358_1279 */
  }
}



#top_service .visual_text_bg::after {
  content: "";
  display: block;
  height: 100%;
  width: calc(100vw - ((100vw - 1300px) / 2));
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -10;
  background-image: url(../images/top/top_service_bg.svg);
  background-size: cover;
  background-repeat: no-repeat;
}

#top_service .visual_text {
  display: flex;
  align-items: center;
}


#top_service .visual_text .visual {
  flex-shrink: 0;
  width: clamp(300px, 100px + 15.625vw, 400px);
  /* w300_1280 w400_1920 */
}

#top_service .visual_text .visual img {
  width: 100%;
}

#top_service .visual_text .text {
  flex-grow: 1;
  font-size: 1.125rem; /* 18px */
  line-height: 2.3;
  padding-right: clamp(50px, calc((50 / 1024) * 100vw), 120px);
}

@media (max-width: 1366px) {
  #top_service .visual_text .text {
    font-size: 1.0625rem; /* 17px */
    line-height: 2.1;
  }
}

/* ==== 波なみパート ▲ ==== */



#top_service .body {
  padding-top: 130px;
}
#top_service .body h3 {
  font-size: clamp(7.5rem, 5.875rem + 2.0313vw, 8.3125rem);
  /* 120px_1280 133px_1920 */
  letter-spacing: 0.035em;
  text-align: center;
  color: var(--blue_light_1);
  font-weight: 300;
  line-height: 1.2;
  margin-top: var(--leading-trim, var(--leading-trim-1_2));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_2));
}
#top_service .body ul {
  margin-top: 90px;
}
#top_service .body li {
  display: flex;
  align-items: center;
}
#top_service .body li .visual,
#top_service .body li .text {
  width: 50%;
}
#top_service .body li:not(:first-child) {
  margin-top: 60px;
}
#top_service .body li .visual {
  padding-right: clamp(70px, 40px + 2.3438vw, 85px);
  /* 70px_1280 85px_1920 */
  text-align: right;
}
#top_service .body li .visual img {
  width: clamp(340px, 220px + 9.375vw, 400px);
  /* 340px_1280 400px_1920 */
  
}
#top_service .body li .text h4 {
  font-size: 1.25rem; /* 20px */
  font-weight: 500;
  color: var(--blue_1);
}
#top_service .body li .text p {
  margin-top: calc(25px + var(--leading-trim, var(--leading-trim-1_9)));
}



/* top_products
-------------------------------------------------- */
#top_products {
  padding-bottom: clamp(140px, 120px + 1.5625vw, 150px);
  /* 150px_1920 140px_1280 */
  overflow: hidden;
}

@media (max-width: 1279px) {
  #top_products {
    padding-bottom: clamp(8.125rem, 5.6152rem + 3.9216vw, 8.75rem);
    /* 130px_1024 140px_1279 */
  }
  
}


/* ==== 波なみパート ▼ ==== */
#top_products .title_bg_container {
  position: relative;
  height: clamp(380px, 180px + 15.625vw, 480px);
  /* 380px_1280 480px_1920 */
}

@media (min-width: 1921px) {
  #top_products .title_bg_container {
    height: clamp(480px, 270px + 10.9375vw, 550px);
    /* 480px_1920 550px_2560 */
  }
}

@media (max-width: 1279px) {
  #top_products .title_bg_container {
    height: clamp(350px, 229.5294px + 11.7647vw, 380px);
    /* 350px_1024 380px_1279 */
  }
}


#top_products .title_bg {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -10;
}
#top_products .title_bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom;
}

#top_products .title {
  text-align: center;
  display: inline-block;
  padding-top: clamp(70px, 30px + 3.125vw, 90px);
  /* 70_1280 90_1920 */
}

@media (min-width: 1921px) {
  #top_products .title {
    padding-top: clamp(90px, 59.9374px + 1.5649vw, 100px);
  /* 90_1921 100_2560 */
  }
  
}


#top_products .title .English {
  height: clamp(100px, 74px + 2.0313vw, 113px);
  /* h100_1280 h113_1920 */
}
#top_products .title .English img {
  height: 100%;
  width: auto;
}
#top_products .title h2 {
  font-size: 1.25rem; /* 20px */
  font-weight: bold;
  display: inline-block;
  color: #fff;
  

  margin-top: clamp( 
    calc(35px + var(--leading-trim, var(--leading-trim-1_9))),
    calc((40 / 1600 * 100vw) + var(--leading-trim, var(--leading-trim-1_9))), 
    calc(40px + var(--leading-trim, var(--leading-trim-1_9)))
    );

}
/* ==== 波なみパート ▲ ==== */



#top_products .body {
  padding-top: clamp(110px, 50px + 4.6875vw, 140px);
  /* 110_1280 140_1920 */
}

@media (max-width: 1279px) {
  #top_products .body {
    padding-top: clamp(6.875rem, -0.6544rem + 11.7647vw, 8.75rem);
    /* 110px_1024 140px_1279 */
  }
}

#top_products .body .intro {
  /* text-align: center; */
  font-size: 1.3125rem; /* 21px */
  line-height: 2.1;
  margin-top: var(--leading-trim, var(--leading-trim-2_1));
  margin-bottom: var(--leading-trim, var(--leading-trim-2_1));
}


@media (max-width: 1194px) {
  #top_products .body .intro br {
    display: none;
  }
}


#top_products .body ul {
  display: flex;
  margin-top: 110px;
}

@media (max-width: 1279px) {
  #top_products .body ul {
    margin-top: clamp(6.25rem, 3.7402rem + 3.9216vw, 6.875rem);
    /* 100px_1024 110px_1279 */
  }
}


#top_products .body ul li {
  width: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
#top_products .body ul li.one {
  padding-right: calc((20 / 1300) * 100%);
}
#top_products .body ul li.two {
  padding-left: calc((20 / 1300) * 100%);
}
#top_products .body ul li h3 {
  font-size: 1.5625rem; /* 25px */
  font-weight: 500;
  color: var(--orange_1);
  border: 2px solid var(--orange_1);
  border-radius: 30px;
  line-height: 1.5;
  margin: 0;
  padding: 12px 80px;
  text-align: center;
}
#top_products .body ul li h3 .font_900 {
  font-weight: 900;
}

#top_products .body ul li p {
  font-size: 1.125rem; /* 18px */
  text-align: center;
  line-height: 1.7;
  margin-top: calc(
    clamp(30px, 10px + 1.5625vw, 40px) + var(--leading-trim, var(--leading-trim-1_7))
  );
  /* 30px_1280 40px_1920 */
  
}
#top_products .body ul li .grid_bg {
  position: relative;
  width: 100%;
  height: 100%;
  margin-top: 60px;
}
#top_products .body ul li .grid_bg .visual {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  width: 86%;
  height: auto;
}

#top_products .body ul li .grid_bg .visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
#top_products .body ul li.two .grid_bg .visual {
  width: 68%;
}



#top_products .body .button_container {
  text-align: center;
  margin-top: 130px;
}

@media (max-width: 1279px) {
  #top_products .body .button_container {
    margin-top: clamp(6.875rem, 1.8554rem + 7.8431vw, 8.125rem);
    /* 110px_1024 130px_1279 */
  }
}




#top_products .body .button {
  display: inline-block;
  text-align: center;
  line-height: 1.5;
  padding: 28px 67px;
  border: 2px solid var(--orange_1);
  border-radius: 6px;
  position: relative;
}
#top_products .body .button::after {
  content: '';
  display: block;
  width: 19%;
  height: 100%;
  background-image: url("../images/top/top_products_arrow.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 50%; /* 縦中央に配置する場合 */
  right: -18%;
  transform: translateY(-50%); /* 縦中央揃えの微調整 */
}

@media screen and (min-width: 835px) {
  #top_products .body .button:hover {
    opacity: 1;
    transition: 0.15s linear;
    color: var(--orange_1);
  }
}





/*----------------------------------------------------------------------

  products

----------------------------------------------------------------------*/

/* products_mv
-------------------------------------------------- */
#products_mv .bg_1 {
  background-image:url(../images/products/products_mv_bg_1.svg);
}
#products_mv .bg_2 {
  background-image:url(../images/products/products_mv_bg_2.jpg);
}


/* products_intro
-------------------------------------------------- */
#products_intro {
  padding: 90px 0 90px;
}
#products_intro p {
  font-size: 1.3125rem; /* 21px */
  line-height: 2.4;
  margin-top: var(--leading-trim, var(--leading-trim-2_4));
  margin-bottom: var(--leading-trim, var(--leading-trim-2_4));
}


/* products_items
-------------------------------------------------- */
#products_items {
  padding-bottom: clamp(100px, 80px + 1.5625vw, 110px);
  /* 100px_1280 110px_1920 */
}

/* ==== intro ==== */
#products_items .item .intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
#products_items .item .intro h2 {
  font-size: 1.875rem; /* 30px */
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  color: var(--orange_1);
  border: 2px solid var(--orange_1);
  border-radius: 27px;
  margin: 0;
  padding: 7px 60px;
}
#products_items .item .intro h2 .font_900 {
  font-weight: 900;
}

#products_items .item .intro p {
  font-size: 1.125rem; /* 18px */
  text-align: center;
  line-height: 1.7;
  margin-top: calc(40px + var(--leading-trim, var(--leading-trim-1_7)));
}
#products_items .item .intro .grid_bg {
  position: relative;
  width: 100%;
  height: 100%;
  margin-top: 50px;
}
#products_items .item .intro .grid_bg .visual {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  width: 58%;
  height: auto;
}
#products_items .item .intro .grid_bg .visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* two */
#products_items .item.two {
  padding-top: 110px;
}
#products_items .item.two .intro .grid_bg .visual {
  width: 46%;
  height: auto;
}


/* ==== spec ==== */
#products_items .item .spec {
  margin-top: 85px;
}
/* #products_items .item .spec .white_bg {
  background-color: #fff;
  padding: 50px 0;
} */

#products_items .item .content {
  display: flex;
  gap: 74px;
  
}
#products_items .item .spec .left,
#products_items .item .spec .right {
  width: 50%;
}
#products_items .item .spec .title {
  display: flex;
  align-items: center;
}
#products_items .item .spec .title h3 {
  font-size: 1.375rem; /* 22px */
  font-weight: 700;
  color: var(--orange_1);
  padding: 0 30px;
  border-left: 6px solid var(--orange_1);
  line-height: 1.3;
  margin-top: 0;
  margin-bottom: 0;
  flex-shrink: 0;
}
#products_items .item .spec .title .visual {
  width: 100%;
}
#products_items .item .spec .title .visual img {
  display: block;
}

#products_items .item .spec ol {
  list-style-position: outside; 
  list-style-type: decimal;
  padding-left: 1em; /* 左側の余白を調整 */
  margin-top: calc(40px + var(--leading-trim, var(--leading-trim-1_9)));
}
#products_items .item .spec p {
  margin-top: calc(40px + var(--leading-trim, var(--leading-trim-1_9)));
}


/* ==== video ==== */
#products_items .item .video {
  padding: 100px 50px 110px;
  /* ↑ video 設置後は上記の値を採用する*/
  /* padding: 100px 0 0; */
  /* ↑ video 設置が不要な時は上記の値を採用する*/
  display: flex;
  justify-content: center;
}
#products_items .item .video video {
  width: clamp(700px, -500px + 93.75vw, 850px);
  /* 画面幅1280-1440 */
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
/* two */
#products_items .item.two .video {
  padding: 100px 0 0;
}


/* ==== gallery ==== */
#products_items .item .gallery {
  background-color: var(--grey_light_1);
  padding: 0 0px 55px;
}
#products_items .item .gallery ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: clamp(15px, 5px + 0.7813vw, 20px);
  /* 15px_1280 20px_1920 */
  row-gap: clamp(30px, calc(30 / 1600 * 100vw), 34px);
  margin-top: 12px;
}
#products_items .item .gallery ul li {
  text-align: center;
}
#products_items .item .gallery ul li figcaption {
  margin-top: calc(15px + var(--leading-trim, var(--leading-trim-1_9)));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_9));
}






/*----------------------------------------------------------------------

  company

----------------------------------------------------------------------*/

/* company_mv
-------------------------------------------------- */
#company_mv .bg_1 {
  background-image:url(../images/company/company_mv_bg_1.svg);
}
#company_mv .bg_2 {
  background-image:url(../images/company/company_mv_bg_2.jpg);
}
#company_mv .English {
  width: auto;
  height: 56px;
}
#company_mv h1 {
  margin-top: calc(15px + var(--leading-trim, var(--leading-trim-1_9)));
}


/* company_profile
-------------------------------------------------- */

#company_profile .title {
  text-align: center;
  padding: 100px 0 75px;
}
#company_profile .title .English {
  font-size: 6.25rem; /* 100px */
  letter-spacing: 0.05em;
  font-weight: 800;
  color: var(--blue_light_1);
}
#company_profile .title h2 {
  font-size: 1.25rem;
  font-weight: bold;
  display: inline-block;
  line-height: 2.1;
  padding: 0 50px;
  margin-top: 45px;
  margin-bottom: 0;
  background-color: var(--blue_1);
  color: #fff;
  letter-spacing: 0.15em;
}



#company_profile .info {
  background-color: var(--blue_very_light_1);
  padding: 110px 0 110px;
}

#company_profile .info dl {
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid var(--blue_1);
}
#company_profile .info dl dt {
  width: 208px;
  padding: 35px 0;
  color: var(--blue_1);
  font-weight: 600;
  border-bottom: 1px solid var(--blue_1);
}

#company_profile .info dl dd {
  width: calc(100% - 208px);
  padding: 35px 0;
  border-bottom: 1px solid var(--blue_1);
}

#company_profile .info dl dd .location_info {
  display: flex;
  flex-wrap: wrap;
}
#company_profile .info dl dd .location_info.two {
  margin-top: 10px;
}

#company_profile .info dl dd .location_info p {
  margin: 0;
}
#company_profile .info dl dd .location_info .place {
  width: 120px;
}
#company_profile .info dl dd .location_info .postal {
  width: 105px;
}
#company_profile .info dl dd .location_info .address_tel {
  width: calc(100% - 225px);
} 


#company_profile .visual_content {
  padding: 0 50px;
}
#company_profile .visual_content .container_1300 {
  border-bottom: var(--blue_1) solid 6px;
  padding: 90px 0 100px;
}
#company_profile .visual_content .container_1000 {
  padding: 0;
  max-width: 1000px;
}
#company_profile .visual_content .container_1000 .inner {
  container-type: inline-size;
}
#company_profile .visual_content .figures {
  position: relative;
  margin-bottom: clamp(86px, 39.1818px + 5.6818cqi, 96px);
}
#company_profile .visual_content .figures figcaption {
  display: inline-block;
  padding: 10px 20px;
  border-bottom: 1px solid var(--blue_light_2);
  margin-top: 0;
  margin-bottom: 0;
}


#company_profile .visual_content .figures .figure_1 {
  width: calc((814 / 1000) * 100%);
  
}
#company_profile .visual_content .figures .figure_1 img {
  /* width: calc((600 / 814) * 100%); */
  width: 100%;
  background-color: var(--blue_very_light_1);
  padding: 55px 130px 45px 80px;
}
#company_profile .visual_content .figures .figure_2 {
  width: calc((285 / 1000) * 100%);
  position: absolute;
  right: 0;
  top: 68%;
}




/* company_access
-------------------------------------------------- */

#company_access .title {
  text-align: center;
  padding: 100px 0 75px;
}
#company_access .title .English {
  font-size: 6.25rem; /* 100px */
  letter-spacing: 0.05em;
  font-weight: 800;
  color: var(--blue_light_1);
}
#company_access .title h2 {
  font-size: 1.25rem;
  font-weight: bold;
  display: inline-block;
  line-height: 2.1;
  padding: 0 50px;
  margin-top: 45px;
  margin-bottom: 0;
  background-color: var(--blue_1);
  color: #fff;
  letter-spacing: 0.15em;
}




/* ==== google_maps ==== */

#company_access .google_maps {
  background-color: var(--blue_very_light_1);
  padding: 105px 0 115px;
}
#company_access .google_maps .content {
  display: flex;
  flex-direction: column;
  align-items: center;
}
#company_access .google_maps .content.two {
  margin-top: 65px;
}
#company_access .google_maps .map {
  position: relative;
  width: 100%;
}
#company_access .google_maps .map::before {
  content: "";
  display: block;
  padding-top: 56.25%;
}
#company_access .google_maps .map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#company_access .google_maps .location_info {
  display: flex;
  margin-top: 40px;
}
#company_access .google_maps .location_info .place {
  padding-right: 35px;
  font-weight: bold;
  /* font-size: 1.125rem; */
  /* 18px */
}
#company_access .google_maps .location_info .place span {
  color: var(--blue_1);
}
#company_access .google_maps .location_info .postal {
  padding-right: 20px;
}
#company_access .google_maps .location_info .address_tel {
  line-height: 2.5;
  margin-top: var(--leading-trim, var(--leading-trim-2_5));
  margin-bottom: var(--leading-trim, var(--leading-trim-2_5));
} 



/* company_plants
-------------------------------------------------- */
.company_plants {
  padding: clamp(80px, 20px + 5.8594vw, 95px) 0 100px;
  /* 80px_1024 95px_1280 */
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: clamp(15px, 5px + 0.7813vw, 20px);
  /* 15px_1280 20px_1920 */
}




/*----------------------------------------------------------------------

  news

----------------------------------------------------------------------*/

/* news_mv
-------------------------------------------------- */

#news_mv .bg_1 {
  background-image:url(../images/news/news_mv_bg_1.svg);
}
#news_mv .bg_2 {
  background-image:url(../images/news/news_mv_bg_2.jpg);
}
#news_mv .English {
  width: auto;
  height: 43px;
}





/* news_list
-------------------------------------------------- */
#news_list {
  padding: clamp(100px, 60px + 2.6042vw, 110px) 0;
  /* 100px_1536 110px_1920 */
}
#news_list ul {
  border-top: 1px solid var(--black_basic);
}
#news_list li a {
  display: flex;
  align-items: flex-start;
  padding: 40px 0;
  border-bottom: 1px solid var(--black_basic);
}

#news_list li.no_news {
  padding: 40px 0;
  border-bottom: 1px solid var(--black_basic);
}



@media screen and (min-width: 835px) {
  #news_list li a:hover {
    background-color: #f9f9f9;
    /* opacity: 0.7;
    transition: 0.2s;  */
  }
}


#news_list li a time {
  flex-shrink: 0;
  margin-right: 30px;
  text-align: center;
  font-size: 0.875rem; /* 14px */
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #fff;
  background-color: var(--yellow_orange_1);
  padding: 0 19px 0.0714em;
  /* padding-bottom: 1px; */
}

#news_list li a h2 {
  line-height: 1.7;
  margin-top: calc(0.125em + var(--leading-trim, var(--leading-trim-1_7)));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_7));
}


/* pagination
-------------------------------------------------- */

#news_list .pagination {
  margin-top: 25px;
}
.pagination{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  line-height: 1;
  margin-top: 45px;
}
.pagination .page_number {
  padding: 15px;
}
.pagination .page_number.current {
  color: var(--yellow_orange_1);
}

@media screen and (min-width: 835px) {
  .pagination a.page_number:hover {
    opacity: 1;
    color: var(--yellow_orange_1);
  }
  .pagination a.page_number:hover .arrow::before,
  .pagination a.page_number:hover .arrow::after {
   background-color: var(--yellow_orange_1);
  }
}

.pagination .arrow {
  display: inline-block;
  width: 9px;   /* 正方形の幅 */
  height: 9px;  /* 正方形の高さ */
  border-top: 1px solid var(--black_basic);   /* 上の線 */
  border-right: 1px solid var(--black_basic); /* 右の線 */
  
  /* テキストと高さを合わせるための微調整 */
  vertical-align: middle;
  margin-bottom: 2px;
}

/* ==== 前へ (prev): 左向き（-135度回転） ==== */
.pagination .prev .arrow {
  transform: rotate(-135deg);
  /* 余白調整（少し右に寄せてバランスを取る場合） */
  /* margin-left: 2px; */
}

/* ==== 次へ (next): 右向き（45度回転） ==== */
.pagination .next .arrow {
  transform: rotate(45deg);
  /* 余白調整（少し左に寄せてバランスを取る場合） */
  /* margin-right: 2px; */
}

/* ==== ホバー時のスタイル（※これもシンプルになります） ==== */
@media screen and (min-width: 835px) {
  .pagination a.page_number:hover {
    opacity: 1;
    color: var(--yellow_orange_1);
  }
  
  /* border-color を変えるだけで矢印の色が変わります */
  .pagination a.page_number:hover .arrow {
    border-color: var(--yellow_orange_1);
  }
}



/*----------------------------------------------------------------------

  single

----------------------------------------------------------------------*/

/* single_mv
-------------------------------------------------- */

#single_mv {
  padding-bottom: clamp(40px, 20px + 1.5625vw, 50px);
  /* 40px_1280 50px_1920 */
}

@media screen and (max-width: 1279px) {
  #single_mv {
    padding-bottom: clamp(30px, -10.1569px + 3.9216vw, 40px);
    /* 30px_1024 40px_1279 */
  }
}


#single_mv .bg_2 {
  background-image: url(../images/single/single_mv_bg_2.jpg);
}


/* single_body
-------------------------------------------------- */
#single_body {
  
  padding: 120px 0 120px;
  position: relative;
  z-index: 0;
}
#single_body::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: calc((296 / 1600) * 100%);
  max-width: 296px;
  height: 100%;
  background-image: url(../images/single/single_mv_bg_1.svg);
  background-repeat: no-repeat;
  background-position: left top; 
  background-size: contain;
  z-index: -1;
}
#single_body .content {
  padding-bottom: 80px;
  border-bottom: 1px solid var(--yellow_orange_1);
}

#single_body .content time {
  flex-shrink: 0;
  margin-right: 30px;
  text-align: center;
  font-size: 0.875rem; /* 14px */
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #fff;
  background-color: var(--yellow_orange_1);
  padding: 0 19px 0.0714em;
  /* padding-bottom: 1px; */
}

#single_body .content h1 {
  font-size: 1.6875rem; /* 27px */
  font-weight: 500;
  line-height: 1.7;
  margin-top: calc(20px + var(--leading-trim, var(--leading-trim-1_7)));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_7));
}
#single_body .content .main_content {
  padding-top: 55px;
}
#single_body .content .main_content .wp-block-image {
  margin-bottom: 0;
}


/* ==== pagination ==== */
#single_body .pagination {
  justify-content: space-between;
  margin-top: 25px;
}
#single_body .pagination a {
  padding: 10px 0;
}

#single_body .pagination .next {
  margin-left: 90px;
}
#single_body .pagination .prev .arrow {
  margin-right: 0.5em;
}
#single_body .pagination .next .arrow {
  margin-left: 0.5em;
}
#single_body .pagination .prev.to_list .arrow:first-child {
  margin-right: 0;
}


@media screen and (min-width: 835px) {
  #single_body .pagination a:hover {
    color: var(--yellow_orange_1);
  }
  #single_body .pagination a:hover .arrow {
    border-color: var(--yellow_orange_1);
  }
}




/*----------------------------------------------------------------------

  contact

----------------------------------------------------------------------*/
/* contact_mv
-------------------------------------------------- */
#contact_mv .bg_1 {
  background-image: url(../images/contact/contact_mv_bg_1.svg);
}
#contact_mv .bg_2 {
  background-image: url(../images/contact/contact_mv_bg_2.jpg);
}


/* contact_tel_fax
-------------------------------------------------- */
#contact_tel_fax {
  padding: 100px 0;
}
#contact_tel_fax .left_right {
  display: flex;
}
#contact_tel_fax h2 {
  font-size: 1.25rem; /* 20px */
  width: 38%;
}

#contact_tel_fax .right {
  width: 62%;
  padding-bottom: 15px;
  padding-left: 75px;
  border-left: 6px solid var(--orange_2);
}
#contact_tel_fax .right .tel,
#contact_tel_fax .right .fax {
  font-size: clamp(3.75rem, 3.25rem + 0.7813vw, 3.875rem);
  /* 60px_1024 62px_1280 */
  color: var(--orange_1);
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: 0.04em;
  margin-top: var(--leading-trim, var(--leading-trim-1_3));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_3));
}
#contact_tel_fax .right .tel span,
#contact_tel_fax .right .fax span {
  font-size: 60%;
  margin-right: 20px;
}

@media screen and (min-width: 835px) {
  #contact_tel_fax .right .tel a:hover {
    opacity: 0.7;
    transition: 0.2s; 
  }
}

#contact_tel_fax .right .fax {
  margin-top: calc(30px + var(--leading-trim, var(--leading-trim-1_3)));
}
#contact_tel_fax .right .business_hours {
  font-size: 1.125rem; /* 18px */
  margin-top: calc(55px + var(--leading-trim, var(--leading-trim-1_9)));
}


/* contact_form
-------------------------------------------------- */
#contact_form {
  background-color: var(--orange_pale_1);
  padding: 75px 0;
  scroll-margin-top: 60px;
}
#contact_form h2 {
  font-size: 1.3125rem; /* 21px */
  letter-spacing: 0.1em;
  text-align: center;
}
#contact_form .content {
  background-color: #fff;
  padding: 90px calc((118 / 1000) * 100%) 75px;
  margin-top: 60px;
}



/* ==== input_list ==== */
#contact_form .input_list dt {
  font-weight: 400;
  margin-top: var(--leading-trim, var(--leading-trim-1_9));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_9));
}
#contact_form .input_list dt .required {
  font-size: 0.8125rem; /* 13px */
  letter-spacing: 0.1em;
  color: var(--orange_1);
  display: inline-block;
  margin-left: 1em;
}


#contact_form .input_list dt:not(:first-child) {
  margin-top: calc(40px + var(--leading-trim, var(--leading-trim-1_9)));
}
#contact_form .input_list dd {
  margin-top: 10px;
}

input[type="text"],
input[type="email"],
input[type="tel"] {
  border: 1px solid var(--orange_1);
  border-radius: 6px;
  padding: 15px 15px;
  line-height: 1;
  width: 100%;
}
textarea {
  width: 100%;
  height: 240px;
  border: 1px solid var(--orange_1);
  border-radius: 6px;
  padding: 15px 15px;
  line-height: 1.8;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
  outline: 1px solid var(--orange_1);
  border: 1px solid var(--orange_1);
}

#contact_form .privacy_policy {
  font-size: 0.875rem; /* 14px */
  color: var(--black_basic);
  text-align: center;
  margin-top: calc(80px + var(--leading-trim, var(--leading-trim-1_9)));
}
#contact_form .privacy_policy a {
  text-decoration: underline;
}


/* ==== submit_button ==== */
#contact_form .submit_button_container {
  text-align: center;
  margin-top: 40px;
}


#contact_form .submit_button {
  position: relative;
  display: inline-block;
}
#contact_form .submit_button input {
  display: inline-block;
  text-align: center;
  font-size: 1.125rem; /* 18px */
  line-height: 1;
  padding: 31px 100px;
  border: 2px solid var(--orange_1);
  border-radius: 6px;
  position: relative;
  transition: 0.15s linear;
}
#contact_form .submit_button::after {
  content: '';
  display: block;
  width: 19%;
  height: 100%;
  background-image: url("../images/top/top_products_arrow.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 50%; /* 縦中央に配置する場合 */
  right: -18%;
  transform: translateY(-50%); /* 縦中央揃えの微調整 */
}

@media screen and (min-width: 835px) {
  #contact_form .submit_button input:hover {
    color: var(--orange_1);
  }
}

.wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: -35px; /* ボタンの右側に配置する調整 */
  transform: translateY(-50%);
  margin: 0;
}


/* contact_visual
-------------------------------------------------- */
#contact_visual {
  padding: 50px 0 110px;
}




/*----------------------------------------------------------------------

  404

----------------------------------------------------------------------*/

#main.is_404 {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#nf_404 {
  padding: 80px 0;
}
#nf_404 .content {
  width: fit-content;
  margin: 0 auto;
}
#nf_404 .English  {
  font-size: clamp(1.875rem, 1.7233rem + 0.6472vw, 2.5rem);
  /* 30px_375 40px_1920 */
  line-height: 1.5;
  letter-spacing: 0.18em;
  margin-top: var(--leading-trim, var(--leading-trim-1_5));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_5));
}
#nf_404 .message {
  margin-top: calc(
    clamp(1.5625rem, 1.335rem + 0.9709vw, 2.5rem) + var(--leading-trim, var(--leading-trim-1_9))
  );
  /* 25px_375 40px_1920 */
}


/*----------------------------------------------------------------------

  privacy

----------------------------------------------------------------------*/
#privacy {
  padding: 100px 0 100px;
  background-color: var(--blue_light_3);
}
#privacy .container_1100 .inner {
  background-color: #fff;
}
#privacy .content {
  padding: 90px 0 100px;
}

#privacy .content h1 {
  font-size: 2.5rem; /* 40px */
  line-height: 1.7;
  color: var(--blue_1);
  margin-top: var(--leading-trim, var(--leading-trim-1_7));
  margin-bottom: var(--leading-trim, var(--leading-trim-1_7));
}
#privacy .content .intro {
  margin-top: calc(60px + var(--leading-trim, var(--leading-trim-1_9)));
}

#privacy .content .item {
  padding-top: 30px;
}
#privacy .content .item h2 {
  font-size: 1.125rem; /* 18px */
  color: var(--blue_1);
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-thickness: 2px;
}
#privacy .content .item p {
  margin-top: 10px;
  margin-bottom: 0;
}
#privacy .content .item ol {
  margin-top: 10px;
}
#privacy .content .date {
  margin-top: 30px;
  text-align: right;
}
