@charset "UTF-8";
/* common
----------------------------------------------------------- */
html { scroll-behavior: smooth; scroll-padding-top: 100px; }

body { background: #ebf6f0; font-family: "Noto Sans JP", sans-serif; font-optical-sizing: auto; font-weight: 500; font-style: normal; font-size: 1.7rem; color: #193427; overflow: hidden; }

.loading-screen { position: fixed; z-index: 9999; inset: 0; width: 100vw; height: 100vh; background: #ebf6f0; display: flex; align-items: center; justify-content: center; transition: opacity 0.8s cubic-bezier(0.7, 0, 0.2, 1); }

.loading-screen.hide { opacity: 0; pointer-events: none; }

.ripple { position: absolute; left: 50%; top: 50%; width: 120px; height: 120px; border-radius: 50%; border: none; transform: translate(-50%, -50%) scale(0.2); background: radial-gradient(circle, #fff 0%, #b8e1db 10%, rgba(184, 225, 219, 0.45) 50%, rgba(184, 225, 219, 0) 100%); /* 白光彩2本に＆抑えめ */ box-shadow: 0 0 0 7px #fff6, 0 0 38px 18px #b8e1db66; opacity: 0.75; animation: ripple-soft 1.3s cubic-bezier(0.7, 0, 0.2, 1) forwards; }

.ripple2 { animation-delay: 0.23s; }

@keyframes ripple-soft { 0% { opacity: 0.82; filter: blur(0); transform: translate(-50%, -50%) scale(0.2); }
  60% { opacity: 0.62; filter: blur(1.2px); }
  100% { opacity: 0; filter: blur(8px); transform: translate(-50%, -50%) scale(5); } }
#wrapper { width: auto; margin: 0 auto; }

@media screen and (min-width: 769px) { .sp { display: none; } }

p { line-height: 2.2; }

a { color: #193427; text-decoration: none; transition: all .3s; }

a.opa:hover { opacity: 0.5; filter: alpha(opacity=50); }

a.tdu:hover { text-decoration: underline; }

.en, .num { font-family: 'Jost', sans-serif; font-weight: 600; font-optical-sizing: auto; font-style: normal; line-height: 1.0; }

::-moz-selection { background: #29a86e; color: #fff; }

::selection { background: #29a86e; color: #fff; }

@media screen and (min-width: 769px) { a[href^="tel:"] { pointer-events: none; } }
/* header
----------------------------------------------------------- */
.head__wrap { width: 100%; position: relative; height: auto; position: fixed; top: 0; left: 0; padding: 30px 3.125vw 0; display: flex; transition: all .3s; z-index: 999; }

.head__inner { width: auto; height: 90px; display: flex; justify-content: space-between; align-items: center; flex: 1; padding: 0 1.5625vw; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 15px; }

.head__logo { padding-right: 30px; flex-shrink: 0; }
.head__logo .logo { width: 268px; line-height: 1.0; }

.logo { display: block; margin: 0; padding: 0; font-size: 0; /* 画像の下に余白できる場合はこれ */ line-height: 0; /* 画像の下にスキマ出るのも防げる */ }

#global-nav .menu { height: 100%; display: flex; justify-content: flex-end; align-items: center; }
#global-nav .menu > li { position: relative; }
#global-nav .menu > li a { font-size: 1.7rem; font-weight: 600; letter-spacing: .05em; padding: .8em 2.4em; display: block; white-space: nowrap; }
#global-nav .menu > li a:hover { color: #29a86e; }

.fat-nav__wrapper { display: flex; align-items: center; }

.head__cta { height: 90px; display: flex; justify-content: space-between; align-items: center; background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 15px; position: relative; margin-left: 1.5625vw; padding-right: 10px; white-space: nowrap; }

.head__cta__tel { padding: 8px 30px 0 36px; }
.head__cta__tel a { color: #29a86e; font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; font-size: 2.4rem; font-weight: 600; letter-spacing: .02em; background: url("../images/common/icon_tel.svg") no-repeat 0 55%; padding-left: 20px; }
.head__cta__tel .time { font-size: 1.2rem; font-weight: 600; }

.btn--contact { border-radius: 15px; border: solid 1px #9ae1c1; background: linear-gradient(to right, #29a86e 40%, #1094a8 100%); color: #fff; font-size: 1.7rem; font-weight: 600; line-height: 1.0; letter-spacing: .05em; padding: 1em 3.6em .8em 3.6em; text-align: center; display: block; transition: all .3s; }
.btn--contact span { font-size: 1.1rem; font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; letter-spacing: .2em; color: #d8e49c; margin-top: .6em; display: block; }
.btn--contact:hover { filter: brightness(110%) saturate(110%); }

@media screen and (min-width: 769px) and (max-width: 1600px) { .head__logo .logo { width: clamp(220px, 13.9583vw, 268px); }
  #global-nav .menu > li a { font-size: 1.6rem; padding: .8em 1.8vw; } }
/* visual
----------------------------------------------------------- */
.tp__visual { width: 100%; position: relative; z-index: 1; }

.tp__visual__inner { height: 100%; position: relative; }

.tp__visual__img { height: calc((980 / 1920) * 100vw); }
.tp__visual__img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }

.tp__visual__copy { position: absolute; top: calc((370 / 1920) * 100vw); left: calc((220 / 1920) * 100vw); }
.tp__visual__copy img { width: 602px; transition: all .3s; }

@media screen and (min-width: 769px) and (max-width: 1600px) { .tp__visual__copy img { width: calc((602 / 1920) * 100vw); } }
.tp__visual__copy p img { opacity: 0; transform: translateX(-80px); transition: opacity 0.7s cubic-bezier(0.7, 0, 0.2, 1), transform 0.7s cubic-bezier(0.7, 0, 0.2, 1); }

.tp__visual__copy p img.is-show { opacity: 1; transform: translateX(0); }

/* #tp__intro
----------------------------------------------------------- */
#tp__intro { width: 100%; position: relative; background: linear-gradient(to top, #ffffff 0%, #f8faf7 100%); }

.tp__intro__logo { inline-size: fit-content; margin-inline: auto; margin-top: calc(((100 / 1920) * 100vw) * -1); position: relative; z-index: 4; }
.tp__intro__logo img { width: calc((469 / 1920) * 100vw); }

.tp__intro__shizuku { inline-size: fit-content; margin-inline: auto; margin-top: .6vw; position: relative; z-index: 4; }
.tp__intro__shizuku img { width: calc((27 / 1920) * 100vw); }

.tp__intro__logo, .tp__intro__shizuku { opacity: 0; transition: opacity 0.7s cubic-bezier(0.77, 0, 0.175, 1), transform 0.7s cubic-bezier(0.77, 0, 0.175, 1); }

.tp__intro__logo.is-show, .tp__intro__shizuku.is-show { opacity: 1; }

.tp__intro__type { inline-size: fit-content; margin-inline: auto; position: relative; margin-top: calc(((260 / 1920) * 100vw) * -1); z-index: 3; }
.tp__intro__type img { width: calc((1578 / 1920) * 100vw); }

.tp__intro__hamon { inline-size: fit-content; margin-inline: auto; position: relative; margin-top: calc(((275 / 1920) * 100vw) * -1); z-index: 2; }

.tp__intro__hamon { opacity: 0; transform: scale(0.85); filter: blur(8px); transition: opacity 0.8s cubic-bezier(0.7, 0, 0.3, 1), transform 1.2s cubic-bezier(0.7, 0, 0.2, 1), filter 1.1s cubic-bezier(0.7, 0, 0.2, 1); will-change: opacity, transform, filter; }

.tp__intro__hamon.is-show { opacity: 1; transform: scale(1); filter: blur(0); }

.tp__intro__inner { width: 100%; position: relative; margin-top: calc(((160 / 1920) * 100vw) * -1); padding: 0 0 calc((220 / 1920) * 100vw); background: url("../images/tp_intro_bg.webp") no-repeat bottom center #f8faf7; background-size: cover; position: relative; }

.tp__intro__wrap { width: 100%; position: relative; display: flex; justify-content: space-between; flex-direction: row-reverse; }

.tp__intro__detail { width: 45%; position: relative; z-index: 99; transition: all .3s; }

@media screen and (min-width: 769px) and (max-width: 1600px) { .tp__intro__detail { width: 50%; padding-right: 5%; } }
.tp__intro__txt { width: min(100%, 570px); position: relative; }
.tp__intro__txt p { font-size: 1.7rem; }
.tp__intro__txt p:not(:last-child) { margin-bottom: 2em; }

@media screen and (min-width: 769px) and (max-width: 1600px) { .tp__intro__txt p { font-size: 1.6rem; } }
.tp__intro__copy { display: flex; justify-content: space-between; margin-bottom: 4.5em; }

.tp__intro__copy--ja { font-size: 70px; font-weight: 700; background: linear-gradient(to right, #28a86e, #3ec0d7); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; line-height: 1.5; letter-spacing: .05em; }

.tp__intro__copy--tate { font-size: 2rem; letter-spacing: .1em; writing-mode: vertical-rl; padding-left: 1em; display: inline-block; position: relative; padding-right: 1em; }
.tp__intro__copy--tate span { font-weight: 700; position: relative; display: inline-block; padding-top: 24px; }
.tp__intro__copy--tate span::before { content: ''; position: absolute; background: url("../images/common/shape_circle.svg") no-repeat top center; background-size: contain; width: 16px; height: 16px; top: 0; left: 0.5em; transform: translateX(-50%); }
.tp__intro__copy--tate::after { content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 100%; background-color: #244435; }

.tp__intro__btn { margin-top: calc((140 / 1920) * 100vw); text-align: left; }

.btn--glow { color: #29a86e; font-size: 2rem; font-weight: 600; line-height: 1.0; text-align: left; display: inline-block; transition: all .3s; position: relative; }
.btn--glow span { font-weight: 600; position: relative; }
.btn--glow span::after { content: ''; position: absolute; background: url("../images/common/btn_circle.png") no-repeat right center; background-size: 100% auto; width: 151px; height: 151px; right: -160px; top: -60px; transition: all .3s; }
.btn--glow:hover span::after { opacity: 0.5; filter: alpha(opacity=50); }

.tp__intro__img { width: 43%; position: relative; padding-left: 5%; }

.tp__intro--img01 { width: calc((400 / 1920) * 100vw); position: relative; z-index: 2; }

.tp__intro--img02 { width: calc((560 / 1920) * 100vw); position: absolute; top: calc((200 / 1920) * 100vw); right: 0; z-index: 1; }

.tp__intro--shape_glow01 { width: calc((507 / 1920) * 100vw); position: absolute; bottom: calc(((190 / 1920) * 100vw) * -1); left: 0; z-index: 2; }

.tp__intro--img03 { width: calc((300 / 1920) * 100vw); position: absolute; bottom: calc(((100 / 1920) * 100vw) * -1); right: 5%; z-index: 10; }

@media screen and (min-width: 769px) and (max-width: 1600px) { .tp__intro--img03 { right: 2%; } }
.tp__intro--img01, .tp__intro--img02, .tp__intro--img03 { border-radius: 20px; box-shadow: 10px 17.32px 30px rgba(0, 0, 0, 0.3); }

.tp__intro__img img, .tp__intro--img03 { opacity: 0; transition: opacity 1s cubic-bezier(0.7, 0, 0.2, 1); }

.tp__intro__img img.is-show, .tp__intro--img03.is-show { opacity: 1; }

/* #tp__service
----------------------------------------------------------- */
#tp__service { width: 100%; position: relative; background: url("../images/common/shape_glow02.png") #ebf6f0 no-repeat top center; padding-top: calc((60 / 1920) * 100vw); }

.tp__service__inner { width: 96%; margin: 0 auto; padding-top: calc((80 / 1920) * 100vw); }

.ttl--center { inline-size: fit-content; margin-inline: auto; opacity: 0; transition: opacity 1s cubic-bezier(0.7, 0, 0.2, 1); }

.ttl--center.is-show { opacity: 1; }

.ttl--ja { font-size: 2.4rem; font-weight: 700; letter-spacing: .05em; text-align: center; padding-top: 50px; margin-bottom: 1.2em; position: relative; }
.ttl--ja::before { content: ''; position: absolute; background: url("../images/common/parts_shizuku_ttl.png") no-repeat top center/contain; width: 12px; height: 22px; top: 0; left: 50%; transform: translateX(-50%); }

.ttl--en { font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; font-size: 12rem; font-weight: 600; background: linear-gradient(to right, #28a86e, #3ec0d7); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; }

.tp__service__desc { margin-top: 2.4em; text-align: center; }

.tp__service__list { width: 100%; display: flex; justify-content: space-between; margin-top: calc((90 / 1920) * 100vw); }

.tp__service__l, .tp__service__r { width: 49.9%; height: calc((700 / 1920) * 100vw); }

.tp__service__l { background: #29a86e; border-radius: 20px; padding-top: calc((330 / 1920) * 100vw); position: relative; overflow: hidden; }
.tp__service__l::before { content: ''; position: absolute; background: rgba(255, 255, 255, 0.5); width: 1px; height: 100%; left: 32px; top: 100px; }

.tp__service__bg { position: absolute; top: 0; right: 0; width: calc((660 / 1920) * 100vw); height: calc((700 / 1920) * 100vw); overflow: hidden; }
.tp__service__bg .bgimg { width: 100%; height: 100%; object-fit: cover; display: block; }
.tp__service__bg::before { content: ""; position: absolute; top: 0; left: 0; width: calc((150 / 1920) * 100vw); height: 100%; background: linear-gradient(to right, #29a86e 0%, rgba(41, 168, 110, 0.8) 2.6042vw, rgba(41, 168, 110, 0.3) 6.25vw, rgba(41, 168, 110, 0) 7.8125vw); z-index: 2; pointer-events: none; }

.tp__service__num { position: absolute; top: 0; left: 0; transition: all .3s; }

@media screen and (min-width: 769px) and (max-width: 1500px) { .tp__service__num img { width: 6.5104vw; } }
.tp__service__item { padding-left: calc((120 / 1920) * 100vw); z-index: 3; position: relative; }
.tp__service__item .ja { font-size: 4.8rem; font-weight: 700; letter-spacing: .05em; color: #fff; transition: all .3s; }
.tp__service__item .en { font-size: 1.2rem; color: #caf580; margin-top: 1.8em; }
.tp__service__item .txt { margin-top: 3.2em; color: #fff; line-height: 2.0; transition: all .3s; }

@media screen and (min-width: 769px) and (max-width: 1600px) { .tp__service__item .ja { font-size: 3.2rem; }
  .tp__service__item .txt { font-size: 1.5rem; } }
.tp__service__more { position: absolute; right: calc((100 / 1920) * 100vw); bottom: calc((80 / 1920) * 100vw); z-index: 5; }

.btn--more { color: #fff; font-size: 1.6rem; font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; line-height: 1.0; text-align: left; display: inline-block; transition: all .3s; position: relative; z-index: 2; }
.btn--more span { position: relative; }
.btn--more span::after { content: ''; position: absolute; position: absolute; background: url("../images/common/btn_circle_s.png") no-repeat right center; background-size: 100% auto; width: 151px; height: 151px; right: -100px; top: -64px; z-index: -1; content: ""; }
.btn--more:hover { opacity: 0.5; filter: alpha(opacity=50); }

.tp__service__box { height: calc((349 / 1920) * 100vw); background: #29a86e; border-radius: 20px; padding-top: calc((120 / 1920) * 100vw); position: relative; overflow: hidden; }
.tp__service__box.service02 { margin-bottom: 1px; }
.tp__service__box::before { content: ''; position: absolute; background: rgba(255, 255, 255, 0.5); width: 1px; height: 100%; left: calc((32 / 1920) * 100vw); top: calc((100 / 1920) * 100vw); }
.tp__service__box .tp__service__bg { width: calc((680 / 1920) * 100vw); height: calc((349 / 1920) * 100vw); }
.tp__service__box .tp__service__item { padding-left: calc((90 / 1920) * 100vw); }
.tp__service__box .tp__service__item .ja { font-size: 4rem; }
.tp__service__box .tp__service__item .txt { margin-top: 2.4em; }

@media screen and (min-width: 769px) and (max-width: 1600px) { .tp__service__box { padding-top: calc((100 / 1920) * 100vw); }
  .tp__service__box .tp__service__item .ja { font-size: 2.6rem; }
  .tp__service__box .tp__service__item .txt { font-size: 1.5rem; margin-top: 1.5em; } }
.tp__service__btn { margin-top: calc((90 / 1920) * 100vw); inline-size: fit-content; margin-inline: auto; }
.tp__service__btn .btn--normal { width: 480px; }

.btn--normal { width: 100%; padding: 2em; border-radius: calc(1px / 0); background: #fff; font-size: 2rem; font-weight: 700; letter-spacing: .05em; text-align: center; display: block; position: relative; }
.btn--normal::after { content: ''; position: absolute; background: url("../images/common/btn_icon.png") no-repeat; width: 57px; height: 57px; top: 50%; right: 10px; transform: translateY(-50%); }
.btn--normal:hover { background: #aad9c5; color: #fff; }

/* .tp__value
----------------------------------------------------------- */
#tp__value { width: 100%; position: relative; padding-top: calc((280 / 1920) * 100vw); }
#tp__value::before { content: ''; position: absolute; background: url("../images/shape_glow03.png") no-repeat top right/contain; width: calc((438 / 1920) * 100vw); height: calc((720 / 1920) * 100vw); right: 0; top: calc(((100 / 1920) * 100vw) * -1); z-index: 1; }
#tp__value::after { content: ''; position: absolute; background-color: #f8faf7; width: calc((1180 / 1920) * 100vw); height: calc((1180 / 1920) * 100vw); border-radius: 50%; left: calc(((200 / 1920) * 100vw) * -1); top: calc((120 / 1920) * 100vw); z-index: -1; }

#tp__value::before { opacity: 0; transition: opacity 0.8s cubic-bezier(0.7, 0, 0.2, 1); pointer-events: none; }

#tp__value.is-show::before { opacity: 1; }

.tp__value__visual { position: relative; }

.tp__value__img { text-align: right; position: relative; }
.tp__value__img .img--bg { border-radius: 300px 0 0 300px; width: calc((1460 / 1920) * 100vw); }
.tp__value__img .img--tanktruck { position: absolute; bottom: calc(((90 / 1920) * 100vw) * -1); right: calc((220 / 1920) * 100vw); }

.img--tanktruck { opacity: 0; transform: translateX(-90px); transition: opacity 0.7s cubic-bezier(0.7, 0, 0.2, 1), transform 0.7s cubic-bezier(0.7, 0, 0.2, 1); }

.img--tanktruck.is-show { opacity: 1; transform: translateX(0); }

.ttl--value { position: absolute; top: calc((110 / 1920) * 100vw); left: calc((250 / 1920) * 100vw); }
.ttl--value .ttl--value--tate { font-size: 2rem; letter-spacing: .15em; writing-mode: vertical-rl; padding-left: 1.2em; margin-top: 32px; margin-left: 42px; display: block; position: relative; }
.ttl--value .ttl--value--tate span { font-size: 2rem; font-weight: 700; position: relative; display: inline-block; padding-top: 24px; }
.ttl--value .ttl--value--tate span::before { content: ''; position: absolute; background: url("../images/common/shape_circle.svg") no-repeat top center; background-size: contain; width: 16px; height: 16px; top: 0; left: .8em; transform: translateX(-50%); }
.ttl--value .ttl--value--tate em { font-size: 3.2rem; font-weight: 700; }
.ttl--value .ttl--value--tate::after { content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 100%; background-color: #244435; }

@media screen and (min-width: 769px) and (max-width: 1500px) { .ttl--value { left: calc((160 / 1920) * 100vw); }
  .ttl--value .ttl--value--tate { font-size: 1.6rem; }
  .ttl--value .ttl--value--tate span { font-size: 1.6rem; }
  .ttl--value .ttl--value--tate em { font-size: 2.4rem; } }
.tp__value__list { width: 100%; padding: 0 2% calc((260 / 1920) * 100vw); margin-top: 220px; background: #fff; position: relative; }
.tp__value__list ul { width: 100%; display: flex; flex-wrap: wrap; justify-content: flex-start; }
.tp__value__list li { width: 25%; padding: 60px 2% 24px; position: relative; }
.tp__value__list li:not(:nth-child(4)) { border-right: 1px solid #d2dccd; }
.tp__value__list .num { position: absolute; z-index: 2; top: -30px; left: 50%; transform: translateX(-50%); }
.tp__value__list figure { position: relative; }
.tp__value__list img { width: 100%; }
.tp__value__list .ttl { font-size: 2.4rem; font-weight: 700; line-height: 1.6; text-align: center; color: #29a86e; margin-top: 2em; }
.tp__value__list .txt { font-size: 1.6rem; margin-top: 1.8em; line-height: 2.0; }

/* #tp__recruit
----------------------------------------------------------- */
#tp__recruit { width: 100%; position: relative; background: #fff; padding-inline-end: clamp(20px, 5vw, 80px); z-index: 1; }
#tp__recruit::before { content: ''; position: absolute; background: url("../images/common/shape_glow_gr.png") no-repeat top right/contain; width: calc((450 / 1920) * 100vw); height: calc((900 / 1920) * 100vw); right: 0; top: calc(((170 / 1920) * 100vw) * -1); z-index: -1; }
#tp__recruit::after { content: ''; position: absolute; background: #ebf6f0; width: 100%; height: 30%; right: 0; bottom: 0; z-index: -1; }

.tp__recruit__inner { width: min(100%, 1740px); display: flex; flex-direction: row-reverse; flex-wrap: nowrap; margin-left: 0; margin-right: auto; position: relative; }

.tp__recruit__detail { flex: 0 0 44.6%; max-width: 44.6%; background-image: linear-gradient(to right, #29a86e, #b7dd43); border-top-right-radius: 570px; position: relative; padding-block-start: clamp(100px, 12.5vw, 220px); padding-inline-start: clamp(24px, 2.6041666667vw, 50px); padding-inline-end: clamp(60px, 13.0208333333vw, 250px); color: #fff; text-align: center; }

.ttl--recruit { text-align: center; }

.ttl--recruit--ja { font-size: 2.4rem; font-weight: 700; letter-spacing: .05em; margin-bottom: 1.2em; position: relative; }

.ttl--recruit--en { font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; font-size: 12rem; font-weight: 600; }

.tp__recruit__txt { text-align: left; margin-top: 3em; width: min(100%, 440px); padding-left: 2.4em; }

.tp__recruit__btn { margin-top: 3em; inline-size: fit-content; margin-inline: auto; }
.tp__recruit__btn .btn--normal { width: 400px; }

@media screen and (min-width: 769px) and (max-width: 1500px) { .tp__recruit__detail { padding-block-start: 150px; padding-block-end: 40px; }
  .ttl--recruit--ja { font-size: clamp(15px, 1.25vw, 24px); margin-bottom: .8em; }
  .ttl--recruit--en { font-size: clamp(70px, 6.25vw, 120px); }
  .tp__recruit__txt { font-size: 15px; }
  .tp__recruit__btn { margin-top: 2em; }
  .tp__recruit__btn .btn--normal { font-size: 18px; padding: 1.5em; width: 320px; } }
.tp__recruit__img { flex: 0 0 55.4%; max-width: 55.4%; background: #29a86e; position: relative; overflow: hidden; padding-bottom: 2px; }
.tp__recruit__img img { display: block; width: 100%; height: auto; }

.tp__recruit__copy { position: absolute; top: calc((290 / 1920) * 100vw); left: calc((220 / 1920) * 100vw); }
.tp__recruit__copy p { line-height: 1.6; letter-spacing: .2em; writing-mode: vertical-rl; }
.tp__recruit__copy span { color: #29a86e; background: #fff; font-size: 4rem; font-weight: 700; border: 1px solid #29a86e; padding: .3em .1em; display: inline-block; }

.tp__recruit__copy span.second { padding-bottom: 0; }

@media screen and (min-width: 769px) and (max-width: 1500px) { .tp__recruit__copy span { font-size: 3rem; } }
.anime__load { background: url("../images/tp_recruit_load.jpg") repeat-x; width: 100%; height: 120px; overflow: hidden; display: flex; align-items: center; position: relative; }

.anime__load__track { display: flex; align-items: center; height: 100%; /* widthはJSで自動セット */ }

.anime__load__track img { width: 303px; height: 32px; display: block; margin-right: 120px; /* トラック間ギャップ */ }

/* .ft__cta
----------------------------------------------------------- */
.ft__cta { width: 100%; position: relative; background: #ebf6f0; padding-top: calc((100 / 1920) * 100vw); }

.ft__cta__inner { padding: calc((110 / 1920) * 100vw) 5% calc((170 / 1920) * 100vw); background: url("../images/common/ft_contact_bg.jpg") no-repeat top center/cover; }

.ft__cta__ttl { text-align: center; color: #fff; opacity: 0; transition: opacity 0.8s cubic-bezier(0.7, 0, 0.2, 1); }

.ft__cta__ttl.is-show { opacity: 1; }

.tp__ttl--ja { font-size: 2.4rem; font-weight: 700; letter-spacing: .05em; margin-bottom: 1.2em; position: relative; }

.tp__ttl--en { font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; font-size: 12rem; font-weight: 600; }

.ft__cta__txt { font-size: 2rem; text-align: center; color: #fff; margin-top: 2em; }

.ft__cta__way { width: min(90%, 1240px); margin: 0 auto; background-color: rgba(25, 159, 97, 0.5); border-radius: calc(1px / 0); margin-top: 70px; display: flex; justify-content: center; }

.ft__cta__tel { width: 50%; inline-size: fit-content; margin-inline: auto; text-align: center; color: #fff; padding-top: 40px; }
.ft__cta__tel h3 { text-align: center; font-size: 2rem; font-weight: 700; letter-spacing: .05em; padding: .8em; border-top: 1px solid rgba(255, 255, 255, 0.5); border-bottom: 1px solid rgba(255, 255, 255, 0.5); margin-bottom: 1em; }
.ft__cta__tel .tel { font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; font-size: clamp(42px, 2.6042vw, 50px); font-weight: 600; letter-spacing: .02em; background: url("../images/common/icon_tel_w.svg") no-repeat 0 50%; background-size: 24px; padding-left: 32px; color: #fff; }
.ft__cta__tel .time { font-size: 1.6rem; font-weight: 600; margin-top: .5em; }

.ft__cta__btn { width: 50%; padding: 64px 100px 64px 0; }

.btn--cta { width: 100%; padding: 2em; border-radius: calc(1px / 0); background: #fff; font-size: clamp(20px, 1.25vw, 24px); font-weight: 700; letter-spacing: .05em; text-align: center; display: block; position: relative; transition: color .3s ease, box-shadow .3s ease; }
.btn--cta::after { content: ''; position: absolute; background: url("../images/common/btn_icon.png") no-repeat; width: 57px; height: 57px; top: 50%; right: 10px; transform: translateY(-50%); }
.btn--cta:hover { color: #29a86e; box-shadow: 0 0 20px 8px rgba(106, 223, 230, 0.5); }

/* footer
----------------------------------------------------------- */
.ft__wrap { width: 100%; background-image: linear-gradient(to top, #ebf6f0, #fff); position: relative; padding-top: 100px; padding-bottom: 40px; z-index: 1; }
.ft__wrap::after { content: ''; position: absolute; background: url("../images/common/ft_bg.webp") no-repeat bottom center/cover; bottom: -120px; left: 50%; transform: translateX(-50%); width: 1920px; height: 474px; z-index: -1; }

.ft__inner { width: min(90%, 1580px); margin: 0 auto; display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 300px; }

.ft__info .tel { font-size: 1.5rem; line-height: 1.6; }

.ft__info__logo { margin-bottom: 40px; }

.ft__address { display: flex; align-items: center; }
.ft__address .txt { font-size: 1.5rem; line-height: 1.6; white-space: nowrap; }
.ft__address .gmapbtn { margin-left: 1em; font-size: 1.3rem; background: #29a86e; color: #fff; font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; padding: .7em 1.2em 0; padding-right: 2em; height: 32px; line-height: 1; border-radius: calc(1px / 0); display: block; position: relative; }
.ft__address .gmapbtn::after { content: ''; position: absolute; background: #fff; width: 4px; height: 4px; border-radius: 50%; top: 50%; transform: translateY(-50%); right: 10%; }
.ft__address .gmapbtn:hover { opacity: .5; }

.ft__link { display: flex; justify-content: flex-end; flex: 1; gap: 0 80px; }

.ft__link__box { width: 220px; }

.ft__link__ttl { color: #29a86e; font-size: 1.8rem; letter-spacing: .05em; padding-bottom: .8em; border-bottom: 1px solid #29a86e; font-weight: 600; }
.ft__link__ttl .contents { font-size: 2.3rem; }

.ft__link__list { margin-top: 32px; }
.ft__link__list li { margin-bottom: .5em; font-size: 1.5rem; }
.ft__link__list li a { line-height: 1.6; }
.ft__link__list li a:hover { opacity: 0.5; filter: alpha(opacity=50); color: #29a86e; }
.ft__link__list li::after { content: "/"; color: #fff; padding-left: 1em; margin-right: 1em; }
.ft__link__list.group li a { background: url("../images/common/icon_window.svg") no-repeat 100% 60%/13px; padding-right: 1.5em; }

.ft__copyright { width: min(90%, 1580px); margin: 0 auto; }
.ft__copyright p { font-size: 1.3rem; }

.pagetop { position: absolute; bottom: 40px; right: 60px; z-index: 999; }
.pagetop a { width: 120px; height: 120px; background-color: #fff; border: 1px solid #29a86e; border-radius: 50%; color: #29a86e; font-size: 1.4rem; font-family: "Jost", sans-serif; font-optical-sizing: auto; line-height: 1.0; font-weight: 500; font-style: normal; text-align: center; padding-top: 60px; display: block; position: relative; }
.pagetop a::before { content: ''; position: absolute; background: url("../images/common/icon_arrow_tp.svg") no-repeat top center; width: 17px; height: 19px; top: 28px; left: 50%; transform: translateX(-50%); }
.pagetop a:hover { opacity: 0.5; filter: alpha(opacity=50); }
