@charset "UTF-8";
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700&display=swap&subset=japanese");
@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap");
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

/*mediaquery-1*/
.cf {
  zoom: 1;
}
.cf:after {
  display: block;
  content: "";
  clear: both;
}

.ellipsis {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  -ms-text-overflow: ellipsis;
}

.hidetext {
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
}

/*fontサイズ指定*/
:root {
  /* 本文 */
  --fz-base: clamp(1.4rem, 1.3vw, 1.8rem);
  /* 見出しスケール */
  --heading01: clamp(5rem, 8vw, 10rem);
  --heading02: clamp(3.6rem, 6.5vw, 7.5rem);
  --heading03: clamp(3rem, 5vw, 6rem);
  --fz-1: clamp(2.4rem, 2.24vw, 3.2rem); /* H1 */
  --fz-2: clamp(1.9rem, 1.96vw, 2.6rem); /* H2 */
  --fz-3: clamp(1.6rem, 2.24vw, 2.2rem); /* H3 */
  --fz-4: clamp(1.4rem, 1.3vw, 1.8rem); /* H3 */
  --fz-5: clamp(1.4rem, 1.2vw, 1.6rem); /* 補足/小見出し */
}

/*
	include style
===================================================*/
.ellipsis {
  width: 100%;
}

/*
	general style
===================================================*/
*,
*::after,
*::before {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  position: relative;
  height: 100%;
}

body {
  font-size: var(--fz-base);
  position: relative;
  height: 100%;
  color: #000;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.6;
  background: linear-gradient(135deg, rgb(4, 160, 122) 0%, rgb(0, 124, 102) 50%, rgb(4, 160, 122) 99%);
  background-attachment: fixed;
}
body.home {
  /* トップページだけ適用 */
  /* グラデ背景 */
}
body.home .bg-fixed {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: -1; /* コンテンツの後ろに */
}
body.home .bg-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgb(4, 160, 122) 0%, rgb(0, 124, 102) 50%, rgb(4, 160, 122) 99%);
  z-index: 1;
}
body.home .bg-item01,
body.home .bg-item02 {
  position: absolute;
  z-index: 2;
  pointer-events: none;
}
body.home .bg-item01 {
  width: 15%;
  max-width: 250px;
  top: 10%;
  left: calc(50% - 800px);
}
@media screen and (max-width: 768px) {
  body.home .bg-item01 {
    left: 2%;
    width: 22%;
  }
}
body.home .bg-item02 {
  width: 12%;
  max-width: 200px;
  bottom: 5%;
  left: calc(50% - 700px);
}
@media screen and (max-width: 768px) {
  body.home .bg-item02 {
    left: 2%;
    width: 20%;
  }
}
body.home .bg-item03,
body.home .bg-item04,
body.home .bg-item05 {
  position: absolute;
  z-index: 2;
  pointer-events: none;
}
body.home .bg-item03 {
  width: 12%;
  max-width: 200px;
  right: calc(50% - 700px);
  top: 5%;
}
@media screen and (max-width: 768px) {
  body.home .bg-item03 {
    right: 2%;
    width: 20%;
    top: 15%;
  }
}
body.home .bg-item04 {
  width: 4%;
  max-width: 80px;
  left: 35%;
  top: 30%;
}
@media screen and (max-width: 768px) {
  body.home .bg-item04 {
    width: 6%;
  }
}
body.home .bg-item05 {
  width: 4%;
  max-width: 200px;
  bottom: 12%;
  right: calc(50% - 600px);
}
@media screen and (max-width: 768px) {
  body.home .bg-item05 {
    width: 10%;
    right: 2%;
    bottom: 15%;
    max-width: auto;
  }
}

a {
  background-color: transparent;
  transition: 0.2s;
}
a:hover {
  color: #000;
  opacity: 0.7;
}

img {
  vertical-align: bottom;
}

.wp-block-image img {
  max-width: 100%;
  height: auto;
}

/*
	layout style
===================================================*/
@media screen and (max-width: 640px) {
  br.brpc {
    display: none;
  }
}

br.brmd {
  display: none;
}
@media screen and (max-width: 768px) {
  br.brmd {
    display: block;
  }
}

br.brsp {
  display: none;
}
@media screen and (max-width: 640px) {
  br.brsp {
    display: block;
  }
}

@media screen and (max-width: 768px) {
  .pcblock {
    display: none;
  }
}

.mdblock {
  display: none;
}
@media screen and (max-width: 768px) {
  .mdblock {
    display: block;
  }
}

.spblock {
  display: none;
}
@media screen and (max-width: 640px) {
  .spblock {
    display: block;
  }
}

#wraper {
  /* コンテンツ側 */
  position: relative;
  z-index: 10;
}
@media screen and (max-width: 768px) {
  #wraper {
    overflow: hidden;
  }
}

.inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 30px;
  position: relative;
}
@media screen and (max-width: 768px) {
  .inner {
    max-width: 90%;
    padding: 0;
  }
}

.sub-page__inner {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 30px;
  position: relative;
}
@media screen and (max-width: 768px) {
  .sub-page__inner {
    max-width: 90%;
    padding: 0;
  }
}

/*reCAPTCHAバッチ位置調整*/
.grecaptcha-badge {
  bottom: 80px !important;
}

.mt10 {
  margin-top: 10px;
}

.mb10 {
  margin-bottom: 10px;
}

.mt20 {
  margin-top: 20px;
}

.mb20 {
  margin-bottom: 20px;
}

.mt30 {
  margin-top: 30px;
}

.mb30 {
  margin-bottom: 30px;
}

.mt40 {
  margin-top: 40px;
}

.mb40 {
  margin-bottom: 40px;
}

.center {
  text-align: center;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.red {
  color: red;
}

.green {
  color: #00705f;
}

.grad__base {
  background: linear-gradient(135deg, rgb(0, 76, 80) 0%, rgb(0, 149, 138) 100%);
}

/*左から右へ*/
.grad-green_right {
  background: linear-gradient(135deg, rgb(0, 185, 136) 0%, rgb(0, 112, 95) 100%);
}

/*上から下へ*/
.grad-green_btm {
  background: linear-gradient(to bottom, rgb(0, 185, 136) 0%, rgb(0, 112, 95) 100%);
}

/* 共通：ふわふわアニメーション */
.u-fuwa {
  display: inline-block; /* インライン要素にもOKにする */
  animation-name: fuwa-y;
  animation-iteration-count: infinite;
  animation-direction: alternate;
  will-change: transform;
  /* デフォルト値（未指定用） */
  --fuwa-distance: 8px;
  --fuwa-duration: 3s;
  animation-duration: var(--fuwa-duration);
}

/* 上下のアニメーション */
@keyframes fuwa-y {
  from {
    transform: translateY(calc(var(--fuwa-distance) * -1));
  }
  to {
    transform: translateY(var(--fuwa-distance));
  }
}
/* ① 小さめ＆ゆっくり（ふわっと） */
.u-fuwa--soft {
  --fuwa-distance: 8px;
  --fuwa-duration: 1.5s;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ② ふつう（標準） */
.u-fuwa--normal {
  --fuwa-distance: 14px;
  --fuwa-duration: 2s;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ③ 大きめ＆速め（元気な動き） */
.u-fuwa--active {
  --fuwa-distance: 16px;
  --fuwa-duration: 1.5s;
  animation-timing-function: cubic-bezier(0.43, 0.21, 0.45, 0.88);
}

/* 共通：ゆっくり回転 */
.u-rotate {
  display: inline-block;
  animation: rotate 12s linear infinite;
  will-change: transform;
}

/* 回転アニメーション */
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* 逆回転（反時計回り） */
.u-rotate-reverse {
  display: inline-block;
  animation: rotate-reverse 12s linear infinite;
  will-change: transform;
}

@keyframes rotate-reverse {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0deg);
  }
}
/*
	Parts style
===================================================*/
/* wp-pagenavi

一覧ページ

*/
.wp-pagenavi {
  clear: both;
  margin: 10% auto 5%;
  text-align: left;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.wp-pagenavi a,
.wp-pagenavi span {
  color: #00513a;
  background-color: rgba(255, 255, 255, 0.8);
  border: none !important;
  white-space: nowrap;
  transition: 0.2s ease-in-out;
  text-align: center;
  text-decoration: none;
  margin: 4px !important;
  padding: 0 !important;
  border-radius: 100vw;
  width: 50px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.wp-pagenavi a.nextpostslink, .wp-pagenavi a.previouspostslink,
.wp-pagenavi span.nextpostslink,
.wp-pagenavi span.previouspostslink {
  background: none;
  color: #dae14a !important;
}

.wp-pagenavi a:hover {
  color: #fff;
  background-color: #00513a;
  border-color: #00513a;
}

.wp-pagenavi span.current {
  color: #000;
  background-color: #dae14a;
  border-color: #dae14a;
  font-weight: bold;
}

/*見出し*/
.heading01 .en {
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  font-size: var(--heading02);
  display: block;
  font-weight: normal;
  line-height: 1;
  margin-top: 0.2em;
}
@media screen and (max-width: 768px) {
  .heading01 .en {
    font-size: 4.6rem;
  }
}
.heading01 .en.wh {
  color: #ffffff;
}
.heading01 .ja {
  font-weight: normal;
  font-size: var(--fz-3);
}
.heading01 .ja::before {
  content: "";
  display: inline-block;
  width: 0.7em;
  height: 0.7em;
  background-image: url(../img/dot.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
  margin-right: 1em;
}
.heading01 .ja.wh {
  color: #ffffff;
}

.heading02 .en {
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  font-size: var(--heading03);
  display: block;
  line-height: 1;
  margin-top: 0.2em;
}
@media screen and (max-width: 768px) {
  .heading02 .en {
    font-size: 4rem;
  }
}
.heading02 .en.wh {
  color: #ffffff;
}
.heading02 .ja {
  font-weight: normal;
  font-size: var(--fz-3);
  color: #000;
}
.heading02 .ja.wh {
  color: #ffffff;
}

.heading03 {
  letter-spacing: 0.05em;
  font-weight: 500;
  font-size: var(--fz-2);
  padding: 0;
  border-left: 7px solid #dae14a;
  padding-left: 0.7em;
  margin: 0 0 1em 0;
}
.heading03.wh {
  color: #ffffff;
}

/*ボタン*/
.btn-primary {
  /*標準白ボタン*/
  transition: 0.4s;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.9em 2em;
  text-align: center;
  background-color: #eefff9;
  display: inline-block;
  border-radius: 100vw;
  color: #000;
  text-decoration: none;
  position: relative;
  box-shadow: 4px 4px #a4c9ca;
  /*緑グラデボタン*/
}
.btn-primary::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: 1.5em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.3s ease;
  background-image: url(../img/triangle.svg);
}
.btn-primary:hover {
  background-color: #ffffff;
  opacity: 1;
  color: #00705f;
  box-shadow: 4px 4px #00705f;
}
.btn-primary.green_grad {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, rgb(0, 112, 95) 0%, rgb(0, 185, 136) 100%);
  color: #ffffff;
  box-shadow: 4px 4px #00513a;
}
.btn-primary.green_grad::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgb(0, 185, 136) 0%, rgb(0, 112, 95) 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: -1;
}
.btn-primary.green_grad::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: 1.5em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url(../img/triangle_wh.svg);
  position: relative;
  z-index: 1;
}
.btn-primary.green_grad:hover {
  background: linear-gradient(135deg, rgb(0, 112, 95) 0%, rgb(0, 112, 95) 100%);
  box-shadow: 4px 4px #ffffff;
}
.btn-primary.green_grad:hover::before {
  opacity: 1;
}

.btn-secondary {
  display: inline-block;
}
.btn-secondary::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  padding: 0 8em 0 1em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.3s ease;
  background-image: url(../img/more_arrow.svg);
}

/* 
page_navigation

詳細ページ

*/
.page_navigation {
  width: 100%;
  margin: 4% auto;
  text-align: center;
}
.page_navigation nav {
  margin: 50px auto;
  padding: 30px 0;
  border-top: solid #00513a 1px;
}
.page_navigation .nav-links {
  display: flex;
  justify-content: space-between;
}
.page_navigation .nav-links .nav-previous,
.page_navigation .nav-links .nav-next {
  width: 40%;
  text-align: left;
}
.page_navigation .nav-links .nav-previous span,
.page_navigation .nav-links .nav-next span {
  display: inline-block;
  width: 80%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-text-overflow: ellipsis;
  -o-text-overflow: ellipsis;
}
.page_navigation .nav-links a {
  text-decoration: none;
  font-size: 1.6rem;
  color: #00513a;
  line-height: 1;
  text-align: left;
}
@media screen and (max-width: 768px) {
  .page_navigation .nav-links a {
    font-size: 1.3rem;
  }
}
.page_navigation .nav-links a i {
  font-size: 2rem;
  color: #00513a;
}
@media screen and (max-width: 768px) {
  .page_navigation .nav-links a i {
    font-size: 1.3rem;
  }
}
.page_navigation .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/*********************************

パンくずリスト

*********************************/
.breadcrumb {
  margin: 20px 0;
}
.breadcrumb ul {
  list-style: none;
}
.breadcrumb li {
  display: inline;
  font-weight: bold;
}
.breadcrumb li a {
  color: #000;
  font-weight: normal;
}
.breadcrumb li + li:before {
  content: ">";
  margin: 0.5em;
}

/*********************************

loading

*********************************/
/* ローディング画面の背景 */
.loading {
  position: fixed;
  width: 100vw;
  height: 100vh;
  top: 0px;
  left: 0px;
  background: #00513a;
  z-index: 9999;
}

.loading__animation {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  animation: loadinganimation 3000ms ease-out forwards infinite;
}

@keyframes loadinganimation {
  from, to {
    opacity: 0;
  }
  50% {
    opacity: 0.5;
  }
}
/*********************************

loop_text

*********************************/
/*ループテキスト*/
.loop-txt__wrap {
  overflow: hidden;
  display: flex;
  width: 100%;
  height: 180px;
  line-height: 1;
}
.loop-txt__wrap.intro-loop-txt {
  margin-top: -5%;
  position: relative;
  z-index: 1;
}

.loop-txt__wrap div {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 150px;
  overflow: hidden;
}

.loop-txt__wrap div:nth-child(odd) {
  animation: loop-txt1 50s -25s linear infinite;
}

.loop-txt__wrap div:nth-child(even) {
  animation: loop-txt2 50s linear infinite;
}

@keyframes loop-txt1 {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes loop-txt2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
/*********************************

HEADER

*********************************/
.header {
  position: fixed;
  width: 100%;
  padding-top: 20px;
  z-index: 100;
}
.header .header-inner {
  max-width: 1340px;
  padding: 0 2rem;
  margin: auto;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .header .header-inner .header-ttl {
    width: 4rem;
  }
}
.header .header-inner .header-ttl .site-logo img {
  width: auto;
  height: 80px;
}
@media screen and (max-width: 1240px) {
  .header .header-inner .header-ttl .site-logo img {
    width: auto;
    height: 60px;
  }
}
@media screen and (max-width: 1100px) {
  .header .header-inner .header-ttl .site-logo img {
    height: 40px;
  }
}
@media screen and (max-width: 768px) {
  .header .header-inner .header-ttl .site-logo img {
    width: 100%;
    height: auto;
  }
}
.header .header-inner .header-gnav {
  margin: auto;
  height: 60px;
  background-color: #ffffff;
  border-radius: 100vw;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  padding: 0 5rem;
}
@media screen and (max-width: 1240px) {
  .header .header-inner .header-gnav {
    height: 60px;
    padding: 0 2rem;
  }
}
@media screen and (max-width: 768px) {
  .header .header-inner .header-gnav {
    display: none;
  }
}
.header .header-inner .header-gnav ul.gnav-menu {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 3rem;
}
@media screen and (max-width: 1240px) {
  .header .header-inner .header-gnav ul.gnav-menu {
    gap: 2rem;
  }
}
@media screen and (max-width: 1100px) {
  .header .header-inner .header-gnav ul.gnav-menu {
    gap: 1rem;
  }
}
.header .header-inner .header-gnav ul.gnav-menu li {
  position: relative;
  /* ▼ サブメニューの基本 */
  /* ▼ li（縦並び） */
  /* ▼ サブメニュー内のリンク */
  /* ▼ hover時のスタイル */
  /* ▼ホバー時に表示 */
}
.header .header-inner .header-gnav ul.gnav-menu li.menu-index {
  padding: 0 3rem 0 0;
}
@media screen and (max-width: 1100px) {
  .header .header-inner .header-gnav ul.gnav-menu li.menu-index {
    padding: 0 1rem 0 0;
  }
}
.header .header-inner .header-gnav ul.gnav-menu li.menu-index:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 1px;
  height: 100%;
  background: linear-gradient(to bottom, rgb(0, 185, 136) 0%, rgb(0, 112, 95) 100%);
}
.header .header-inner .header-gnav ul.gnav-menu li.menu-index .menu-index__link {
  position: relative;
  display: inline-block;
  text-decoration: none;
  transition: color 0.3s ease;
  text-decoration: none;
  color: #000;
  text-align: center;
  line-height: 1.5;
  font-weight: 500;
}
.header .header-inner .header-gnav ul.gnav-menu li.menu-index .menu-index__link::before {
  content: "";
  position: absolute;
  right: -16px; /* ← 文字の左側に出したい距離 */
  top: 50%;
  transform: translateY(-50%) translateX(-6px);
  width: 10px;
  height: 10px;
  background: url(../img/triangle.svg) no-repeat center/contain;
  opacity: 0;
  transition: all 0.3s ease;
}
.header .header-inner .header-gnav ul.gnav-menu li.menu-index .menu-index__link:hover::before {
  transform: translateY(-50%) translateX(0);
  opacity: 1;
}
.header .header-inner .header-gnav ul.gnav-menu li.menu-index .menu-index__link span {
  display: block;
}
.header .header-inner .header-gnav ul.gnav-menu li.menu-index .menu-index__link span.en {
  color: #777715;
  font-size: 1.3rem;
}
@media screen and (max-width: 1100px) {
  .header .header-inner .header-gnav ul.gnav-menu li.menu-index .menu-index__link span.en {
    font-size: 1.1rem;
  }
}
.header .header-inner .header-gnav ul.gnav-menu li.menu-index .menu-index__link span.ja {
  font-size: 1.6rem;
}
@media screen and (max-width: 1100px) {
  .header .header-inner .header-gnav ul.gnav-menu li.menu-index .menu-index__link span.ja {
    font-size: 1.3rem;
  }
}
.header .header-inner .header-gnav ul.gnav-menu li .submenu {
  position: absolute;
  top: calc(100% + 0.5rem); /* ← 親メニューから0.5rem下に */
  left: 0;
  min-width: 180px;
  margin: 0;
  padding: 0.4rem 0;
  list-style: none;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all 0.2s ease;
  z-index: 10;
}
.header .header-inner .header-gnav ul.gnav-menu li .submenu li {
  margin: 0;
  padding: 0;
  display: block;
  width: 100%;
}
.header .header-inner .header-gnav ul.gnav-menu li .submenu a {
  display: block;
  padding: 0.4rem 0.8rem;
  color: #333;
  font-size: 1.3rem;
  line-height: 2;
  text-decoration: none;
  transition: background-color 0.2s ease;
  color: #333;
}
.header .header-inner .header-gnav ul.gnav-menu li .submenu a:hover {
  background-color: #f5f5f5;
  color: #00705f;
}
.header .header-inner .header-gnav ul.gnav-menu li.has-sub:hover > .submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.header .header-inner .header-right {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .header .header-inner .header-right {
    position: absolute;
    right: 70px;
  }
}
.header .header-inner .header-right .btn-contact {
  text-decoration: none;
  color: #ffffff;
  border-radius: 100vw;
  padding: 1rem;
  height: 60px;
  transition: 0.4s;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  padding: 0 1em 0 2em;
  text-align: center;
  background-color: #eefff9;
  border-radius: 100vw;
  color: #000;
  text-decoration: none;
  position: relative;
  box-shadow: 4px 4px #a4c9ca;
  flex-direction: column;
}
.header .header-inner .header-right .btn-contact::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: 1em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.3s ease;
  background-image: url(../img/triangle.svg);
}
@media screen and (max-width: 1100px) {
  .header .header-inner .header-right .btn-contact {
    min-width: 140px;
    height: 45px;
    padding: 0 0.5em 0 1.5em;
  }
}
.header .header-inner .header-right .btn-contact p {
  line-height: 1.1;
}
.header .header-inner .header-right .btn-contact span {
  display: block;
}
.header .header-inner .header-right .btn-contact span.ja {
  font-size: 1.2rem;
  font-weight: 500;
}
.header .header-inner .header-right .btn-contact span.en {
  display: block;
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  font-size: 3rem;
  color: #00513a;
}
@media screen and (max-width: 1100px) {
  .header .header-inner .header-right .btn-contact span.en {
    font-size: 2.2rem;
  }
}
.header .header-inner .header-right .btn-contact:hover {
  background-color: #ffffff;
  opacity: 1;
  box-shadow: 4px 4px #00705f;
}
.header .header-inner .header-right .sns-menu {
  margin-left: 20px;
}
@media screen and (max-width: 768px) {
  .header .header-inner .header-right .sns-menu {
    margin-left: 15px;
  }
}
.header .header-inner .header-right .sns-menu li {
  list-style-type: none;
}
.header .header-inner .header-right .sns-menu li a {
  color: #ffffff;
}
.header .header-inner .header-right .sns-menu li a i {
  font-size: 4rem;
}
@media screen and (max-width: 768px) {
  .header .header-inner .header-right .sns-menu li a i {
    font-size: 3.6rem;
  }
}

/*ハンバーガーメニュー*/
.h-menu_wrap {
  display: none;
  /*menuBg*/
  /*h-menu_lists*/
}
@media screen and (max-width: 768px) {
  .h-menu_wrap {
    display: block;
  }
}
.h-menu_wrap .btn {
  width: 100%;
  border: 1px solid #00513a;
  display: block;
  width: 49px;
  height: 49px;
  position: fixed;
  right: 15px;
  top: 10px;
  right: 10px;
  z-index: 999;
  background-color: #ffffff;
  border-radius: 100vw;
  /*bar_close*/
}
.h-menu_wrap .btn .bar {
  width: 18px;
  height: 2px;
  display: block;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background-color: #00513a;
}
.h-menu_wrap .btn .bar.bar-top {
  top: 18px;
}
.h-menu_wrap .btn .bar.bar-middle {
  top: 50%;
  transform: translate(-50%, -50%);
}
.h-menu_wrap .btn .bar.bar-bottom {
  bottom: 18px;
}
.h-menu_wrap .btn.close .bar-top {
  transform: translate(-50%, 5px) rotate(45deg);
  transition: transform 0.3s;
}
.h-menu_wrap .btn.close .bar-middle {
  opacity: 0;
  transition: opacity 0.3s;
}
.h-menu_wrap .btn.close .bar-bottom {
  transform: translate(-50%, -4px) rotate(-45deg);
  transition: transform 0.3s;
}
.h-menu_wrap .menuBg {
  transition: all 1s;
}
.h-menu_wrap .menuBg.close {
  background-color: rgba(0, 0, 0, 0.3);
  top: 0;
  content: "";
  left: 0;
  opacity: 1;
  right: 0;
  height: 100vh;
  width: 100%;
  z-index: 19;
  position: fixed;
}
.h-menu_wrap .h-menu_lists {
  display: none;
  background-color: #00513a;
  background: linear-gradient(135deg, rgb(0, 76, 80) 0%, rgb(0, 149, 138) 100%);
  width: 100vw;
  height: 100vh;
  position: fixed;
  z-index: 800;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap {
  height: 100%;
  width: 100%;
  padding: 2rem 4rem;
}
@media screen and (max-width: 480px) {
  .h-menu_wrap .h-menu_lists .h-menu_lists__wrap {
    padding: 2rem 2rem 4rem;
    overflow: scroll;
  }
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap {
  position: relative;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap img {
  width: 100%;
  height: auto;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .h-deco01 {
  position: absolute;
  z-index: -1;
  bottom: 2%;
  right: 14%;
  width: 22%;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .h-deco02 {
  position: absolute;
  z-index: -1;
  width: 18%;
  right: 2%;
  bottom: 10%;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .site-ttl {
  display: block;
  width: 50px;
  margin-bottom: 3rem;
}
@media screen and (max-width: 480px) {
  .h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .site-ttl {
    margin-bottom: 1rem;
  }
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 2rem 1.6rem;
}
@media screen and (max-width: 480px) {
  .h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list {
    gap: 2rem 1rem;
  }
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list .en {
  font-weight: bold;
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  font-size: var(--heading03);
  letter-spacing: 0.08em;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list .nav-list__item {
  width: calc(50% - 0.8rem);
  display: flex;
  flex-direction: column;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list .nav-list__item a {
  color: #ffffff;
  text-decoration: none;
  display: inline-block;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list .nav-list__item a:hover {
  color: #dae14a;
  opacity: 1;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list .nav-list__item .nav-subWrap .nav-sub .nav-sub__item {
  margin-bottom: 0.5em;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list .nav-list__item .nav-subWrap .nav-sub .nav-sub__item a {
  font-size: 1.3rem;
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list .nav-list__item .nav-subWrap .nav-sub .nav-sub__item a::before {
  content: "";
  display: inline-block;
  width: 0.6em;
  height: 0.6em;
  margin-right: 0.3em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.3s ease;
  background-image: url(../img/triangle_wh.svg);
}
.h-menu_wrap .h-menu_lists .h-menu_lists__wrap.nav-listWrap .nav-list .nav-list__item .nav-subWrap .nav-sub .nav-sub__item a:hover::before {
  background-image: url(../img/triangle_yellow.svg);
}

/*gmap*/
.gmap {
  height: 0;
  overflow: hidden;
  padding-bottom: 36.25%;
  position: relative;
}
@media screen and (max-width: 768px) {
  .gmap {
    padding-bottom: 56.25%;
  }
}

.gmap iframe {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
}

/*********************************

top-page

*********************************/
/* +++++++++++
パララックスアニメーション
+++++++++++ */
[data-parallax-scope] {
  position: relative;
}

.parallax {
  will-change: transform, opacity;
  transform: translate3d(0, 0, 0);
}

.parallax img {
  display: block;
  width: 100%;
  height: auto;
}

/* +++++++++++
2D変形
+++++++++++ */
/* =====================================
   🌀 スピンアニメーション（共通）
===================================== */
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.spin {
  display: inline-block;
  animation-name: spin;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  transform-origin: center center;
}

/* スピード違い */
.spin-slow {
  animation-duration: 10s;
}

.spin-medium {
  animation-duration: 5s;
}

.spin-fast {
  animation-duration: 2s;
}

/* =====================================
   バリエーション（軸・方向違い）
===================================== */
@keyframes spin-forward {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.spin-forward {
  animation-name: spin-forward;
}

/* 1逆回転（反時計回り） */
@keyframes spin-reverse {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0deg);
  }
}
.spin-reverse {
  animation-name: spin-reverse;
}

/* 2斜め（45°傾けて回転・立体風） */
@keyframes spin-diagonal {
  from {
    transform: rotateX(45deg) rotateY(0deg);
  }
  to {
    transform: rotateX(45deg) rotateY(360deg);
  }
}
.spin-diagonal {
  animation-name: spin-diagonal;
  transform-style: preserve-3d;
  perspective: 800px;
}

/* 3水平（Y軸でクルクル） */
@keyframes spin-horizontal {
  from {
    transform: rotateY(0deg);
  }
  to {
    transform: rotateY(360deg);
  }
}
.spin-horizontal {
  animation-name: spin-horizontal;
  transform-style: preserve-3d;
  perspective: 800px;
}

/* +++++++++++
3D変形
+++++++++++ */
.spin-wrap {
  display: flex;
  gap: 3rem;
  justify-content: center;
  align-items: center;
  perspective: 800px; /* ← 3D効果に奥行きを与える */
}

.spin3d {
  width: 100px;
  height: 100px;
  display: inline-block;
  transform-style: preserve-3d;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

/* 1.斜め45度で回転（XとYを両方） */
/*@keyframes spin-tilt {
  from {
    transform: rotateX(45deg) rotateY(0deg);
  }
  to {
    transform: rotateX(45deg) rotateY(360deg);
  }
}
.spin-tilt {
  animation: spin-tilt 6s linear infinite;
}*/
/* 2.水平（Y軸）回転 */
@keyframes spin-horizontal {
  from {
    transform: rotateY(0deg);
  }
  to {
    transform: rotateY(360deg);
  }
}
.spin-horizontal {
  animation: spin-horizontal 5s linear infinite;
}

/* 3.垂直（X軸）回転 */
@keyframes spin-vertical {
  from {
    transform: rotateX(0deg);
  }
  to {
    transform: rotateX(360deg);
  }
}
.spin-vertical {
  animation: spin-vertical 4s linear infinite;
}

/* ++++++++++++
TOP-PAGE
++++++++++++ */
#top-page {
  /* ++++++++++ トップスライド*/
  /* スライドエリア */
  /* 全画像を重ねる */
  /* 各画像の表示タイミングをずらす */
  /* フェードアニメーション */
  /* フレーム（最前面） */
  /* ++++++++++ トップFV*/
  /* ++++++++++ トップイントロ */
  /* ++++++++++ トップニュース*/
  /* ++++++++++ トップAbout*/
  /* ++++++++++ トップService*/
  /* ++++++++++ トップCompany*/
  /* ++++++++++ トップInstagram*/
  /* ++++++++++ トップリクルート*/
}
#top-page img {
  width: 100%;
  height: auto;
}
#top-page .frame-slideshow {
  position: relative;
  width: min(100%, 1100px);
  width: 100%;
  aspect-ratio: 2000/1553;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  #top-page .frame-slideshow {
    aspect-ratio: 9/16;
  }
}
#top-page .frame-slideshow .slides {
  position: absolute;
  inset: 0;
  z-index: 1;
}
#top-page .frame-slideshow .slides img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0;
  animation: fadeSlide 9s infinite; /* ← 1周の合計時間 */
  animation-timing-function: ease-in-out;
}
#top-page .frame-slideshow .slides img:nth-child(1) {
  animation-delay: 0s;
}
#top-page .frame-slideshow .slides img:nth-child(2) {
  animation-delay: 3s;
}
#top-page .frame-slideshow .slides img:nth-child(3) {
  animation-delay: 6s;
}
@keyframes fadeSlide {
  0% {
    opacity: 0;
  }
  10% {
    opacity: 1;
  } /* フェードイン */
  33% {
    opacity: 1;
  } /* 表示維持 */
  43% {
    opacity: 0;
  } /* フェードアウト */
  100% {
    opacity: 0;
  }
}
#top-page .frame-slideshow .frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 10;
  pointer-events: none;
  display: block;
}
#top-page .fv {
  position: relative;
}
@media screen and (max-width: 768px) {
  #top-page .fv {
    height: 100vh;
  }
}
#top-page .fv .fv-deco01 {
  position: absolute;
  left: 5%;
  top: 10%;
  width: 20%;
  z-index: 11;
}
@media screen and (max-width: 768px) {
  #top-page .fv .fv-deco01 {
    width: 30%;
    left: 0;
    top: 7%;
  }
}
#top-page .fv .fv-deco02 {
  position: absolute;
  left: 20%;
  top: 7%;
  width: 10%;
  z-index: 11;
}
@media screen and (max-width: 768px) {
  #top-page .fv .fv-deco02 {
    left: 25%;
    top: 5%;
    width: 20%;
  }
}
#top-page .fv .fv-deco03 {
  position: absolute;
  width: 12%;
  right: 5%;
  top: 25%;
  z-index: 11;
}
@media screen and (max-width: 768px) {
  #top-page .fv .fv-deco03 {
    width: 20%;
    right: 5%;
    top: 50%;
  }
}
#top-page .top-page__intro {
  color: #ffffff;
  position: relative;
  /* ここをGSAPで y 方向に動かす（初期は0） */
}
#top-page .top-page__intro .fv-message {
  position: sticky;
  top: 50%;
  z-index: 10;
  /* FVの高さぶん“引き上げて”FV上に重ねておく */
  margin-top: calc(-100vh + 1px); /* 1px でスナップ回避。必要に応じて微調整 */
  width: 45%;
  margin-left: auto;
  margin-right: 5%;
  text-align: right;
  transform: translateZ(0); /* スクロール時のガタつき軽減 */
}
@media screen and (max-width: 1550px) {
  #top-page .top-page__intro .fv-message {
    top: 30%;
  }
}
@media screen and (max-width: 768px) {
  #top-page .top-page__intro .fv-message {
    position: relative;
    width: 90%;
    margin: auto;
    margin-top: calc(-40vh + 1px);
    text-align: left;
  }
}
#top-page .top-page__intro .fv-message__inner {
  will-change: transform;
  transform: translate3d(0, 0, 0);
}
#top-page .top-page__intro .fv-message img {
  width: 100%;
  height: auto;
  display: block;
}
#top-page .top-page__intro .fv-message span {
  color: #dae14a;
  font-size: var(--fz-3);
  font-weight: bold;
  display: inline-block;
  margin-top: 1em;
}
#top-page .top-page__intro--read {
  width: 45%;
  padding-left: 5%;
  position: relative;
  z-index: 10;
  margin-top: 70vh; /* ← stickyぶん空ける（値は調整） */
}
@media screen and (max-width: 768px) {
  #top-page .top-page__intro--read {
    margin-top: 0;
    padding: 5%;
    width: 100%;
    margin: 0 auto;
  }
}
#top-page .top-page__intro--read .intro-ttl {
  font-size: clamp(2.2rem, 1.7vw, 12rem);
  margin-bottom: 1em;
}
#top-page .top-page__intro--read .intro-note {
  line-height: 2;
  font-size: clamp(1.6rem, 1.5vw, 8rem);
}
@media screen and (max-width: 768px) {
  #top-page .top-page__intro--read .intro-note {
    font-size: 1.6rem;
    line-height: 1.75;
    padding: 4rem 0;
  }
}
#top-page .top-page__news {
  overflow: hidden;
  padding-top: 40vh;
  position: relative;
}
#top-page .top-page__news .s-deco02_1,
#top-page .top-page__news .s-deco02_2,
#top-page .top-page__news .s-decos {
  position: absolute;
  z-index: -1;
}
#top-page .top-page__news .s-deco02_1 {
  width: 4%;
  left: 35%;
  bottom: 60%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__news .s-deco02_1 {
    width: 8%;
    left: 40%;
    bottom: 70%;
  }
}
#top-page .top-page__news .s-deco02_2 {
  width: 20%;
  right: 0;
}
#top-page .top-page__news .s-decos {
  width: 15%;
  top: 15%;
  left: 10%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__news .s-decos {
    width: 25%;
  }
}
@media screen and (max-width: 768px) {
  #top-page .top-page__news {
    padding-top: 22vh;
  }
}
#top-page .top-page__news img {
  width: 100%;
  height: auto;
}
#top-page .top-page__news .news-list {
  padding: 120px 0;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__news .news-list {
    padding: 10rem 0 4rem;
  }
}
#top-page .top-page__news .news-list .swiper-news {
  /* 5枚で1サイクルにする例 */
  /* コントローラー全体を相対配置 */
  /* ページネーション（ドット） */
  /* ドットのデザイン */
  /* ボタンをドットの左右に絶対配置 */
  /* 左右の位置調整（ドット近くに寄せる） */
  /* 矢印アイコン */
  /* モバイル調整 */
}
#top-page .top-page__news .news-list .swiper-news .swiper-slide:nth-child(5n+1) {
  transform: translateY(0px);
}
#top-page .top-page__news .news-list .swiper-news .swiper-slide:nth-child(5n+2) {
  transform: translateY(-30px);
}
#top-page .top-page__news .news-list .swiper-news .swiper-slide:nth-child(5n+3) {
  transform: translateY(-60px);
}
#top-page .top-page__news .news-list .swiper-news .swiper-slide:nth-child(5n+4) {
  transform: translateY(-90px);
}
#top-page .top-page__news .news-list .swiper-news .swiper-slide:nth-child(5n+5) {
  transform: translateY(-120px);
}
#top-page .top-page__news .news-list .swiper-news .news-list__box a {
  display: block;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: #000;
}
#top-page .top-page__news .news-list .swiper-news .news-list__box a .news-thumb img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 480px) {
  #top-page .top-page__news .news-list .swiper-news .news-list__box a .news-thumb img {
    width: 100%;
    height: auto;
    aspect-ratio: 4/2.2;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
#top-page .top-page__news .news-list .swiper-news .news-list__box a .news-read {
  padding: 2rem;
  background-color: #c9d6d7;
  padding-bottom: 20%;
  background: url(../img/news_more.svg) no-repeat #c9d6d7;
  background-size: 20%;
  background-position: calc(100% - 10px) calc(100% - 10px);
}
@media screen and (max-width: 480px) {
  #top-page .top-page__news .news-list .swiper-news .news-list__box a .news-read {
    padding: 1rem;
  }
}
#top-page .top-page__news .news-list .swiper-news .news-list__box a .news-read__date {
  display: inline-block;
  margin-right: 1em;
}
@media screen and (max-width: 480px) {
  #top-page .top-page__news .news-list .swiper-news .news-list__box a .news-read__date {
    margin-right: 0;
    display: block;
  }
}
#top-page .top-page__news .news-list .swiper-news .news-list__box a .news-read__cat {
  display: inline-block;
  background-color: #00705f;
  color: #ffffff;
  border-radius: 8px;
  padding: 0 1.5em;
}
@media screen and (max-width: 480px) {
  #top-page .top-page__news .news-list .swiper-news .news-list__box a .news-read__cat {
    font-size: 1.1rem;
  }
}
#top-page .top-page__news .news-list .swiper-news .news-list__box a .news-read__ttl {
  margin: 0.5em 0;
  font-size: var(--fz-4);
}
#top-page .top-page__news .news-list .swiper-news.swiper-container {
  overflow: visible;
}
#top-page .top-page__news .news-list .swiper-news .swiper-controller {
  position: relative;
  width: 300px;
  display: flex;
  justify-content: center; /* ドットを中央に置くため */
  align-items: center;
  margin: 8rem auto 4rem;
}
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-pagination {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  top: -16px;
}
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  opacity: 1;
  transition: all 0.3s ease;
}
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-pagination-bullet-active {
  background: #fff;
  transform: scale(1.2);
}
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-button-prev,
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-button-prev {
  right: 100%; /* ドットの左側 */
  margin-right: 24px; /* ドットとの距離 */
}
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-button-next {
  left: 80%; /* ドットの右側 */
  margin-left: 24px; /* ドットとの距離 */
}
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-button-prev::after,
#top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-button-next::after {
  font-size: 20px;
  color: #fff;
  font-weight: bold;
}
@media (max-width: 480px) {
  #top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-pagination {
    gap: 12px;
  }
  #top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-button-prev {
    margin-right: 16px;
  }
  #top-page .top-page__news .news-list .swiper-news .swiper-controller .swiper-button-next {
    margin-left: 16px;
  }
}
#top-page .top-page__about {
  background: url(../img/about_bg.webp) no-repeat center;
  background-size: 100% 100%;
  padding: 11vw 0;
  position: relative;
}
#top-page .top-page__about .s-deco01_1,
#top-page .top-page__about .s-deco02_1 {
  position: absolute;
  z-index: -1;
}
#top-page .top-page__about .s-deco01_1 {
  width: 4%;
  left: 40%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__about .s-deco01_1 {
    width: 8%;
    left: 60%;
  }
}
#top-page .top-page__about .s-deco02_1 {
  width: 5%;
  right: 5%;
  bottom: 0;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__about .s-deco02_1 {
    width: 15%;
  }
}
#top-page .top-page__about .col2 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__about .col2 {
    padding: 5%;
  }
}
#top-page .top-page__about .col2 .lt,
#top-page .top-page__about .col2 .rt {
  width: 45%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__about .col2 .lt,
  #top-page .top-page__about .col2 .rt {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  #top-page .top-page__about--img {
    padding: 5%;
  }
}
#top-page .top-page__about--img img {
  transition: opacity 0.4s ease;
  opacity: 1;
}
#top-page .top-page__about--img img.fade-in {
  opacity: 0.3;
  animation: fadeImage 0.4s forwards;
}
@keyframes fadeImage {
  0% {
    opacity: 0.3;
  }
  100% {
    opacity: 1;
  }
}
#top-page .top-page__about .about-list {
  margin-top: 2rem;
}
#top-page .top-page__about .about-list li {
  list-style-type: none;
  border-bottom: 1px solid #b5b5b5;
  padding: 1.5rem;
  background: url(../img/more_arrow.svg) no-repeat calc(100% - 10px) center;
  transition: background-position 0.3s ease;
  background-size: 4em;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__about .about-list li {
    padding-left: 0;
  }
}
#top-page .top-page__about .about-list li a {
  text-decoration: none;
  color: #000;
  font-size: var(--fz-3);
  display: flex;
}
#top-page .top-page__about .about-list li a .about-list__num {
  color: #00513a;
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  margin-right: 2em;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__about .about-list li a .about-list__num {
    margin-right: 1em;
  }
}
#top-page .top-page__about .about-list li a:hover {
  color: #00513a;
}
#top-page .top-page__about .about-list li:hover {
  background-position: 100% center;
}
#top-page .top-page__service {
  position: relative;
  padding: 10% 0 15%;
  overflow: hidden;
}
#top-page .top-page__service .service-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
#top-page .top-page__service .service-item {
  position: relative;
  margin-bottom: 15%;
  /*ミニサイズ*/
  /*左側*/
  /*右側*/
  /*偶数リストの設定02-04*/
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item {
    margin-bottom: 20%;
  }
}
#top-page .top-page__service .service-item .s-deco01_1,
#top-page .top-page__service .service-item .s-deco01_2,
#top-page .top-page__service .service-item .s-deco01_3,
#top-page .top-page__service .service-item .s-deco02_1,
#top-page .top-page__service .service-item .s-deco02_2,
#top-page .top-page__service .service-item .s-deco02_3 {
  position: absolute;
  width: 20%;
}
#top-page .top-page__service .service-item .s-deco03_1,
#top-page .top-page__service .service-item .s-deco03_2,
#top-page .top-page__service .service-item .s-deco03_3,
#top-page .top-page__service .service-item .s-deco04_1,
#top-page .top-page__service .service-item .s-deco01_1_head {
  position: absolute;
  width: 7%;
}
#top-page .top-page__service .service-item .s-deco01_1 {
  left: -20%;
  top: -25%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .s-deco01_1 {
    left: -12%;
  }
}
#top-page .top-page__service .service-item .s-deco01_2 {
  left: -20%;
  top: 5%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .s-deco01_2 {
    left: -12%;
  }
}
#top-page .top-page__service .service-item .s-deco01_3 {
  left: -20%;
  top: auto;
  bottom: 0;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .s-deco01_3 {
    left: -12%;
  }
}
#top-page .top-page__service .service-item .s-deco02_1 {
  right: -12%;
  top: -25%;
}
#top-page .top-page__service .service-item .s-deco02_2 {
  right: -12%;
  top: 5%;
}
#top-page .top-page__service .service-item .s-deco02_3 {
  right: -12%;
  top: -40%;
}
#top-page .top-page__service .service-item .s-deco03_1 {
  right: -6%;
  top: -20%;
}
#top-page .top-page__service .service-item .s-deco03_2 {
  right: -6%;
  top: 30%;
}
#top-page .top-page__service .service-item .s-deco03_3 {
  right: -6%;
  top: auto;
  bottom: -30%;
}
#top-page .top-page__service .service-item .s-deco04_1 {
  right: -10%;
  top: auto;
  bottom: 30%;
}
#top-page .top-page__service .service-item .s-deco01_1_head {
  left: 25%;
  top: -10%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .s-deco01_1_head {
    width: 8%;
    left: 40%;
    top: -30%;
  }
}
#top-page .top-page__service .service-item:last-child {
  margin-bottom: 0;
}
#top-page .top-page__service .service-item:first-child {
  margin-top: 15%;
}
#top-page .top-page__service .service-item .service-item__inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
#top-page .top-page__service .service-item .service-item__panel {
  width: 60%;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 12px;
  padding: 5% 0 5% 5%;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  position: relative;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .service-item__panel {
    width: 100%;
    padding: 5% 5% 20% 5%;
  }
}
#top-page .top-page__service .service-item .service-item__num {
  font-size: var(--heading01);
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  color: #00513a;
  line-height: 1;
  position: absolute;
  top: -11%;
  left: 5%;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .service-item__num {
    font-size: 8rem;
  }
}
#top-page .top-page__service .service-item .service-item__eyebrow {
  font-size: 0.9em;
  letter-spacing: 0.05em;
  color: #777715;
  margin: 1em 0 0.4em;
}
#top-page .top-page__service .service-item .service-item__title {
  font-size: var(--fz-2);
  margin: 0 0 0.6em;
  border-bottom: 1px solid #00513a;
  padding-bottom: 0.4em;
}
#top-page .top-page__service .service-item .service-item__desc {
  line-height: 1.9;
  margin-bottom: 2em;
  padding-right: 30%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .service-item__desc {
    padding-right: 0;
  }
}
#top-page .top-page__service .service-item .service-item__img {
  width: 50%;
  margin-left: -10%;
  z-index: 1;
  margin-top: -5%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .service-item__img {
    width: 70%;
    margin-left: auto;
    margin-right: 5%;
    margin-top: -10%;
  }
}
#top-page .top-page__service .service-item .service-item__img img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 12px;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item .service-item__img img {
    width: 100%;
    height: auto;
    aspect-ratio: 4/2.2;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
#top-page .top-page__service .service-item:nth-child(even) .service-item__inner {
  flex-direction: row-reverse;
}
#top-page .top-page__service .service-item:nth-child(even) .service-item__panel {
  padding: 5% 5% 5% 15%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item:nth-child(even) .service-item__panel {
    padding: 5% 5% 20% 5%;
  }
}
#top-page .top-page__service .service-item:nth-child(even) .service-item__num {
  left: auto;
  right: 5%;
}
#top-page .top-page__service .service-item:nth-child(even) .service-item__desc {
  padding-right: 0;
}
#top-page .top-page__service .service-item:nth-child(even) .service-item__img {
  width: 50%;
  margin-left: auto;
  margin-right: -10%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__service .service-item:nth-child(even) .service-item__img {
    width: 70%;
    margin-right: 5%;
  }
}
#top-page .top-page__company {
  padding: 0 0 10% 0;
  overflow: hidden;
  /* レイアウト */
  /* 軌道（2セット分を縦積み or 横並びにする） */
  /* --- アニメーション（PC: 縦）--- */
  /* 下→上（左列） */
  /* 上→下（右列） */
  /* --- SP: 縦に積んで、方向を交互に --- */
  /* --- SP: 縦に積んで、方向を交互に --- */
  /* --- SP: 縦に積んで、4枚ずつ表示＋方向を交互に --- */
}
@media screen and (max-width: 768px) {
  #top-page .top-page__company {
    padding-top: 10%;
  }
}
#top-page .top-page__company .col2 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  position: relative;
  /*ミニサイズ*/
}
#top-page .top-page__company .col2 .lt,
#top-page .top-page__company .col2 .rt {
  width: 45%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__company .col2 .lt,
  #top-page .top-page__company .col2 .rt {
    width: 100%;
  }
}
#top-page .top-page__company .col2 .rt {
  padding-right: 5%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__company .col2 .rt {
    padding-right: 0;
    padding: 5% 0;
  }
}
#top-page .top-page__company .col2 .lt {
  padding: 5% 0 0 5%;
}
#top-page .top-page__company .col2 .s-deco01_1,
#top-page .top-page__company .col2 .s-deco02_1 {
  position: absolute;
  width: 20%;
  z-index: -1;
}
#top-page .top-page__company .col2 .s-deco03_1,
#top-page .top-page__company .col2 .s-deco01_2 {
  position: absolute;
  width: 7%;
  z-index: -1;
}
#top-page .top-page__company .col2 .s-deco01_1 {
  left: -20%;
  bottom: -10%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__company .col2 .s-deco01_1 {
    left: -12%;
    bottom: 0;
  }
}
#top-page .top-page__company .col2 .s-deco01_2 {
  left: 30%;
  top: 20%;
}
#top-page .top-page__company .col2 .s-deco02_1 {
  right: -12%;
  top: 15%;
}
#top-page .top-page__company .col2 .s-deco03_1 {
  right: -5%;
  bottom: -12%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__company .col2 .s-deco03_1 {
    width: 18%;
    bottom: -4%;
  }
}
#top-page .top-page__company--read h3 {
  font-size: var(--fz-3);
  margin: 1.5em 0;
  font-weight: normal;
}
#top-page .top-page__company--read p {
  margin-bottom: 4rem;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__company--read p {
    margin-bottom: 2rem;
  }
}
#top-page .top-page__company .flow-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(6px, 2vw, 10px);
}
#top-page .top-page__company .flow-col {
  /* 表示窓 */
  overflow: hidden;
  --dur: 26s; /* 速度（列ごとに上書き可） */
  --gap: 10px; /* 画像の縦(横)間隔 */
  background: transparent;
  height: -moz-fit-content;
  height: fit-content;
  max-height: 600px;
  overflow: hidden;
}
#top-page .top-page__company .flow-track {
  display: flex;
  flex-direction: column; /* PC: 縦流し */
  gap: var(--gap);
  will-change: transform;
}
#top-page .top-page__company .flow-list {
  display: flex;
  flex-direction: column;
  gap: var(--gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
#top-page .top-page__company .flow-list img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: auto;
  aspect-ratio: 3/4; /* ← おすすめ：縦長感そのままに少し小さく */
  object-fit: cover;
}
#top-page .top-page__company .flow-col--up .flow-track {
  animation: flow-up var(--dur) linear infinite;
}
@keyframes flow-up {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(calc(-50% - var(--gap) / 2));
  }
  /* 2セット=全体の50%ぶんだけ上へ */
}
#top-page .top-page__company .flow-col--down .flow-track {
  animation: flow-down var(--dur) linear infinite;
}
@keyframes flow-down {
  0% {
    transform: translateY(calc(-50% - var(--gap) / 2));
  }
  100% {
    transform: translateY(0);
  }
}
@media screen and (max-width: 768px) {
  #top-page .top-page__company {
    /* ← これがポイント：4枚分の幅を均等に計算 */
    /* 1列目=左→右 / 2列目=右→左 */
  }
  #top-page .top-page__company .flow-gallery {
    grid-template-columns: 1fr; /* 1カラムに積む */
    gap: 6px;
  }
  #top-page .top-page__company .flow-col {
    --gap: 6px; /* アイテム間余白 */
    --visible: 2; /* 同時表示枚数（ここ変えると枚数変更できる） */
    --dur: 16s;
    height: auto; /* 行の高さ */
    overflow: hidden;
    border-radius: 12px;
    background: transparent;
  }
  #top-page .top-page__company .flow-track {
    flex-direction: row;
    height: 100%;
  }
  #top-page .top-page__company .flow-list {
    flex-direction: row;
    gap: var(--gap);
  }
  #top-page .top-page__company .flow-list li {
    flex: 0 0 calc((100% - (var(--visible) - 1) * var(--gap)) / var(--visible));
  }
  #top-page .top-page__company .flow-list img {
    width: 100%;
    height: auto;
    aspect-ratio: 4/3; /* ← ここで比率を調整！ */
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 12px;
  }
  #top-page .top-page__company .flow-col:nth-child(odd) .flow-track {
    animation: flow-ltr var(--dur) linear infinite;
  }
  #top-page .top-page__company .flow-col:nth-child(even) .flow-track {
    animation: flow-rtl var(--dur) linear infinite;
  }
  @keyframes flow-ltr {
    0% {
      transform: translateX(calc(-50% - var(--gap) / 2));
    }
    100% {
      transform: translateX(0);
    }
  }
  @keyframes flow-rtl {
    0% {
      transform: translateX(0);
    }
    100% {
      transform: translateX(calc(-50% - var(--gap) / 2));
    }
  }
}
#top-page .top-page__ig {
  text-align: center;
  position: relative;
  overflow: hidden;
  padding: 5% 0;
  /*ミニサイズ*/
}
#top-page .top-page__ig .s-deco01_1,
#top-page .top-page__ig .s-deco01_2,
#top-page .top-page__ig .s-deco02_1 {
  position: absolute;
  width: 20%;
  z-index: -1;
}
#top-page .top-page__ig .s-deco03_1,
#top-page .top-page__ig .s-deco01_3 {
  position: absolute;
  width: 7%;
  z-index: -1;
}
#top-page .top-page__ig .s-deco01_1 {
  left: -20%;
  top: 0;
}
#top-page .top-page__ig .s-deco01_2 {
  left: -20%;
  bottom: 0;
}
#top-page .top-page__ig .s-deco01_3 {
  left: 35%;
  top: 10%;
}
#top-page .top-page__ig .s-deco02_1 {
  bottom: 0;
  right: -12%;
}
#top-page .top-page__ig .s-deco02_1 {
  top: 0;
  right: -12%;
}
#top-page .top-page__ig .s-deco03_1 {
  right: -7%;
  bottom: 20%;
}
#top-page .top-page__ig h2 {
  width: 30%;
  margin: auto;
}
#top-page .top-page__ig--feed {
  margin: 5% auto;
}
#top-page .angled-wrap {
  position: relative;
  padding-bottom: 30px;
  overflow: visible;
}
#top-page .angled-wrap .s-deco01_1 {
  position: absolute;
  width: 20%;
  z-index: -1;
  bottom: 0;
  left: -20%;
}
#top-page .top-page__recruit-border {
  position: absolute;
  inset: 0;
  z-index: 1;
  clip-path: polygon(0 0, 100% 20%, 100% 100%, 0 80%);
  transform: translateY(30px);
  pointer-events: none;
}
#top-page .top-page__recruit {
  position: relative;
  display: grid;
  place-items: center;
  height: 100vh;
  background-color: #00513a;
  clip-path: polygon(0 0, 100% 20%, 100% 100%, 0 80%);
  box-shadow: 20px 20px #000;
  z-index: 2;
  /* 背景スライダー3カラム */
  /* 黒の半透明オーバーレイ */
  /* 前面テキスト */
}
#top-page .top-page__recruit .recruit__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  /* ▼ここから jsでreverseDirectionを使用したら挙動がおかしいからCSSで以下対応！*/
  /* 逆向きに見せたい列に flip クラスを付ける*/
  /* 中身は正立させる */
  /*▲ここまで*/
}
#top-page .top-page__recruit .recruit__bg .bg-swiper.flip {
  transform: rotate(180deg);
}
#top-page .top-page__recruit .recruit__bg .bg-swiper.flip .swiper-slide,
#top-page .top-page__recruit .recruit__bg .bg-swiper.flip .swiper-slide > * {
  transform: rotate(180deg);
}
#top-page .top-page__recruit .recruit__bg .swiper-container {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 12px;
}
#top-page .top-page__recruit .recruit__bg .swiper-container .swiper-wrapper {
  /* 加減速なし（一定速度） */
  transition-timing-function: linear !important;
  /* 高さ固定：slidesPerView=3 + gap=12px */
}
#top-page .top-page__recruit .recruit__bg .swiper-container .swiper-wrapper .swiper-slide {
  height: calc((100% - 2 * var(--gap)) / 3);
  will-change: transform;
  transform: translateZ(0);
}
#top-page .top-page__recruit .recruit__bg .swiper-container .swiper-wrapper .swiper-slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
#top-page .top-page__recruit .bg-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: hsla(0, 0%, 7%, 0.75);
  pointer-events: none;
}
#top-page .top-page__recruit--read {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
  color: #ffffff;
  gap: 10%;
}
#top-page .top-page__recruit--read .recruit-head {
  width: 30%;
}
@media screen and (max-width: 768px) {
  #top-page .top-page__recruit--read .recruit-head {
    width: 100%;
  }
}
#top-page .top-page__recruit--read .recruit-note {
  line-height: 2;
}
#top-page .top-page__recruit--read .recruit-note h3 {
  font-size: var(--fz-2);
  margin-bottom: 1em;
}
#top-page .top-page__recruit--read .recruit-note p {
  padding-bottom: 10%;
}
#top-page .top-page__recruit--read .recruit-note .r_btn {
  text-align: right;
}

/*********************************

SUB-PAGE

*********************************/
#sub-page {
  /*下層タイトル*/
  /*下層リスト装飾*/
  /*下層ヘッダー*/
  /*下層コンテンツ*/
  /* +++++++++++++++

  About

  +++++++++++++++ */
  /* +++++++++++++++

  Service

  +++++++++++++++ */
  /* +++++++++++++++

  Company

  +++++++++++++++ */
  /* +++++++++++++++

  Recruit

  +++++++++++++++ */
  /* +++++++++++++++

  News

  +++++++++++++++ */
}
#sub-page.page-def {
  padding: 10% 0;
}
#sub-page.single-page {
  padding-top: 120px;
}
@media screen and (max-width: 768px) {
  #sub-page.single-page {
    padding-top: 60px;
  }
}
#sub-page.single-page .single-page__contents .contents-box {
  background: rgba(255, 255, 255, 0.8);
  border-radius: 12px;
  padding: 5%;
}
#sub-page.single-page .single-page__contents h1 {
  letter-spacing: 0.05em;
  font-weight: 500;
  font-size: var(--fz-2);
  padding: 0;
  border-left: 7px solid #dae14a;
  padding-left: 0.7em;
  margin: 0 0 1em 0;
}
#sub-page.single-page .single-page__contents h2 {
  font-size: var(--fz-3);
  color: #00513a;
  padding: 0.3em 0;
  border-bottom: solid 2px #00513a;
  margin: 1em 0;
}
#sub-page.single-page .single-page__contents h3 {
  border-bottom: solid 2px #aaa;
  position: relative;
  margin: 1em 0;
  padding: 0.2em 0;
}
#sub-page.single-page .single-page__contents h3:after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 2px #00513a;
  bottom: -2px;
  width: 10%;
}
#sub-page.page-contact {
  padding-top: 120px;
  font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
  #sub-page.page-contact {
    padding-top: 60px;
    font-size: 1.4rem;
  }
}
#sub-page.page-contact .sub-page__contents {
  padding: 5% 0;
}
#sub-page.page-contact .sub-page__contents .contents {
  max-width: 900px;
  margin: auto;
  color: #ffffff;
  line-height: 2;
}
#sub-page h1.sub-page__ttl {
  text-align: center;
  letter-spacing: 0.2em;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #dae14a;
}
#sub-page h1.sub-page__ttl .en {
  display: block;
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  font-size: var(--heading03);
  color: #ffffff;
}
#sub-page h1.sub-page__ttl .ja {
  font-size: var(--fz-4);
  color: #00513a;
  color: #dae14a;
}
@media screen and (max-width: 768px) {
  #sub-page h1.sub-page__ttl {
    font-size: 2rem;
  }
}
#sub-page .desc-list {
  list-style-type: none;
  padding-left: 1.2em;
}
#sub-page .desc-list li {
  line-height: 2;
  text-indent: -1.2em;
}
#sub-page .desc-list li::before {
  display: inline-block;
  content: "";
  width: 8px;
  height: 8px;
  background-image: url(../img/dot-2.svg);
  background-repeat: no-repeat;
  background-size: contain;
  margin-right: 0.5em;
}
#sub-page .sub-page__head {
  position: relative;
}
#sub-page .sub-page__head .sub-head-item01 {
  position: absolute;
  width: 7%;
  right: 30%;
  bottom: 20%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page .sub-page__head .sub-head-item01 {
    width: 12%;
    bottom: 25%;
  }
}
#sub-page .sub-page__head .sub-head-item02 {
  position: absolute;
  width: 12%;
  bottom: 30%;
  right: 3%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page .sub-page__head .sub-head-item02 {
    width: 20%;
  }
}
#sub-page .sub-page__head--ttl {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
#sub-page .sub-page__head--ttl h1 {
  padding-right: 5%;
}
#sub-page .sub-page__head--ttl h1 .ja {
  display: block;
  font-size: var(--fz-3);
  letter-spacing: 0.1em;
}
#sub-page .sub-page__head--ttl h1 .en {
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  font-size: var(--heading01);
  color: #aaaaaa;
  line-height: 1;
  letter-spacing: 0.03em;
}
#sub-page .sub-page__head--img {
  position: relative;
}
#sub-page .sub-page__head--img img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/1.3;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 1550px) {
  #sub-page .sub-page__head--img img {
    aspect-ratio: 4/1.8;
  }
}
@media screen and (max-width: 768px) {
  #sub-page .sub-page__head--img img {
    aspect-ratio: 4/3;
  }
}
#sub-page .sub-page__head--img::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: url(../img/sub_head_item.webp);
  background-size: 100% 65%;
  background-repeat: no-repeat;
  background-position: right bottom;
  z-index: 1;
  pointer-events: none;
}
@media screen and (max-width: 1550px) {
  #sub-page .sub-page__head--img::after {
    background-size: 100% 70%;
  }
}
@media screen and (max-width: 768px) {
  #sub-page .sub-page__head--img::after {
    background-size: 100% 75%;
  }
}
#sub-page .sub-page__contents {
  position: relative;
}
#sub-page .sub-page__contents .contents-box {
  background: rgba(255, 255, 255, 0.8);
  border-radius: 12px;
  padding: 5%;
}
#sub-page .sub-page__contents .sub_body_top {
  position: absolute;
  inset: 0;
}
#sub-page .sub-page__contents .sub_body_top::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url(../img/sub_body_top.png);
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: top center;
  background-blend-mode: multiply; /* 焼き込み */
  opacity: 0.3;
  pointer-events: none;
}
#sub-page .sub-page__contents .sub_body_top img {
  width: 100%;
  height: auto;
  opacity: 0.3;
  mix-blend-mode: multiply;
}
#sub-page .sub-page__contents .col2 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  padding: 10% 0;
}
#sub-page .sub-page__contents .col2 .lt {
  width: 220px;
}
#sub-page .sub-page__contents .col2 .rt {
  width: calc(100% - 280px);
}
@media screen and (max-width: 768px) {
  #sub-page .sub-page__contents .col2 .rt {
    width: 100%;
  }
}
#sub-page .sub-page__contents .sub-page__sidebar {
  position: sticky;
  top: 180px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 12px;
  padding: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
@media screen and (max-width: 768px) {
  #sub-page .sub-page__contents .sub-page__sidebar {
    display: none !important;
  }
}
#sub-page .sub-page__contents .sub-page__sidebar article {
  border: solid 1px #00513a;
  padding: 2.4rem 1rem;
  border-radius: 12px;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-ttl {
  color: #00513a;
  border-bottom: 1px solid #00513a;
  margin-bottom: 0.5em;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-ttl::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  background-image: url(../img/dot-2.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
  margin-right: 4px;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu {
  margin-left: 1em;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li {
  list-style-type: none;
  padding: 0.2em 0;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li a {
  color: #000;
  text-decoration: none;
  font-size: 1.5rem;
  font-weight: bold;
  position: relative;
  transition: all 0.25s ease;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li a::before {
  content: "";
  position: absolute;
  left: -14px;
  top: 50%;
  transform: translateY(-50%) scale(0);
  width: 8px;
  height: 8px;
  background-image: url(../img/dot-2.svg);
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0;
  transition: all 0.25s ease;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li a:hover, #sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li a.active {
  color: #00513a;
  border-bottom: 1px solid #00513a;
  margin-bottom: 0.5em;
  opacity: 1;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li a:hover::before, #sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li a.active::before {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li.is-current > a {
  color: #00513a;
  border-bottom: 1px solid #00513a;
  margin-bottom: 0.5em;
  opacity: 1;
}
#sub-page .sub-page__contents .sub-page__sidebar .sidebar-menu li.is-current > a::before {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}
#sub-page.about-page {
  position: relative;
  /*品質背景*/
  /*強み背景*/
  /*マイスターの強み*/
  /*品質管理_背景*/
  /*品質管理_コンテンツ*/
  /*ギャラリー*/
  /* フル幅用ラッパー */
  /*品質管理体制*/
  /*技能士、検定取得者一覧*/
  /*技能士、検定取得者一覧*/
}
#sub-page.about-page img {
  width: 100%;
  height: auto;
}
#sub-page.about-page .quality-bg {
  position: relative;
  top: 0;
  left: 50%;
  transform: translateX(calc(-50% - 140px));
  width: 100vw;
  background: url(../img/about/q_bg.png) no-repeat left bottom;
  background-size: 100% 100%;
  padding: 30% 0;
  z-index: -1;
  background-blend-mode: multiply;
  opacity: 0.3;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .quality-bg {
    transform: translateX(-50%);
  }
}
#sub-page.about-page .strengths-bg {
  position: relative;
  left: 50%;
  transform: translateX(calc(-50% - 140px));
  width: 100vw;
  background: url(../img/sub_body_btm.png) no-repeat left bottom;
  background-size: 100% 100%;
  padding: 20% 0;
  z-index: -1;
  background-blend-mode: multiply;
  opacity: 0.3;
  pointer-events: none;
}
#sub-page.about-page #strengths {
  scroll-margin-top: 120px;
  position: relative;
}
#sub-page.about-page .about-strengths {
  position: relative;
}
#sub-page.about-page .about-strengths .bg-item01 {
  position: absolute;
  right: 15%;
  width: 12%;
  top: 30%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .bg-item01 {
    width: 18%;
    top: 20%;
    z-index: 1;
    right: 0;
  }
}
#sub-page.about-page .about-strengths .bg-item02 {
  position: absolute;
  left: 12%;
  width: 8%;
  top: 52%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .bg-item02 {
    left: 4%;
    width: 12%;
    top: 48%;
  }
}
#sub-page.about-page .about-strengths .bg-item03 {
  position: absolute;
  right: 15%;
  width: 12%;
  bottom: 15%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .bg-item03 {
    right: 5%;
    width: 16%;
    bottom: -5%;
    z-index: -1;
  }
}
#sub-page.about-page .about-strengths .strengths-list {
  list-style: none;
  margin: 10% 0;
  padding: 0;
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item {
  position: relative;
  margin-bottom: 20%;
  /*偶数リストの設定02-04*/
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item {
    margin-bottom: 10%;
  }
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel {
  width: 65%;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 12px;
  padding: 5%;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  position: relative;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel {
    padding: 5% 5% 15% 5%;
  }
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel .strengths-item__desc {
  padding-right: 15%;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel .strengths-item__desc {
    padding-right: 0;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel {
    width: 100%;
  }
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel .strengths-item__title {
  font-size: var(--fz-2);
  margin: 0 0 0.6em;
  padding-bottom: 0.4em;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  font-weight: normal;
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel .strengths-item__title .num {
  font-size: var(--heading02);
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  color: #00513a;
  line-height: 1;
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel .strengths-item__title p {
  padding-left: 1em;
  line-height: 1.5;
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel .service-item__desc {
  line-height: 1.9;
  margin-bottom: 2em;
  padding-right: 30%;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__panel .service-item__desc {
    padding-right: 0;
  }
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__img {
  width: 45%;
  z-index: 1;
  position: absolute;
  right: 0;
  top: 150px;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__img {
    position: relative;
    top: auto;
    width: 70%;
    margin-left: auto;
    margin-right: 5%;
    margin-top: -10%;
  }
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item .strengths-item__inner .strengths-item__img img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.2;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 12px;
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item:nth-child(odd) .strengths-item__inner {
  flex-direction: row-reverse;
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item:nth-child(odd) .strengths-item__panel {
  padding: 5%;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item:nth-child(odd) .strengths-item__panel {
    padding: 5% 5% 15% 5%;
  }
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item:nth-child(odd) .strengths-item__panel .strengths-item__desc {
  padding-right: 0;
  padding-left: 15%;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item:nth-child(odd) .strengths-item__panel .strengths-item__desc {
    padding-left: 0;
  }
}
#sub-page.about-page .about-strengths .strengths-list .strengths-item:nth-child(odd) .strengths-item__img {
  width: 45%;
  position: absolute;
  top: 150px;
  left: 0;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-strengths .strengths-list .strengths-item:nth-child(odd) .strengths-item__img {
    position: relative;
    top: auto;
    width: 70%;
    margin-right: 5%;
  }
}
#sub-page.about-page .p_bg {
  position: relative;
  padding: 20% 0;
  margin-top: -22%;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .p_bg {
    padding-bottom: 4rem;
  }
}
#sub-page.about-page .p_bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(calc(-50% - 140px));
  width: 100vw;
  height: 100%;
  background: url(../img/about/p_bg.webp) no-repeat center;
  background-size: 100% 100%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .p_bg::before {
    transform: translateX(-50%);
    background: url(../img/about/p_bg.webp) no-repeat center top;
    background-size: 100% auto;
  }
}
#sub-page.about-page .about-quality_control__read {
  padding: 4rem 0;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-quality_control__read {
    padding: 2rem 0 4rem;
  }
}
#sub-page.about-page .about-quality_control .policy-ttl {
  font-size: var(--fz-2);
  padding: 1.5em 0;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-quality_control .policy-ttl {
    padding: 6rem 0 2rem;
    color: #ffffff;
    text-align: center;
  }
}
#sub-page.about-page .about-quality_control .policy-list {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 2rem;
}
#sub-page.about-page .about-quality_control .policy-list .policy-item {
  width: calc(33.3333333333% - 2rem);
  background-color: #eaeaea;
  padding: 2rem;
  border-radius: 12px;
  list-style-type: none;
  text-align: center;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-quality_control .policy-list .policy-item {
    width: 100%;
  }
}
#sub-page.about-page .about-quality_control .policy-list .policy-item__img {
  background-color: #ffffff;
  border-radius: 12px;
  padding: 2rem;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-quality_control .policy-list .policy-item__img {
    padding: 2rem 10%;
  }
}
#sub-page.about-page .about-quality_control .policy-list .policy-item__read {
  font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-quality_control .policy-list .policy-item__read {
    font-size: 1.4rem;
  }
}
#sub-page.about-page .about-quality_control .policy-list .policy-item__read h4 {
  color: #00513a;
  text-align: center;
  font-size: var(--fz-2);
  letter-spacing: 0.1em;
  padding: 0.2em 0;
}
#sub-page.about-page .gallery-full {
  position: relative;
  width: 100vw;
  left: 50%;
  transform: translateX(calc(-50% - 140px));
  overflow: hidden;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .gallery-full {
    transform: translateX(-50%);
  }
}
#sub-page.about-page .gallery-full .bg-item01 {
  position: absolute;
  right: 15%;
  width: 5%;
  top: 10%;
  z-index: 3;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .gallery-full .bg-item01 {
    width: 12%;
  }
}
#sub-page.about-page .gallery-full .bg-item02 {
  position: absolute;
  left: 20%;
  width: 10%;
  bottom: 0;
  z-index: 3;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .gallery-full .bg-item02 {
    width: 12%;
    left: 5%;
  }
}
#sub-page.about-page .gallery-full .gallery-marquee {
  width: 100%;
  overflow: hidden;
}
#sub-page.about-page .gallery-full .gallery-marquee .swiper-container_gallery {
  width: 100%;
  overflow: hidden;
  margin: 0;
  display: block;
}
#sub-page.about-page .gallery-full .gallery-marquee .swiper-container_gallery .swiper-wrapper {
  transition-timing-function: linear !important;
  align-items: stretch;
}
#sub-page.about-page .gallery-full .gallery-marquee .swiper-container_gallery .swiper-wrapper .swiper-slide {
  width: auto !important;
}
#sub-page.about-page .gallery-full .gallery-marquee .swiper-container_gallery .swiper-wrapper .swiper-slide img {
  display: block;
  height: 240px; /* 好きな高さに調整してOK */
  width: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .gallery-full .gallery-marquee .swiper-container_gallery .swiper-wrapper .swiper-slide img {
    height: 100px;
  }
}
#sub-page.about-page .gallery-full .gallery-marquee .swiper-container_gallery.swiper-gallery-bottom {
  /* ▼ 下段だけ反転トリックをかける */
  transform: rotate(180deg);
}
#sub-page.about-page .gallery-full .gallery-marquee .swiper-container_gallery.swiper-gallery-bottom .swiper-slide {
  transform: rotate(180deg);
}
#sub-page.about-page .quality_system {
  margin-top: -50%;
}
#sub-page.about-page .quality_system .system-list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 2rem;
  margin: 5% auto;
}
#sub-page.about-page .quality_system .system-list .system-item {
  width: calc(50% - 1rem);
  background-color: #eaeaea;
  padding: 2rem;
  border-radius: 12px;
  list-style-type: none;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .quality_system .system-list .system-item {
    width: 100%;
  }
}
#sub-page.about-page .quality_system .system-list .system-item__img {
  background-color: #ffffff;
  border-radius: 12px;
  padding: 2rem;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .quality_system .system-list .system-item__img {
    padding: 2rem 10%;
  }
}
#sub-page.about-page .quality_system .system-list .system-item__read h4 {
  font-size: var(--fz-3);
  letter-spacing: 0.1em;
  padding: 1em 0 0.2em;
  font-weight: bold;
}
#sub-page.about-page .quality_system .system-list .system-item__read h4 span {
  color: #00513a;
  display: inline-block;
  margin-right: 0.4em;
}
#sub-page.about-page .about-professional {
  padding-top: 120px;
  position: relative;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-professional {
    padding-top: 4rem;
  }
}
#sub-page.about-page .about-professional .bg-item01 {
  position: absolute;
  right: 35%;
  width: 15%;
  top: 10%;
  z-index: -1;
}
#sub-page.about-page .about-professional .bg-item02 {
  position: absolute;
  right: 28%;
  width: 5%;
  top: 12%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-professional .bg-item02 {
    right: 15%;
    width: 8%;
    top: 12%;
  }
}
#sub-page.about-page .about-professional .bg-item03 {
  position: absolute;
  right: 15%;
  width: 8%;
  top: 18%;
  z-index: -1;
}
#sub-page.about-page .about-professional__read {
  color: #ffffff;
  padding: 4rem 0 6rem;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-professional__read {
    padding: 2rem 0 4rem;
  }
}
#sub-page.about-page .about-professional__read strong {
  display: block;
  font-size: var(--fz-3);
  margin-bottom: 1em;
}
#sub-page.about-page .about-professional .professional-list {
  margin-bottom: 4rem;
}
#sub-page.about-page .about-professional .professional-list .flex2 {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 2rem;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-professional .professional-list .flex2 {
    gap: 0;
  }
}
#sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item {
  width: calc(50% - 2rem);
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item tr {
    border-bottom: 1px solid #ffffff;
  }
}
#sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item tr th,
#sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item tr td {
  border: 1px solid #ffffff;
  padding: 1rem 1.5rem;
  font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item tr th,
  #sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item tr td {
    border: none;
  }
}
#sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item tr th {
  font-weight: normal;
  text-align: left;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item tr th {
    padding-left: 0;
  }
}
#sub-page.about-page .about-professional .professional-list .flex2 .professional-list__item tr td {
  width: 100px;
  text-align: center;
}
#sub-page.about-page .about-machine {
  padding-top: 120px;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-machine {
    padding-top: 4rem;
  }
}
#sub-page.about-page .about-machine__list .machine-item {
  list-style-type: none;
  margin-bottom: 2rem;
}
#sub-page.about-page .about-machine__list .machine-item:first-child {
  margin-top: 4rem;
}
#sub-page.about-page .about-machine__list .machine-item .list-box {
  background: url(../img/about/machine_list_bg.png) no-repeat center;
  background-size: cover;
  padding: 5%;
  border-radius: 12px;
}
#sub-page.about-page .about-machine__list .machine-item .list-box .flex2 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 4rem auto;
  gap: 4rem;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-machine__list .machine-item .list-box .flex2 {
    margin: 2rem auto;
    gap: 1rem;
  }
}
#sub-page.about-page .about-machine__list .machine-item .list-box .flex2 .machine-item__img {
  width: calc(50% - 2rem);
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-machine__list .machine-item .list-box .flex2 .machine-item__img {
    width: 100%;
  }
}
#sub-page.about-page .about-machine__list .machine-item .list-box .flex2 .machine-item__img img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.2;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 12px;
}
#sub-page.about-page .about-machine .machine-contents {
  margin-top: 8rem;
  color: #ffffff;
}
#sub-page.about-page .about-machine .machine-contents h3 {
  font-size: var(--fz-2);
  letter-spacing: 0.1em;
  font-weight: 500;
  margin-bottom: 2rem;
}
#sub-page.about-page .about-machine .machine-contents table {
  width: 100%;
  font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-machine .machine-contents table {
    border: 1px solid #ffffff;
  }
}
#sub-page.about-page .about-machine .machine-contents table tr th,
#sub-page.about-page .about-machine .machine-contents table tr td {
  padding: 1rem;
  border: 1px solid #ffffff;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-machine .machine-contents table tr th,
  #sub-page.about-page .about-machine .machine-contents table tr td {
    width: 100%;
    display: block;
    border: none;
  }
}
#sub-page.about-page .about-machine .machine-contents table tr th {
  font-weight: normal;
  width: 220px;
  text-align: left;
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-machine .machine-contents table tr th {
    width: 100%;
    display: block;
    background-color: rgba(255, 255, 255, 0.8);
    color: #00513a;
  }
}
#sub-page.about-page .about-machine .machine-contents table tr .machine-contents__desc {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 2rem;
}
@media screen and (max-width: 1100px) {
  #sub-page.about-page .about-machine .machine-contents table tr .machine-contents__desc {
    display: block;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-machine .machine-contents table tr .machine-contents__desc {
    gap: 0;
    display: block;
  }
}
#sub-page.about-page .about-machine .machine-contents table tr .machine-contents__desc .index {
  min-width: 200px;
}
@media screen and (max-width: 1100px) {
  #sub-page.about-page .about-machine .machine-contents table tr .machine-contents__desc .index {
    font-weight: 500;
    width: 100%;
    margin-bottom: 0.5em;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.about-page .about-machine .machine-contents table tr .machine-contents__desc .index {
    min-width: auto;
  }
  #sub-page.about-page .about-machine .machine-contents table tr .machine-contents__desc .index::before {
    display: inline-block;
    content: "●";
    margin-right: 0.4em;
  }
}
#sub-page.service-page {
  position: relative;
}
#sub-page.service-page img {
  width: 100%;
  height: auto;
}
#sub-page.service-page img.md-img {
  border-radius: 12px;
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.2;
  -o-object-fit: cover;
     object-fit: cover;
}
#sub-page.service-page img.lg-img {
  border-radius: 12px;
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.4;
  -o-object-fit: cover;
     object-fit: cover;
}
#sub-page.service-page .contents-box {
  background: url(../img/box_bg.png) no-repeat center top rgba(255, 255, 255, 0.8);
  background-size: 100%;
}
#sub-page.service-page .service-about__list {
  padding: 5% 0;
}
#sub-page.service-page .service-about__list .contents-box {
  margin-bottom: 4rem;
  scroll-margin-top: 120px;
}
#sub-page.service-page .service-about__list .contents-box:last-child {
  margin-bottom: 0;
}
#sub-page.service-page .service-about__list .service-about__desc {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 5% auto;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .service-about__list .service-about__desc {
    gap: 2rem;
  }
}
#sub-page.service-page .service-about__list .service-about__desc .lt {
  width: 55%;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .service-about__list .service-about__desc .lt {
    width: 100%;
  }
}
#sub-page.service-page .service-about__list .service-about__desc .rt {
  width: 40%;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .service-about__list .service-about__desc .rt {
    width: 100%;
  }
}
#sub-page.service-page .service-about__list .service-about__desc--list {
  list-style-type: none;
  padding-left: 1.2em;
}
#sub-page.service-page .service-about__list .service-about__desc--list li {
  line-height: 2;
  text-indent: -1.2em;
}
#sub-page.service-page .service-about__list .service-about__desc--list li::before {
  display: inline-block;
  content: "";
  width: 8px;
  height: 8px;
  background-image: url(../img/dot-2.svg);
  background-repeat: no-repeat;
  background-size: contain;
  margin-right: 0.5em;
}
#sub-page.service-page .service-about__list .service-about__b-a {
  border: 1px solid #00513a;
  border-radius: 12px;
  padding: 5%;
}
#sub-page.service-page .service-about__list .service-about__b-a .box {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
#sub-page.service-page .service-about__list .service-about__b-a .box .lt {
  width: 35%;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .service-about__list .service-about__b-a .box .lt {
    width: 100%;
  }
}
#sub-page.service-page .service-about__list .service-about__b-a .box .rt {
  width: 60%;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .service-about__list .service-about__b-a .box .rt {
    width: 100%;
  }
}
#sub-page.service-page .service-about__list .service-about__b-a .b-a__ttl {
  font-weight: 500;
  padding-bottom: 0.5em;
}
#sub-page.service-page .service-about__list .service-about__b-a .arrow-down::after {
  content: "";
  display: block;
  width: 1.5em;
  height: 1.5em;
  margin: 0.5em auto 0;
  background-image: url(../img/service/arrow-down.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
}
#sub-page.service-page .service-about__list .service-about__b-a .b-a__read {
  padding-top: 1.5em;
}
#sub-page.service-page .business_records {
  scroll-margin-top: 120px;
  padding: 5% 0;
}
#sub-page.service-page .business_records__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .business_records__head {
    display: block;
  }
}
#sub-page.service-page .business_records__head h2 {
  min-width: 24em;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .business_records__head h2 {
    min-width: auto;
    width: 100%;
  }
}
#sub-page.service-page .business_records__head h3 {
  font-weight: normal;
  padding-left: 2em;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .business_records__head h3 {
    width: 100%;
    padding-left: 0;
    padding-top: 2rem;
  }
}
#sub-page.service-page .business_records__list {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 5% auto;
}
#sub-page.service-page .business_records__list .records-img {
  width: calc(33.3333333333% - 1rem);
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .business_records__list .records-img {
    width: 100%;
  }
}
#sub-page.service-page .development_cases {
  scroll-margin-top: 120px;
  padding: 5% 0;
  position: relative;
}
#sub-page.service-page .development_cases .bg-item01 {
  position: absolute;
  right: 15%;
  width: 18%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .development_cases .bg-item01 {
    right: 18%;
    width: 16%;
    top: 0;
  }
}
#sub-page.service-page .development_cases .bg-item02 {
  position: absolute;
  right: 0;
  width: 8%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .development_cases .bg-item02 {
    right: 2%;
    width: 8%;
    top: 0;
  }
}
#sub-page.service-page .development_cases__list {
  margin: 5% auto;
}
#sub-page.service-page .development_cases__list .contents-box {
  margin-bottom: 4rem;
}
#sub-page.service-page .development_cases__list .contents-box:last-child {
  margin-bottom: 0;
}
#sub-page.service-page .development_cases .heading03 .head-num {
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  color: #00513a;
  font-size: var(--heading02);
  margin-right: 0.4em;
  display: inline-block;
  line-height: 1;
  margin-left: 0.1em;
}
#sub-page.service-page .development_cases__desc {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
#sub-page.service-page .development_cases__desc.row-reverse {
  flex-direction: row-reverse;
}
#sub-page.service-page .development_cases__desc .lt {
  width: 60%;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .development_cases__desc .lt {
    width: 100%;
    padding-bottom: 1rem;
  }
}
#sub-page.service-page .development_cases__desc .rt {
  width: 35%;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .development_cases__desc .rt {
    width: 100%;
  }
}
#sub-page.service-page .development_cases__desc h4 {
  color: #00513a;
  margin-bottom: 0.5em;
}
#sub-page.service-page .development_cases__desc strong {
  display: block;
  color: #00513a;
}
#sub-page.service-page .solution {
  color: #ffffff;
}
#sub-page.service-page .solution .solution__ttl {
  font-size: var(--fz-2);
}
#sub-page.service-page .solution .solution__read {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  /* 左の「!」部分 */
  /* テキスト */
  /* 吹き出しのしっぽ */
}
#sub-page.service-page .solution .solution__read .lt,
#sub-page.service-page .solution .solution__read .rt {
  width: 48%;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .solution .solution__read .lt,
  #sub-page.service-page .solution .solution__read .rt {
    width: 100%;
  }
}
#sub-page.service-page .solution .solution__read .balloon {
  position: relative;
  background: #ffffff;
  border-radius: 12px;
  padding: 24px 28px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 20px;
  margin: 4rem 0;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .solution .solution__read .balloon {
    margin: 2rem 0;
  }
}
#sub-page.service-page .solution .solution__read .balloon .icon {
  font-size: var(--heading01);
  font-weight: bold;
  color: #dae14a;
  line-height: 1;
}
#sub-page.service-page .solution .solution__read .balloon p {
  margin: 0;
  line-height: 1.8;
  color: #00513a;
}
#sub-page.service-page .solution .solution__read .balloon::after {
  content: "";
  position: absolute;
  bottom: -18px;
  left: 40px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 18px 14px 0 14px;
  border-color: #ffffff transparent transparent transparent;
}
#sub-page.service-page .contact_flow {
  scroll-margin-top: 120px;
  margin: 5% auto;
}
#sub-page.service-page .contact_flow__list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  border-bottom: 1px solid #00513a;
  padding: 10px 0;
}
#sub-page.service-page .contact_flow__list.last {
  border-bottom: none;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .contact_flow__list {
    flex-direction: column;
    align-items: flex-start;
  }
}
#sub-page.service-page .contact_flow__list .lt {
  width: 500px;
  width: auto;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
@media screen and (max-width: 1240px) {
  #sub-page.service-page .contact_flow__list .lt {
    width: 100%;
    justify-content: flex-start;
    align-items: center;
  }
}
#sub-page.service-page .contact_flow__list .rt {
  width: calc(100% - 500px);
}
@media screen and (max-width: 1240px) {
  #sub-page.service-page .contact_flow__list .rt {
    width: 100%;
    padding: 1rem 0;
  }
}
#sub-page.service-page .contact_flow__list .step {
  color: #00513a;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  flex-direction: column;
  width: 80px;
  font-weight: 500;
  flex-shrink: 0;
}
@media screen and (max-width: 1240px) {
  #sub-page.service-page .contact_flow__list .step {
    width: auto;
  }
}
#sub-page.service-page .contact_flow__list .step .num {
  font-size: var(--heading03);
  display: block;
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  line-height: 1;
}
#sub-page.service-page .contact_flow__list .icon {
  width: 60px;
  position: relative;
  margin-left: 1rem;
  flex-shrink: 0;
}
@media screen and (max-width: 1240px) {
  #sub-page.service-page .contact_flow__list .icon {
    width: 40px;
    margin: 0.5em;
  }
}
#sub-page.service-page .contact_flow__list .icon::after {
  position: absolute;
  left: 30px;
  top: 60px;
  display: inline-block;
  content: "";
  width: 3px;
  height: 80px;
  background-color: #00513a;
}
@media screen and (max-width: 1240px) {
  #sub-page.service-page .contact_flow__list .icon::after {
    display: none;
  }
}
#sub-page.service-page .contact_flow__list .icon.last::after {
  display: none;
}
#sub-page.service-page .contact_flow__list .ttl {
  padding-left: 2rem;
  letter-spacing: 0.05em;
  font-size: var(--fz-3);
  flex: 1 1 auto;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .contact_flow__list .ttl {
    padding-left: 1rem;
  }
}
#sub-page.service-page .contact_flow__list .ttl .en {
  display: block;
  color: #777715;
  font-size: 13px;
}
#sub-page.service-page .products {
  scroll-margin-top: 120px;
  padding: 5% 0;
  position: relative;
}
#sub-page.service-page .products .bg-item01 {
  position: absolute;
  right: 15%;
  width: 18%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .products .bg-item01 {
    right: 18%;
    width: 16%;
    top: 0;
  }
}
#sub-page.service-page .products .bg-item02 {
  position: absolute;
  right: 0;
  width: 8%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .products .bg-item02 {
    right: 2%;
    width: 8%;
    top: 0;
  }
}
#sub-page.service-page .products__list {
  margin: 5% auto;
}
#sub-page.service-page .products__list .heading03 .sm-txt {
  font-size: 0.7em;
  display: block;
  font-weight: normal;
}
#sub-page.service-page .products__list .contents-box {
  margin-bottom: 4rem;
}
#sub-page.service-page .products__list .contents-box:last-child {
  margin-bottom: 0;
}
#sub-page.service-page .products__desc {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 4rem 0;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .products__desc {
    margin: 2rem 0;
  }
}
#sub-page.service-page .products__desc .lt,
#sub-page.service-page .products__desc .rt {
  width: calc(50% - 1rem);
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .products__desc .lt,
  #sub-page.service-page .products__desc .rt {
    width: 100%;
  }
}
#sub-page.service-page .products__desc--list li {
  list-style-type: none;
  border: 1px solid #00513a;
  padding: 2rem;
  border-radius: 12px;
  margin-bottom: 2rem;
}
#sub-page.service-page .products__desc--list .list-ttl {
  border-bottom: 1px solid #3f3f3f;
  padding-bottom: 0.4em;
  margin-bottom: 0.8em;
  letter-spacing: 0.05em;
  font-size: var(--fz-3);
}
#sub-page.service-page .products__desc--list .list-ttl .index {
  color: #00513a;
  line-height: 1;
}
#sub-page.service-page .products__desc--list .list-ttl .index .num {
  display: inline-block;
  font-size: var(--heading03);
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  margin: 0 0.3em 0 0.1em;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .products__desc--read {
    padding-top: 1rem;
  }
}
#sub-page.service-page .products__desc--table tr th {
  font-weight: normal;
}
#sub-page.service-page .products__pdf {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  text-align: center;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .products__pdf {
    margin: 2rem 0;
  }
}
#sub-page.service-page .products__pdf a {
  color: #00513a;
  text-decoration: none;
}
#sub-page.service-page .products__pdf a img {
  display: block;
  border: 1px solid #00513a;
  width: 55%;
  margin: auto;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .products__pdf a img {
    width: 70%;
  }
}
#sub-page.service-page .products__pdf a p {
  display: inline-block;
  border-bottom: 1px solid #00513a;
  padding: 0.2em;
  font-size: 1.4rem;
}
#sub-page.service-page .products__pdf .lt,
#sub-page.service-page .products__pdf .rt {
  width: calc(50% - 1rem);
  width: 100%;
}
@media screen and (max-width: 768px) {
  #sub-page.service-page .products__pdf .lt,
  #sub-page.service-page .products__pdf .rt {
    width: 100%;
  }
}
#sub-page.service-page .products__pdf .lt {
  padding-bottom: 2rem;
}
#sub-page.company-page {
  /*PDFリンク*/
}
#sub-page.company-page img {
  width: 100%;
  height: auto;
}
#sub-page.company-page img.md-img {
  border-radius: 12px;
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.2;
  -o-object-fit: cover;
     object-fit: cover;
}
#sub-page.company-page img.lg-img {
  border-radius: 12px;
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.4;
  -o-object-fit: cover;
     object-fit: cover;
}
#sub-page.company-page img.tate-img {
  border-radius: 12px;
  width: 100%;
  height: auto;
  aspect-ratio: 2/3;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page img.tate-img {
    aspect-ratio: 3/2.2;
  }
}
#sub-page.company-page .pdf-link {
  text-decoration: none;
  border-bottom: 1px solid #00513a;
  color: #00513a;
  display: inline-block;
  margin: 2rem 0;
  font-weight: 500;
}
#sub-page.company-page .pdf-link.wh {
  color: #ffffff;
  border-bottom: 1px solid #ffffff;
}
#sub-page.company-page .contents-box {
  background: url(../img/box_bg.png) no-repeat center top rgba(255, 255, 255, 0.8);
  background-size: 100%;
  margin: 5% auto;
}
#sub-page.company-page .company-message {
  scroll-margin-top: 120px;
  padding: 5% 0;
}
#sub-page.company-page .company-message__desc {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-message__desc {
    flex-direction: column-reverse;
  }
}
#sub-page.company-page .company-message__desc .lt {
  width: 25%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-message__desc .lt {
    width: 100%;
  }
  #sub-page.company-page .company-message__desc .lt img {
    width: 100%;
  }
}
#sub-page.company-page .company-message__desc .rt {
  width: 70%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-message__desc .rt {
    width: 100%;
  }
}
#sub-page.company-page .company-message__desc .message-read {
  line-height: 2;
}
#sub-page.company-page .company-message__desc .message-name {
  text-align: right;
  margin-top: 4rem;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-message__desc .message-name {
    margin: 2rem 0;
  }
}
#sub-page.company-page .company-philosophy {
  scroll-margin-top: 120px;
  padding: 5% 0;
  position: relative;
}
#sub-page.company-page .company-philosophy .bg-item01 {
  position: absolute;
  right: 15%;
  width: 12%;
  top: 10%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-philosophy .bg-item01 {
    right: 20%;
    width: 12%;
    top: 0;
  }
}
#sub-page.company-page .company-philosophy .bg-item02 {
  position: absolute;
  right: 5%;
  width: 8%;
  top: 15%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-philosophy .bg-item02 {
    right: 5%;
    width: 12%;
    top: 0;
  }
}
#sub-page.company-page .company-philosophy__desc {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  padding: 5%;
  color: #ffffff;
}
#sub-page.company-page .company-philosophy__desc .lt {
  width: 35%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-philosophy__desc .lt {
    width: 100%;
  }
  #sub-page.company-page .company-philosophy__desc .lt img {
    width: 70%;
    display: block;
    margin: 2rem auto;
  }
}
#sub-page.company-page .company-philosophy__desc .rt {
  width: 60%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-philosophy__desc .rt {
    width: 100%;
    text-align: center;
  }
}
#sub-page.company-page .company-philosophy__desc .message-read {
  line-height: 2;
}
#sub-page.company-page .company-philosophy__desc .philosophy-ttl {
  font-size: var(--fz-3);
  margin-bottom: 2em;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-philosophy__desc .philosophy-ttl {
    font-size: 2.4rem;
    margin: 2rem auto;
    text-align: center;
  }
}
#sub-page.company-page .company-philosophy .philosophy__list--desc {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
#sub-page.company-page .company-philosophy .philosophy__list--desc .lt {
  width: 45%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-philosophy .philosophy__list--desc .lt {
    width: 100%;
    padding-bottom: 2rem;
  }
}
#sub-page.company-page .company-philosophy .philosophy__list--desc .rt {
  width: 45%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-philosophy .philosophy__list--desc .rt {
    width: 100%;
  }
}
#sub-page.company-page .company-philosophy .philosophy__list--desc.row-reverse {
  flex-direction: row-reverse;
}
#sub-page.company-page .company-philosophy .philosophy__list--desc ol {
  margin: 2rem 0 0;
}
#sub-page.company-page .company-philosophy .philosophy__list--desc ol li {
  list-style-type: none;
}
#sub-page.company-page .company-philosophy .philosophy__list--desc ol li::before {
  display: inline-block;
  content: "┃";
  margin-right: 0.5em;
}
#sub-page.company-page .company-philosophy .philosophy__list .heading03 {
  margin-top: 0;
}
#sub-page.company-page .company-philosophy .philosophy__list .heading03 .head-num {
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  color: #00513a;
  font-size: var(--heading02);
  margin-right: 0.4em;
  display: inline-block;
  line-height: 1;
  margin-left: 0.1em;
}
#sub-page.company-page .company-overview {
  padding: 5% 0;
  scroll-margin-top: 120px;
  position: relative;
}
#sub-page.company-page .company-overview .bg-item01 {
  position: absolute;
  right: 15%;
  width: 12%;
  top: 10%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-overview .bg-item01 {
    right: 18%;
    width: 15%;
    top: 0;
  }
}
#sub-page.company-page .company-overview .bg-item02 {
  position: absolute;
  right: 10%;
  width: 5%;
  top: 5%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-overview .bg-item02 {
    right: 5%;
    width: 8%;
    top: 0;
  }
}
#sub-page.company-page .company-overview table {
  width: 100%;
  color: #ffffff;
  margin: 5% auto;
}
#sub-page.company-page .company-overview table tr {
  border-bottom: 1px solid #ffffff;
}
#sub-page.company-page .company-overview table tr:last-child {
  border-bottom: none;
}
#sub-page.company-page .company-overview table tr th,
#sub-page.company-page .company-overview table tr td {
  padding: 1.5rem 0;
}
#sub-page.company-page .company-overview table tr th {
  font-weight: normal;
  text-align: left;
  width: 25%;
}
#sub-page.company-page .factory-passion {
  padding: 5% 0;
  scroll-margin-top: 120px;
}
#sub-page.company-page .factory-passion__intro {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 4rem auto;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .factory-passion__intro {
    margin: 2rem auto;
  }
}
#sub-page.company-page .factory-passion__intro .lt {
  width: 40%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .factory-passion__intro .lt {
    width: 100%;
    padding-bottom: 2rem;
  }
}
#sub-page.company-page .factory-passion__intro .rt {
  width: 55%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .factory-passion__intro .rt {
    width: 100%;
  }
}
#sub-page.company-page .factory-passion__intro--read {
  line-height: 2;
  color: #ffffff;
}
#sub-page.company-page .company-history {
  padding: 5% 0;
  scroll-margin-top: 120px;
  /* リスト本体 */
}
#sub-page.company-page .company-history .history-list {
  list-style: none;
  margin: 4rem 0;
}
#sub-page.company-page .company-history .history-list li {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 10px 0;
  position: relative;
}
#sub-page.company-page .company-history .history-list li::after {
  content: "";
  position: absolute;
  left: 10px;
  top: 20px;
  bottom: -20px;
  width: 2px;
  background-color: #dae14a;
}
#sub-page.company-page .company-history .history-list li:last-child::after {
  display: none;
}
#sub-page.company-page .company-history .history-list li .history-year {
  color: #00513a;
  letter-spacing: 0.05em;
  font-weight: 500;
  width: 7em;
  padding-left: 2em;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-history .history-list li .history-year {
    width: 10em;
  }
}
#sub-page.company-page .company-history .history-list li .history-text {
  width: 100%;
}
#sub-page.company-page .company-history .history-list li .circle {
  position: absolute;
  left: 0;
}
#sub-page.company-page .company-history .history-list li .circle::before {
  content: "●";
  color: #dae14a;
  display: inline-block;
  margin-right: 1rem;
  font-size: 20px;
}
#sub-page.company-page .company-dx {
  padding: 5% 0;
  scroll-margin-top: 120px;
  position: relative;
}
#sub-page.company-page .company-dx .bg-item01 {
  position: absolute;
  left: 5%;
  width: 10%;
  top: 33%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-dx .bg-item01 {
    left: auto;
    right: 5%;
    width: 10%;
    top: 0;
  }
}
#sub-page.company-page .company-dx .bg-item02 {
  position: absolute;
  left: 20%;
  width: 8%;
  top: 35%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-dx .bg-item02 {
    left: auto;
    width: 8%;
    top: 0;
    right: 20%;
  }
}
#sub-page.company-page .company-dx__intro {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 4rem auto;
}
#sub-page.company-page .company-dx__intro .lt {
  width: 40%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-dx__intro .lt {
    width: 100%;
    padding-bottom: 2rem;
  }
}
#sub-page.company-page .company-dx__intro .rt {
  width: 55%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-dx__intro .rt {
    width: 100%;
  }
}
#sub-page.company-page .company-dx__intro--read {
  line-height: 2;
  color: #ffffff;
}
#sub-page.company-page .company-dx__intro--read ul {
  margin: 1em 0 1em 1em;
}
#sub-page.company-page .company-dx__intro--read ul li {
  color: #ffffff;
}
#sub-page.company-page .company-dx__desc {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
#sub-page.company-page .company-dx__desc .lt {
  width: 45%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-dx__desc .lt {
    width: 100%;
  }
}
#sub-page.company-page .company-dx__desc .rt {
  width: 45%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-dx__desc .rt {
    width: 100%;
  }
}
#sub-page.company-page .health-management {
  padding: 5% 0;
  scroll-margin-top: 120px;
  position: relative;
}
#sub-page.company-page .health-management .bg-item01 {
  position: absolute;
  right: 5%;
  width: 12%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .health-management .bg-item01 {
    right: 0;
    width: 15%;
    top: 0;
    top: 0;
  }
}
#sub-page.company-page .health-management__intro {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 4rem auto;
}
#sub-page.company-page .health-management__intro .lt {
  width: 40%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .health-management__intro .lt {
    width: 100%;
    padding-bottom: 2rem;
  }
}
#sub-page.company-page .health-management__intro .rt {
  width: 55%;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .health-management__intro .rt {
    width: 100%;
  }
}
#sub-page.company-page .health-management__intro--read {
  line-height: 2;
  color: #ffffff;
}
#sub-page.company-page .health-management__intro--read ul {
  margin: 1em 0 1em 1em;
}
#sub-page.company-page .health-management__intro--read ul li {
  color: #ffffff;
}
#sub-page.company-page .company-esg {
  padding: 5% 0;
  scroll-margin-top: 120px;
}
#sub-page.company-page .company-esg__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-esg__head {
    display: block;
  }
}
#sub-page.company-page .company-esg__head h2 {
  min-width: 10em;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-esg__head h2 {
    min-width: auto;
    width: 100%;
  }
}
#sub-page.company-page .company-esg__head h3 {
  font-weight: normal;
  padding-left: 2em;
}
@media screen and (max-width: 768px) {
  #sub-page.company-page .company-esg__head h3 {
    width: 100%;
    padding-left: 0;
    padding-top: 2rem;
  }
}
#sub-page.company-page .company-esg__list ol,
#sub-page.company-page .company-esg__list ul {
  margin-left: 1em;
}
#sub-page.company-page .company-esg__list ol li,
#sub-page.company-page .company-esg__list ul li {
  line-height: 1.75;
}
#sub-page.company-page .company-esg__list ol li strong,
#sub-page.company-page .company-esg__list ul li strong {
  display: block;
  font-weight: 500;
}
#sub-page.recruit-page {
  scroll-margin-top: 120px;
  position: relative;
}
#sub-page.recruit-page img {
  width: 100%;
  height: auto;
}
#sub-page.recruit-page img.md-img {
  border-radius: 12px;
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.2;
  -o-object-fit: cover;
     object-fit: cover;
}
#sub-page.recruit-page img.lg-img {
  border-radius: 12px;
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.4;
  -o-object-fit: cover;
     object-fit: cover;
}
#sub-page.recruit-page .contents-box {
  background: url(../img/box_bg.png) no-repeat center top rgba(255, 255, 255, 0.8);
  background-size: 100%;
  margin-bottom: 4rem;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .contents-box {
    margin-bottom: 2rem;
  }
}
#sub-page.recruit-page .contents-box:last-child {
  margin-bottom: 0;
}
#sub-page.recruit-page .contents-box.column-reverse {
  flex-direction: column-reverse;
}
#sub-page.recruit-page .recruit-number {
  scroll-margin-top: 120px;
  /* --- PCレイアウトの配置指定 --- */
  /* 1：左上の小カード */
  /* 2：1段目右側の横長（2カラム分） */
  /* 3：2段目 左 */
  /* 4：2段目 中央 */
  /* 5：2〜3段目 右の縦長 */
  /* 6：3段目 左（3と同サイズ） */
  /* 7：3段目 中央（3と同サイズ） */
  /* --- 8 & 9：全体を2分割 --- */
  /* 8+9を包む箱自体が、親グリッドの3カラム分を占有 */
}
#sub-page.recruit-page .recruit-number .cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 200px; /* 基準高さはお好みで */
  gap: 2rem;
  margin: 5% auto;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-number .cards {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }
}
#sub-page.recruit-page .recruit-number .cards .count-num {
  text-align: center;
}
#sub-page.recruit-page .recruit-number .cards .count-num strong {
  line-height: 1.3;
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  color: #00513a;
  letter-spacing: 0.08em;
  position: relative;
  background: #ffffff;
  display: inline-block;
  border-radius: 20px;
  padding: 0 20px;
  font-size: 1.6rem;
}
@media screen and (max-width: 1366px) {
  #sub-page.recruit-page .recruit-number .cards .count-num strong {
    padding: 0 10px;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-number .cards .count-num strong {
    width: 50%;
    padding: 2rem 0;
  }
}
#sub-page.recruit-page .recruit-number .cards .count-num strong span {
  font-size: 8rem;
}
@media screen and (max-width: 1366px) {
  #sub-page.recruit-page .recruit-number .cards .count-num strong span {
    font-size: 6vw;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-number .cards .count-num strong span {
    font-size: 4.6rem;
  }
}
#sub-page.recruit-page .recruit-number .cards .count-num strong.fukidashi-1::after {
  content: "";
  position: absolute;
  top: 25%;
  left: 0;
  border-style: solid;
  border-width: 10px 20px 10px 0;
  border-color: transparent #ffffff transparent transparent;
  translate: -100% -50%;
  transform: skew(0, -40deg);
  transform-origin: right;
}
#sub-page.recruit-page .recruit-number .cards .count-num strong.fukidashi-2::after {
  content: "";
  position: absolute;
  top: 66%;
  left: 0;
  border-style: solid;
  border-width: 10px 20px 10px 0;
  border-color: transparent #ffffff transparent transparent;
  translate: -100% -50%;
  transform: skew(0, 48deg);
  transform-origin: right;
}
#sub-page.recruit-page .recruit-number .cards .count-num strong.fukidashi-3::after {
  content: "";
  position: absolute;
  top: 70%;
  right: 0;
  border-style: solid;
  border-width: 10px 0 10px 20px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
  transform: skew(0, -40deg);
  transform-origin: left;
}
#sub-page.recruit-page .recruit-number .cards .count-num strong.fukidashi-4 {
  width: 100%;
  margin-bottom: 30px;
}
#sub-page.recruit-page .recruit-number .cards .count-num strong.fukidashi-4::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 80%;
  border-style: solid;
  border-width: 30px 10px 0 10px;
  border-color: #ffffff transparent transparent;
  translate: -50% 100%;
  transform: skew(-36deg);
  transform-origin: top;
}
#sub-page.recruit-page .recruit-number .cards .count-num strong.fukidashi-5 {
  margin-left: 30px;
  margin-right: 30px;
}
#sub-page.recruit-page .recruit-number .cards .count-num strong.fukidashi-5::before {
  content: "";
  position: absolute;
  top: 35%;
  left: 0;
  border-style: solid;
  border-width: 0 30px 20px 0;
  border-color: transparent #ffffff transparent transparent;
  translate: -100% calc(-50% - 0.2px);
  transform: skew(0, 35deg);
  transform-origin: right;
}
#sub-page.recruit-page .recruit-number .cards .count-num strong.fukidashi-5::after {
  content: "";
  position: absolute;
  top: 35%;
  right: 0;
  border-style: solid;
  border-width: 0 0 20px 30px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% calc(-50% - 0.2px);
  transform: skew(0, -35deg);
  transform-origin: left;
}
#sub-page.recruit-page .recruit-number .cards .item-01 .count-num::before {
  content: "";
  display: inline-block;
  width: 100px;
  height: 70px;
  background-image: url(../img/recruit/num-item01.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-02 .count-num::before {
  content: "";
  display: inline-block;
  width: 40px;
  height: 100px;
  background-image: url(../img/recruit/num-item02-1.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-02 .count-num::after {
  content: "";
  display: inline-block;
  width: 40px;
  height: 100px;
  background-image: url(../img/recruit/num-item02-2.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-03 .count-num::after {
  content: "";
  display: inline-block;
  width: 90px;
  height: 100px;
  background-image: url(../img/recruit/num-item03.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-04 .count-num::before {
  content: "";
  display: inline-block;
  width: 100px;
  height: 90px;
  background-image: url(../img/recruit/num-item04.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-05 .count-num::after {
  content: "";
  display: inline-block;
  width: 160px;
  height: 160px;
  background-image: url(../img/recruit/num-item05.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-06 .count-num::before {
  content: "";
  display: inline-block;
  width: 70px;
  height: 100px;
  background-image: url(../img/recruit/num-item06.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-07 .count-num::after {
  content: "";
  display: inline-block;
  width: 90px;
  height: 80px;
  background-image: url(../img/recruit/num-item07.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-08 .count-num::before {
  content: "";
  display: inline-block;
  width: 80px;
  height: 100px;
  background-image: url(../img/recruit/num-item08.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards .item-09 .count-num::before {
  content: "";
  display: inline-block;
  width: 140px;
  height: 100px;
  background-image: url(../img/recruit/num-item09.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: bottom;
}
#sub-page.recruit-page .recruit-number .cards__item {
  background: rgba(255, 255, 255, 0.8);
  border-radius: 12px;
  padding: 1rem;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-number .cards__item {
    grid-column: auto !important;
    grid-row: auto !important;
  }
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-number .cards__item {
    padding: 2rem;
  }
}
#sub-page.recruit-page .recruit-number .cards__item .numbers__ttl {
  width: 100%;
  border-radius: 100vw;
  text-align: center;
  margin: 0 auto 2rem;
  letter-spacing: 0.1em;
  font-size: var(--fz-4);
  background-color: #00513a;
  display: inline-block;
  color: #ffffff;
  padding: 0.2em;
  font-weight: normal;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-number .cards__item .numbers__ttl {
    font-size: 1.6rem;
  }
}
#sub-page.recruit-page .recruit-number .cards__item--01 {
  grid-column: 1/2; /* col1 */
  grid-row: 1/2; /* row1 */
}
#sub-page.recruit-page .recruit-number .cards__item--02 {
  grid-column: 2/4; /* col2〜3 */
  grid-row: 1/2; /* row1 */
}
#sub-page.recruit-page .recruit-number .cards__item--03 {
  grid-column: 1/2;
  grid-row: 2/3;
}
#sub-page.recruit-page .recruit-number .cards__item--04 {
  grid-column: 2/3;
  grid-row: 2/3;
}
#sub-page.recruit-page .recruit-number .cards__item--05 {
  grid-column: 3/4;
  grid-row: 2/4; /* 2段目〜3段目をまたぐ */
}
#sub-page.recruit-page .recruit-number .cards__item--06 {
  grid-column: 1/2;
  grid-row: 3/4;
}
#sub-page.recruit-page .recruit-number .cards__item--07 {
  grid-column: 2/3;
  grid-row: 3/4;
}
#sub-page.recruit-page .recruit-number .cards__bottom {
  grid-column: 1/4; /* 全幅 */
  grid-row: 4/5;
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* ここで 1:1 の2分割 */
  gap: 16px;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-number .cards__bottom {
    grid-template-columns: 1fr;
    grid-column: auto;
    grid-row: auto;
  }
}
#sub-page.recruit-page .recruit-ideal {
  padding: 5% 0;
  scroll-margin-top: 120px;
  position: relative;
}
#sub-page.recruit-page .recruit-ideal .bg-item01 {
  position: absolute;
  right: 5%;
  width: 10%;
  top: 5%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-ideal .bg-item01 {
    right: 0;
    width: 15%;
    top: 2%;
  }
}
#sub-page.recruit-page .recruit-ideal .bg-item02 {
  position: absolute;
  right: 20%;
  width: 10%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-ideal .bg-item02 {
    right: 16%;
    width: 12%;
    top: 0;
  }
}
#sub-page.recruit-page .recruit-ideal__list {
  padding: 5% 0;
}
#sub-page.recruit-page .recruit-ideal__desc {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
#sub-page.recruit-page .recruit-ideal__desc .lt,
#sub-page.recruit-page .recruit-ideal__desc .rt {
  width: 47.5%;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-ideal__desc .lt,
  #sub-page.recruit-page .recruit-ideal__desc .rt {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-ideal__desc .lt {
    padding-bottom: 2rem;
  }
}
#sub-page.recruit-page .recruit-ideal__desc .heading03 .head-num {
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  color: #00513a;
  font-size: var(--heading03);
  margin-right: 0.1em;
  display: inline-block;
  line-height: 1;
  margin-left: 0.1em;
}
#sub-page.recruit-page .recruit-job {
  padding: 5% 0;
  scroll-margin-top: 120px;
  position: relative;
}
#sub-page.recruit-page .recruit-job .bg-item01 {
  position: absolute;
  right: 10%;
  width: 7%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-job .bg-item01 {
    right: 0;
    width: 8%;
    top: 0;
  }
}
#sub-page.recruit-page .recruit-job .bg-item02 {
  position: absolute;
  right: 20%;
  width: 13%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-job .bg-item02 {
    right: 15%;
    width: 15%;
  }
}
#sub-page.recruit-page .recruit-job__list {
  padding: 5% 0;
}
#sub-page.recruit-page .recruit-job__list table {
  width: 100%;
}
#sub-page.recruit-page .recruit-job__list table tr {
  border-bottom: 1px solid #ffffff;
}
#sub-page.recruit-page .recruit-job__list table tr:last-child {
  border-bottom: none;
}
#sub-page.recruit-page .recruit-job__list table tr th,
#sub-page.recruit-page .recruit-job__list table tr td {
  padding: 1rem 0;
  color: #ffffff;
  font-weight: normal;
}
#sub-page.recruit-page .recruit-job__list table tr th {
  width: 200px;
  text-align: left;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-job__list table tr th {
    width: 100px;
  }
}
#sub-page.recruit-page .employee-benefits {
  padding: 5% 0;
  scroll-margin-top: 120px;
  position: relative;
}
#sub-page.recruit-page .employee-benefits .bg-item01 {
  position: absolute;
  right: 10%;
  width: 15%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .employee-benefits .bg-item01 {
    right: 0;
    width: 20%;
    top: 0;
  }
}
#sub-page.recruit-page .employee-benefits__list {
  padding: 5% 0;
}
#sub-page.recruit-page .employee-benefits__desc {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
#sub-page.recruit-page .employee-benefits__desc .lt,
#sub-page.recruit-page .employee-benefits__desc .rt {
  width: 47.5%;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .employee-benefits__desc .lt,
  #sub-page.recruit-page .employee-benefits__desc .rt {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .employee-benefits__desc .lt {
    padding-bottom: 2rem;
  }
}
#sub-page.recruit-page .employee-benefits__desc ul {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-left: 1em;
}
#sub-page.recruit-page .employee-benefits__desc ul li {
  width: 50%;
}
#sub-page.recruit-page .recruit-process {
  padding: 5% 0;
  scroll-margin-top: 120px;
}
#sub-page.recruit-page .recruit-process .process-box {
  margin: 5% auto;
}
#sub-page.recruit-page .recruit-process__list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  padding: 10px 0;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-process__list {
    align-items: flex-start;
  }
}
#sub-page.recruit-page .recruit-process__list .lt {
  width: 200px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-process__list .lt {
    width: 100%;
    justify-content: flex-start;
    align-items: center;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-process__list .lt {
    width: 100px;
  }
}
#sub-page.recruit-page .recruit-process__list .rt {
  width: calc(100% - 200px);
  border-bottom: 1px solid #00513a;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 2rem 0;
}
#sub-page.recruit-page .recruit-process__list .rt.last {
  border-bottom: none;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-process__list .rt {
    width: 100%;
    padding: 1rem 0;
  }
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-process__list .rt {
    width: calc(100% - 100px);
    flex-wrap: wrap;
  }
}
#sub-page.recruit-page .recruit-process__list .step {
  color: #00513a;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  flex-direction: column;
  width: 80px;
  font-weight: 500;
  flex-shrink: 0;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-process__list .step {
    width: auto;
  }
}
#sub-page.recruit-page .recruit-process__list .step .num {
  font-size: var(--heading03);
  display: block;
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  line-height: 1;
}
#sub-page.recruit-page .recruit-process__list .icon {
  width: 60px;
  position: relative;
  margin-left: 1rem;
  flex-shrink: 0;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-process__list .icon {
    width: 40px;
    margin: 0.5em;
  }
}
#sub-page.recruit-page .recruit-process__list .icon::after {
  position: absolute;
  left: 20px;
  top: 60px;
  display: inline-block;
  font-family: "Font Awesome 5 Free";
  content: "\f078";
  font-weight: 900; /*必須*/
  color: #dae14a;
  font-size: 20px;
}
@media screen and (max-width: 1100px) {
  #sub-page.recruit-page .recruit-process__list .icon::after {
    display: none;
  }
}
#sub-page.recruit-page .recruit-process__list .icon.last::after {
  display: none;
}
#sub-page.recruit-page .recruit-process__list .ttl {
  letter-spacing: 0.05em;
  font-size: var(--fz-3);
  width: 200px;
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-process__list .ttl {
    padding-left: 0;
    width: 100%;
  }
}
#sub-page.recruit-page .recruit-process__list .ttl .en {
  display: block;
  color: #777715;
  font-size: 13px;
}
#sub-page.recruit-page .recruit-process__list .read {
  width: calc(100% - 200px);
}
@media screen and (max-width: 768px) {
  #sub-page.recruit-page .recruit-process__list .read {
    width: 100%;
  }
}
#sub-page.news-page .archive-list ul {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 5%;
}
#sub-page.news-page .archive-list ul li {
  list-style-type: none;
  width: 100%;
  margin-bottom: 4rem;
}
#sub-page.news-page .archive-list ul li:last-child {
  margin-bottom: 0;
}
#sub-page.news-page .archive-list ul li a {
  display: grid;
  gap: 5%;
  grid-template-columns: 300px 1fr;
  text-decoration: none;
  color: #000;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 12px;
  padding: 2.5%;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.4s ease;
}
@media screen and (max-width: 768px) {
  #sub-page.news-page .archive-list ul li a {
    grid-template-columns: 1fr;
    padding: 5%;
  }
}
#sub-page.news-page .archive-list ul li a:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.9);
  transform: translateY(-8px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
}
#sub-page.news-page .archive-list ul li .news-thumb img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/2.2;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 12px;
}
#sub-page.news-page .archive-list ul li .news-read__ttl {
  font-size: var(--fz-3);
  margin-bottom: 0.5em;
}
#sub-page.news-page .archive-list ul li .news-read__date {
  display: inline;
  float: left;
}
#sub-page.news-page .archive-list ul li .news-read__category {
  display: inline-block;
  margin-left: 1em;
  color: #ffffff;
  font-size: 0.9em;
  padding: 0.2em 1.5em;
  border-radius: 6px;
  background: linear-gradient(135deg, rgb(4, 160, 122) 0%, rgb(0, 124, 102) 50%, rgb(4, 160, 122) 99%);
}
#sub-page.news-page .archive-list ul li .news-read__txt {
  padding-top: 1em;
  font-size: var(--fz-4);
}

/*********************************

Contact / Contact Form 7

*********************************/
/* reCAPTCHA v3　表示位置 */
.grecaptcha-badge {
  margin-bottom: 60px;
}

/* スピナーを非表示 */
div.wpcf7 .wpcf7-spinner {
  display: none !important;
}

/*エラー*/
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #00705f;
  background: #dae14a;
  text-align: center;
  color: #00513a;
  font-weight: bold;
}

/*送信されました*/
.wpcf7 form.sent .wpcf7-response-output {
  border-color: #dae14a;
  text-align: center;
  padding: 1em;
  background: #00705f;
  color: #fff;
  font-weight: bold;
}

/*フォーム*/
.contact_form {
  margin: 0 auto;
  background: url(../img/box_bg.png) no-repeat center top rgba(255, 255, 255, 0.8);
  background-size: 100%;
  padding: 5%;
  border-radius: 12px;
  max-width: 900px;
  margin: 5% auto;
  color: #000;
}
@media screen and (max-width: 768px) {
  .contact_form {
    max-width: 100%;
  }
}
.contact_form table {
  width: 100%;
  margin-bottom: 100px;
  /*郵便番号*/
}
@media screen and (max-width: 768px) {
  .contact_form table {
    font-size: 1.3rem;
  }
}
@media screen and (max-width: 768px) {
  .contact_form table {
    margin-bottom: 50px;
  }
}
.contact_form table input,
.contact_form table textarea {
  padding: 0.5em;
  width: 100%;
  background: #eee;
  border: 1px solid #eee;
  color: #000;
}
@media screen and (max-width: 768px) {
  .contact_form table input,
  .contact_form table textarea {
    padding: 10px 0.5em;
  }
}
.contact_form table input[type=checkbox],
.contact_form table input[type=radio],
.contact_form table input[type=text].input_tel {
  width: auto;
}
.contact_form table input[type=tel].input_zip {
  width: 12em;
}
.contact_form table input[type=checkbox] {
  width: 1em;
  height: 1em;
  vertical-align: middle;
  transform: scale(1.4);
  margin-left: 1em;
}
.contact_form table th,
.contact_form table td {
  padding: 15px;
}
@media screen and (max-width: 640px) {
  .contact_form table th,
  .contact_form table td {
    display: block;
    width: 100%;
    padding: 10px 0;
  }
}
.contact_form table th {
  text-align: left;
  vertical-align: top;
  width: 30%;
  color: #00513a;
  font-size: 1.6rem;
}
@media screen and (max-width: 640px) {
  .contact_form table th {
    width: 100%;
    padding-bottom: 0;
    vertical-align: middle;
    font-size: 1.4rem;
  }
}
.contact_form table .wpcf7-list-item {
  display: block;
  margin-left: 0;
}
.contact_form table span.haveto {
  display: inline-block;
  font-weight: normal;
  font-size: 0.8em;
  margin-left: 1em;
  border-radius: 6px;
  background-color: #00513a;
  color: #ffffff;
  padding: 0.2em 0.8em;
}
@media screen and (max-width: 768px) {
  .contact_form table span.haveto {
    margin-top: 1em;
  }
}
.contact_form .p_link {
  text-align: center;
  padding: 30px;
}
.contact_form .p_link a {
  color: #00513a;
}

.btn_submit_wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.btn_submit {
  cursor: pointer;
  color: #ffffff;
  margin: 0 auto;
  background: #00513a;
  display: block;
  padding: 1em 4em;
  border-radius: 100vw;
  border: 1px solid #00513a;
  transition: all 0.5s;
  letter-spacing: 0.18em;
}

.btn_submit:hover {
  background: #777715;
  border: 1px solid #777715;
  color: #fff;
}

/*戻る*/
.btn_submit_back {
  cursor: pointer;
  color: #00513a;
  background: #f9f9f9;
  display: block;
  padding: 1.5em 4em;
  border: 1px solid #00513a;
  transition: all 0.5s;
  letter-spacing: 0.18em;
  margin-right: 1em;
}

/*********************************

footer

*********************************/
.footer {
  color: #ffffff;
  overflow: hidden;
}
.footer img {
  width: 100%;
  height: auto;
}
.footer .footer-contact {
  padding: 10vw 0;
  text-align: center;
  position: relative;
  /*ミニサイズ*/
}
.footer .footer-contact .s-deco01_1,
.footer .footer-contact .s-deco02_1 {
  position: absolute;
  width: 20%;
  z-index: -1;
}
.footer .footer-contact .s-deco01_2,
.footer .footer-contact .s-deco03_1 {
  position: absolute;
  width: 7%;
  z-index: -1;
}
.footer .footer-contact .s-deco01_1 {
  left: -20%;
  bottom: 5%;
}
.footer .footer-contact .s-deco01_2 {
  left: 30%;
  top: 15%;
}
.footer .footer-contact .s-deco02_1 {
  bottom: 0;
  right: -12%;
}
.footer .footer-contact .s-deco02_1 {
  top: 0;
  right: -12%;
}
.footer .footer-contact .s-deco03_1 {
  right: -7%;
  bottom: 10%;
}
.footer .footer-contact .contact-outline {
  color: #00513a;
  border-radius: 20px;
  padding: 10% 0;
  background: url(../img/contact_bg.png) no-repeat center;
  background-size: cover;
}
.footer .footer-contact__ttl {
  font-size: var(--heading02);
  font-family: "din-condensed", "Bebas Neue", sans-serif;
  font-weight: normal;
  letter-spacing: 0.03em;
}
.footer .footer-contact__read {
  font-size: var(--fz-3);
  margin-bottom: 4rem;
}
.footer .footer-contents {
  background: url(../img/footer_btm_bg.jpg) no-repeat center/cover;
  padding: 10% 0;
}
.footer .footer-contents img {
  width: 100%;
  height: auto;
}
.footer .footer-contents .footer__inner {
  max-width: 1340px;
  padding: 0 2rem;
  margin: auto;
}
.footer .footer-contents .footer-info {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info {
    flex-direction: column-reverse;
  }
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-access {
    padding: 4rem 0;
  }
}
.footer .footer-contents .footer-info .footer-access__logo {
  width: 400px;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-access__logo {
    width: 220px;
  }
}
.footer .footer-contents .footer-info .footer-access__list {
  margin: 2rem 0;
  width: 100%;
}
.footer .footer-contents .footer-info .footer-access__list th {
  text-align: left;
  padding: 0 4rem 6rem 0;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-access__list th {
    display: block;
    width: 100%;
    padding: 1rem 0;
  }
}
.footer .footer-contents .footer-info .footer-access__list td {
  line-height: 2;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-access__list td {
    display: block;
    width: 100%;
    padding-bottom: 2rem;
  }
}
.footer .footer-contents .footer-info .footer-menu {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 8rem;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-menu {
    gap: 0;
  }
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-menu .footer-menu__lt {
    width: 100%;
  }
}
.footer .footer-contents .footer-info .footer-menu ul li a {
  text-decoration: none;
  color: #ffffff;
}
.footer .footer-contents .footer-info .footer-menu ul li a strong {
  font-weight: 500;
  font-size: 1.2em;
  margin-bottom: 0.5em;
  display: block;
}
.footer .footer-contents .footer-info .footer-menu ul li a strong::before {
  display: inline-block;
  content: "・";
  color: #dae14a;
}
.footer .footer-contents .footer-info .footer-menu ul li ul {
  margin-bottom: 2em;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-menu ul li ul {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 2em;
  }
}
.footer .footer-contents .footer-info .footer-menu ul li ul li {
  line-height: 2.5;
}
.footer .footer-contents .footer-info .footer-menu ul li ul li::before {
  display: inline-block;
  content: "-";
  color: #ffffff;
  padding-right: 0.5em;
  margin-left: 0.5em;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-menu ul li ul li {
    width: 50%;
  }
}
.footer .footer-contents .footer-info .footer-menu ul li ul li a {
  color: #ffffff;
}
.footer .footer-contents .footer-info .footer-menu ul li .btn-contact {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.5em 1em;
  text-align: center;
  background-color: #ffffff;
  display: inline-block;
  border-radius: 100vw;
  color: #00705f;
  position: relative;
  font-weight: bold;
  margin-top: 4rem;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-info .footer-menu ul li .btn-contact {
    margin: 2rem 0;
  }
}
.footer .footer-contents .footer-info .footer-menu ul li .btn-contact::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: 1.5em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.3s ease;
  background-image: url(../img/triangle.svg);
}
.footer .footer-contents .footer-cp {
  width: 40%;
}
@media screen and (max-width: 768px) {
  .footer .footer-contents .footer-cp {
    width: 100%;
  }
}
.footer .footer-contents .footer-cp span {
  font-size: var(--fz-3);
  font-weight: bold;
  display: inline-block;
  margin-top: 1em;
}
.footer .footer-contents .copy {
  text-align: center;
  font-size: 0.9em;
  margin-top: 4rem;
}

#page_top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 100;
}
#page_top a {
  display: block;
  width: 40px;
  height: 40px;
  line-height: 40px;
  overflow: hidden;
  background: #000;
  border-radius: 100%;
  text-align: center;
}
#page_top a i {
  color: #fff;
}/*# sourceMappingURL=style.css.map */