@charset "utf-8";

html {
   font-size: 0.595238095vw;
}

body {
   background: #fff;
   color: #112443;
   font-family: "Noto Sans JP", sans-serif;
   font-weight: 700;
}

body.noscroll {
   overflow: hidden;
}

a {
   display: block;
   transition: 0.2s;
}

a:hover {
   transition: 0.2s;
}

dt {
   font-weight: normal;
}

img {
   display: block;
   max-width: 100%;
   width: 100%;
}

*,
*::before,
*::after {
   box-sizing: border-box;
}

/* Remove default padding */

ul,
ol {
   padding: 0;
}

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
   margin: 0;
}

/* Set core root defaults */

/* Set core body defaults */

body {
   text-rendering: optimizeSpeed;
}

/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
   list-style: none;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
   -webkit-text-decoration-skip: ink;
   text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img {
   display: block;
   max-width: 100%;
   width: 100%;
}

/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
   font: inherit;
}

/* フォームリセット */

input,
button,
select,
textarea {
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
   background: transparent;
   border: none;
   border-radius: 0;
   font: inherit;
   outline: none;
}

textarea {
   resize: vertical;
}

input[type=checkbox],
input[type=radio] {
   display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
   cursor: pointer;
}

select::-ms-expand {
   display: none;
}

/*
 * l-inner
 * -------------------------------------------------------------
 */

.l-inner {
   margin: auto;
   max-width: 116rem;
   padding: 0 2rem;
}

.l-inner--page {
   max-width: 164rem;
   padding: 0 8rem;
}

/*
 * l-main
 * -------------------------------------------------------------
 */

.l-main {
   margin: 0 auto;
   max-width: 168rem;
   overflow: hidden;
   padding: 0 2rem;
   position: relative;
}

/*
 * l-topBody
 * -------------------------------------------------------------
 */

.l-topBody {
   overflow: hidden;
   position: relative;
}

.l-topBody::before {
   background: url(./../images/top/shinei-gumi_side_logo.webp) no-repeat center;
   background-size: 100%;
   content: "";
   display: block;
   height: 99%;
   position: absolute;
   right: 0;
   top: 0.5rem;
   width: 17.6rem;
   z-index: -1;
}

/*
 * c-info
 * -------------------------------------------------------------
 */

.c-info__txt {
   font-size: 3.2rem;
   letter-spacing: 0.36em;
   line-height: 1.5;
   text-align: center;
}

.c-info__txt span {
   color: #3F8091;
}

.c-info__flex {
   align-items: center;
   display: flex;
   gap: 0 4.5rem;
   justify-content: center;
   margin-top: 4rem;
}

.c-info__tel {
   font-family: "Lato", sans-serif;
   font-size: 3.2rem;
   font-weight: 400;
   letter-spacing: 0.05em;
}

.c-info__contact-wrap {
   cursor: pointer;
   position: relative;
   transition: 0.4s ease-in-out;
}

.c-info__contact-wrap::before {
   background: #112443;
   bottom: 0;
   content: "";
   left: 0;
   opacity: 0;
   position: absolute;
   right: 100%;
   top: 0;
   transition: 0.4s ease-in-out;
}

.c-info__contact {
   border-bottom: 1px solid #112443;
   border-left: 1px solid #112443;
   font-size: max(14px, 1.8rem);
   letter-spacing: 0.36em;
   padding: 2rem 4.5rem;
   position: relative;
   z-index: 2;
}

.c-info__contact:hover {
   color: #fff;
}

.c-info__contact-wrap:hover::before {
   left: 0;
   opacity: 1;
   right: 0;
}

/*
 * c-link
 * -------------------------------------------------------------
 */

.c-link {
   border-bottom: 2px solid #112443;
   display: inline-block;
   font-size: max(13px, 1.4rem);
   letter-spacing: 0.36em;
   padding-bottom: 0.9rem;
}

.c-link--eng {
   font-family: "Lato", sans-serif;
   font-weight: 400;
   text-transform: uppercase;
}

/*
 * c-section-engttl
 * -------------------------------------------------------------
 */

.c-section-engttl {
   display: block;
   font-family: "Lato", sans-serif;
   font-size: max(18px, 2.4rem);
   font-weight: 400;
   letter-spacing: 0.36em;
   text-transform: uppercase;
}

.c-section-engttl.--white {
   color: #fff;
}

/*
 * c-table
 * -------------------------------------------------------------
 */

.c-table__ttl {
   font-size: 3.6rem;
   letter-spacing: 0.36em;
   text-align: center;
}

.c-table__table {
   font-size: max(14px, 1.6rem);
   letter-spacing: 0.12em;
   line-height: 1.75;
   margin-top: 6.5rem;
}

.c-table__flex {
   display: flex;
}

.c-table__table dt {
   font-weight: 700;
   width: 14.8rem;
}

.c-table__flex:not(:nth-child(1)) dt,
.c-table__flex:not(:nth-child(1)) dd {
   padding-top: 3.5rem;
}

.c-table__flex:first-child dt,
.c-table__flex:first-child dd {
   padding-top: 2rem;
}

.c-table__flex:last-child dt,
.c-table__flex:last-child dd {
   padding-bottom: 3.5rem;
}

.c-table__table dd {
   border-left: 1px solid #112443;
   flex: 1;
   padding-left: 6rem;
}

.c-table__colortxt {
   color: #3F80A1;
}

/*
 * c-txt
 * -------------------------------------------------------------
 */

.c-txt {
   font-size: max(14px, 1.6rem);
   font-weight: 700;
   letter-spacing: 0.12em;
   line-height: 1.75;
}

/*
 * TEXT slide-in Animation
 * -------------------------------------------------------------
 */
.slide-in {
   overflow: hidden;
   display: inline-block;
}

.slide-in_inner {
   display: inline-block;

}

.leftAnime {
   opacity: 0;
}

.slideAnimeLeftRight {
   animation-name: slideTextX100;
   animation-duration: 0.8s;
   animation-fill-mode: forwards;
   opacity: 0;
}

@keyframes slideTextX100 {
   from {
      transform: translateX(-100%);
      opacity: 0;
   }

   to {
      transform: translateX(0);
      opacity: 1;
   }
}

.slideAnimeRightLeft {
   animation-name: slideTextX-100;
   animation-duration: 0.8s;
   animation-fill-mode: forwards;
   opacity: 0;
}


@keyframes slideTextX-100 {
   from {
      transform: translateX(100%);
      opacity: 0;
   }

   to {
      transform: translateX(0);
      opacity: 1;
   }
}

.leftAnime2 {
   opacity: 0;
}

.slideAnimeLeftRight2 {
   animation-name: slideTextX1002;
   animation-duration: 0.8s;
   animation-delay: .5s;
   animation-fill-mode: forwards;
   opacity: 0;
}

@keyframes slideTextX1002 {
   from {
      transform: translateX(-100%);
      opacity: 0;
   }

   to {
      transform: translateX(0);
      opacity: 1;
   }
}

.slideAnimeRightLeft2 {
   animation-name: slideTextX-1002;
   animation-duration: 0.8s;
   animation-delay: .5s;
   animation-fill-mode: forwards;
   opacity: 0;
}


@keyframes slideTextX-1002 {
   from {
      transform: translateX(100%);
      opacity: 0;
   }

   to {
      transform: translateX(0);
      opacity: 1;
   }
}

/*
 * u-fadeIn-scroll
 * -------------------------------------------------------------
 */

.fadeIn {
   visibility: visible !important;
}

.fadeIn {
   animation-duration: 0.8s;
   animation-fill-mode: both;
   animation-name: fadeIn;
}

/*
 * u-fadeIn
 * -------------------------------------------------------------
 */

.u-fadeIn {
   animation-delay: 0;
   animation-direction: normal;
   animation-duration: 0.8s;
   animation-fill-mode: forwards;
   animation-iteration-count: 1;
   animation-name: u-fadeIn;
   animation-timing-function: ease-out;
}

/*
 * u-hover
 * -------------------------------------------------------------
 */

.u-hover:hover {
   border-color: #3F8091;
   color: #3F8091;
}

/*
 * u-pc
 * -------------------------------------------------------------
 */

.u-pc {
   display: block;
}

/*
 * u-sp
 * -------------------------------------------------------------
 */

.u-sp {
   display: none;
}

/*
 * p-about  伸英組とは ABOUT USページ
 * -------------------------------------------------------------
 */

.p-about__items {
   display: flex;
   flex-direction: column;
   gap: 4rem 0;
}

.p-about__item {
   align-items: center;
   background: #e5e7e9;
   border-radius: 6rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   display: flex;
   gap: 0 10rem;
   justify-content: space-between;
   padding: 8rem;
}

.p-about__img {
   display: flex;
   gap: 0 2rem;
   position: relative;
   width: 98rem;
}

.p-about__img img {
   -o-object-fit: cover;
   aspect-ratio: 480/520;
   border-radius: 1rem;
   height: 100%;
   max-width: 48rem;
   object-fit: cover;
}

.p-about__img--lg {
   display: block;
}

.p-about__img--lg img {
   -o-object-fit: cover;
   aspect-ratio: 980/520;
   height: 100%;
   max-width: 100%;
   object-fit: cover;
}

.p-about__copy {
   bottom: -5rem;
   color: #fff;
   font-family: "Lato", sans-serif;
   font-size: 12.8rem;
   font-weight: 400;
   left: -4rem;
   letter-spacing: 0.36em;
   position: absolute;
   text-transform: uppercase;
}

.p-about__body {
   flex: 1;
}

.p-about__number {
   display: block;
   font-family: "Lato", sans-serif;
   font-size: 7.2rem;
   font-weight: 400;
   letter-spacing: 0.36em;
   line-height: 1;
}

.p-about__ttl {
   background: #fff;
   display: inline-block;
   font-size: 3.6rem;
   letter-spacing: 0.36em;
   line-height: 1;
   margin-top: 3.5rem;
   padding: 0.9rem 1rem 1.1rem 1.6rem;
}

.p-about__txt {
   margin-top: 3rem;
}

.p-about__item.--reverse {
   flex-direction: row-reverse;
}

.p-about__number.--reverse {
   left: auto;
   left: initial;
   right: -4rem;
}

.p-about__greeting {
   align-items: flex-start;
   background: #fff;
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   display: flex;
   gap: 0 7.5rem;
   justify-content: center;
   margin: 10rem auto 0;
   max-width: 112rem;
   padding: 8rem 8rem 13.5rem;
}

.p-about__greeting-img {
   aspect-ratio: 340/340;
   border-radius: 1rem;
   margin-top: 7rem;
   overflow: hidden;
   width: 34rem;
}

.p-about__greeting-img img {
   -o-object-fit: cover;
   height: 100%;
   object-fit: cover;
}

.p-about__greeting-body {
   flex: 1;
   max-width: 51.7rem;
}

.p-about__greeting-ttl {
   font-size: 1.8rem;
   letter-spacing: 0.36em;
   order: 1;
}

.p-about__greeting-desc {
   margin-top: 4rem;
}

.p-about__greeting-lead {
   font-size: 2.4rem;
   letter-spacing: 0.36em;
   line-height: 1.5;
}

.p-about__greeting-lead span {
   display: inline-block;
}

.p-about__greeting-lead span::first-letter {
   color: #3F8091;
}

.p-about__greeting-txt {
   margin-top: 4rem;
}

.p-about__info {
   padding: 10rem 0 12rem;
}

/*
 * p-company  会社概要 COMPANYページ
 * -------------------------------------------------------------
 */

.p-company {
   margin-top: 12rem;
}

.p-company__inner {
   margin: 0 auto;
   max-width: 112rem;
}

.p-company__table {
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   margin: 0 auto;
   max-width: 112rem;
   padding: 12rem 9.5rem 10rem;
}

.p-company__info {
   margin-top: 12rem;
   text-align: center;
}

.p-company__map {
   aspect-ratio: 1040/480;
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   margin: 0 auto;
   max-width: 104rem;
   overflow: hidden;
}

.p-company__address {
   margin-top: 3.5rem;
}

.p-company__address span {
   font-family: "Lato", sans-serif;
   font-weight: 400;
}

.p-company__info-link {
   margin-top: 2rem;
}

.p-company__info-link .c-link {
   text-transform: uppercase;
}

.p-company__info-info {
   padding: 13.5rem 0 12rem;
}

/*
 * p-contact
 * -------------------------------------------------------------
 */

.p-contact {
   padding: 12rem 0 20rem;
   text-align: center;
}

.p-contact__txt {
   font-size: 2.4rem;
   letter-spacing: 0.36em;
   line-height: 2;
}

.p-contact__txt.--space {
   margin-top: 1.8rem;
}

.p-contact__tel {
   font-family: "Lato", sans-serif;
   font-weight: 400;
   font-size: 7.2rem;
   letter-spacing: 0.05em;
   margin-top: 1.8rem;
}

.p-contact__form {
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   margin-top: 11.5rem;
   padding: 12rem 10rem 11rem;
}

.p-contact__form-header {
   margin-bottom: 12rem;
}

.p-contact__ttl {
   font-size: 3.6rem;
   letter-spacing: 0.36em;
}

.p-contact__note {
   margin-top: 3rem;
}

.p-contact__txt-submit {
   font-size: max(14px, 1.6rem);
   font-weight: 700;
   letter-spacing: 0.12em;
   line-height: 1.75;
   margin-top: 3rem;
}

/*
 * p-confirm - お問い合わせ確認画面
 * -------------------------------------------------------------
 */
.p-confirm__txt {
   text-align: center;
   margin-top: 4rem;
}

.p-confirm__form dd {
   margin-top: 0!important;
   padding-top: 1.4rem;
}

/*
 * p-submit - 送信完了画面
 * -------------------------------------------------------------
 */
.p-submit {
   margin-top: 20rem;
   text-align: center;
   /* padding-bottom: 10rem; */
}

.p-submit__inner {
   padding-top: 12.5rem;
   padding-bottom: 12.5rem;
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
}

.p-submit__txt {
   font-size: max(14px, 1.6rem);
   font-weight: 700;
   letter-spacing: 0.12em;
   line-height: 1.75;
   margin-top: 4rem;
}

.p-submit__bottom {
   padding: 12rem 0 14rem;
   text-align: center;
}

/*
 * p-copyright
 * -------------------------------------------------------------
 */

.p-copyright {
   font-family: "Lato", sans-serif;
   font-size: 1.2rem;
   font-weight: 400;
   left: -6rem;
   letter-spacing: 0.36em;
   position: fixed;
   top: 77rem;
   transform: rotate(90deg);
}

/*
 * p-drawerNav
 * -------------------------------------------------------------
 */

.p-drawerNav {
   display: flex;
   height: 100vh;
   opacity: 0;
   position: fixed;
   right: 0;
   top: 0;
   transition: all 0.3s;
   visibility: hidden;
   width: 100%;
   background: #fff;
}

.p-drawerNav.is-open {
   opacity: 1;
   overflow: auto;
   transition: all 0.6s;
   visibility: visible;
   z-index: 1;
}

.p-drawerNav__img {
   width: 50%;
   height: 52vw;
   min-height: 100%;
}

.p-drawerNav__img img {
   -o-object-fit: cover;
   height: 100%;
   object-fit: cover;
}

.p-drawerNav__items {
   aspect-ratio: 840/900;
   background: #fff;
   display: flex;
   flex-direction: column;
   height: 100%;
   margin-left: auto;
   padding: 12rem 8rem 8.5rem;
   width: 50%;
}

.p-drawerNav__item {
   cursor: pointer;
   position: relative;
   transition: 0.5s ease-in-out;
}

.p-drawerNav__item:not(:nth-child(1)) {
   margin-top: 3rem;
}

.p-drawerNav__item::before {
   background: #112443;
   bottom: 0;
   content: "";
   left: 0;
   opacity: 0;
   position: absolute;
   right: 100%;
   top: 0;
   transition: 0.4s ease-in-out;
}

.p-drawerNav__item a {
   align-items: center;
   border-bottom: 1px solid #112443;
   border-left: 1px solid #112443;
   display: flex;
   font-size: max(18px, 2.1rem);
   gap: 0 5rem;
   letter-spacing: 0.36em;
   padding: 2.6rem 4.5rem 3.3rem;
   position: relative;
   z-index: 2;
}

.p-drawerNav__eng {
   font-family: "Lato", sans-serif;
   font-weight: 400;
   font-size: max(13px, 1.6rem);
   letter-spacing: 0.36em;
   text-transform: uppercase;
}

.p-drawerNav__sns a {
   align-items: center;
   display: flex;
   gap: 0 1.5rem;
   margin-top: 5rem;
   transition: all 0.2s;
}

.p-drawerNav__sns a::before {
   background: url(./../images/common/instagram.webp) no-repeat center;
   background-size: 100%;
   content: "";
   display: inline-block;
   height: max(16px, 1.8rem);
   transition: all 0.2s;
   width: max(16px, 1.8rem);
}

.p-drawerNav__sns a:hover {
   color: #3F8091;
}

.p-drawerNav__sns a:hover::before {
   background: url(./../images/common/instagram_hover.webp) no-repeat center;
   background-size: 100%;
}

.p-drawerNav__item a:hover {
   color: #fff;
}

.p-drawerNav__item:hover::before {
   left: 0;
   opacity: 1;
   right: 0;
}

/*
 * p-form
 * -------------------------------------------------------------
 */

.p-form {
   font-size: max(14px, 1.6rem);
   letter-spacing: 0.12em;
   line-height: 1.75;
}

.p-form__item {
   display: flex;
   gap: 0 14.5rem;
   justify-content: space-between;
}

.p-form__item:not(:nth-child(1)) {
   margin-top: 5rem;
}

.p-form__item dt {
   font-weight: 700;
   padding-top: 1.4rem;
   text-align: left;
   width: 14.5rem;
   min-width: 129px;
}

.p-form__item label {
   display: block;
   width: 100%;
}

.p-form__item dt sup {
   color: #3F809C;
   font-size: max(14px, 1.6rem);
   margin-left: 0.2rem;
   position: relative;
   top: -0.1rem;
}

.p-form__item dd {
   flex: 1;
   text-align: left;
}

.p-form__item:not(:nth-child(1)) dd {
   margin-top: 2.5rem;
}

.p-form input {
   border-bottom: 1px solid #112443;
   border-left: 1px solid #112443;
   color: #112443;
   letter-spacing: 0.12em;
   padding: 1.2rem 2rem 1.3rem;
   text-align: left;
   width: 100%;
}

input::-moz-placeholder {
   color: #E1E3E5;
}

input::placeholder {
   color: #E1E3E5;
}

.p-form__textarea {
   aspect-ratio: 630/300;
   border-bottom: 1px solid #112443;
   border-left: 1px solid #112443;
   padding: 1.2rem 2rem 1.3rem;
   text-align: left;
   width: 100%;
}

textarea::-moz-placeholder {
   color: #E1E3E5;
}

textarea::placeholder {
   color: #E1E3E5;
}

.p-form__btn {
   margin-top: 8rem;
   text-align: center;
}

.p-form__btn .c-link {
   letter-spacing: 0.12em;
   transition: all 0.2s;
}

.p-form__btn-flex {
   display: flex;
   justify-content: center;
   gap: 0 4rem;
}

[type=radio]+span {
   align-items: center;
   display: flex;
   position: relative;
}

[type=radio]+span::before {
   border: 1px solid #112443;
   border-radius: 50%;
   content: "";
   display: inline-block;
   height: 1.4rem;
   margin-right: 0.5rem;
   width: 1.4rem;
}

[type=radio]:checked+span::after {
   background: #112443;
   border-radius: 50%;
   content: "";
   display: block;
   height: 0.8rem;
   left: 0.3rem;
   opacity: 1;
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   width: 0.8rem;
}

/*
 * p-footer
 * -------------------------------------------------------------
 */

.p-footer {
   background: #d6d8da;
   padding: 8rem 0 6rem;
}

.p-footer__inner {
   display: flex;
   justify-content: space-between;
   margin: 0 auto;
   max-width: 118.5rem;
}

.p-footer__info {
   align-items: center;
   display: flex;
   gap: 0 7rem;
}

.p-footer__logo {
   width: 23.8rem;
}

.p-footer__address {
   font-size: max(12px, 1.6rem);
   letter-spacing: 0.12em;
   line-height: 1.5;
}

.p-footer__address span {
   font-family: "Lato", sans-serif;
   font-weight: 400;
}

.p-footer__nav {
   display: flex;
   gap: 0 12rem;
   min-width: 345px;
}

.p-footer__nav-items {
   border-left: 1px solid #112443;
   display: flex;
   flex-direction: column;
   gap: 1.6rem 0;
   padding: 1.6rem 0 1.6rem 2rem;
}

.p-footer__nav-item a {
   font-size: max(12px, 1.6rem);
   letter-spacing: 0.36em;
}

.p-footer__nav-item a::before {
   content: "-";
   display: inline-block;
   margin-right: 1em;
}

/*
 * p-header
 * -------------------------------------------------------------
 */

.p-header {
   height: 9rem;
   left: 0;
   position: fixed;
   right: 0;
   top: 0;
   z-index: 100;
}

.p-header__inner {
   align-items: center;
   display: flex;
   height: 100%;
   padding: max(45px, 4.5rem) 5rem 0;
}

.p-header__logo {
   width: max(160px, 22rem);
}

.p-header__nav {
   align-items: center;
   display: flex;
   flex: 1;
   gap: 0 3.5rem;
   height: 100%;
   justify-content: flex-end;
}

.p-header__nav-items {
   align-items: center;
   display: flex;
   gap: 0 4rem;
   height: 100%;
   justify-content: flex-end;
}

.p-header__nav-item a {
   font-family: "Lato", sans-serif;
   font-weight: 400;
   font-size: max(14px, 1.8rem);
   letter-spacing: 0.36em;
   position: relative;
   text-transform: uppercase;
}

.p-header__nav-item a:after {
   background-color: #3F8091;
   bottom: -1.2rem;
   content: "";
   display: block;
   height: 1px;
   left: 0;
   opacity: 0;
   position: absolute;
   transform: translateY(0.5rem);
   transition: 0.6s cubic-bezier(0.19, 1, 0.22, 1);
   transition-property: opacity, transform;
   width: 100%;
   will-change: opacity, transform;
}

.p-header__nav-item a:hover {
   color: #3F8091;
}

.p-header__nav-item a:hover:after {
   opacity: 1;
   transform: translateY(0);
}

.p-header__nav-sns {
   width: max(18px, 1.8rem);
}

.p-header__nav-sns a:hover {
   background: url(./../images/common/instagram_hover.webp) no-repeat center;
   background-size: 100%;
   content: "";
   display: block;
   height: max(18px, 1.8rem);
   width: max(18px, 1.8rem);
}

.p-header__nav-sns a:hover img {
   display: none;
}

/*
 * p-menu-btn
 * -------------------------------------------------------------
 */

.p-menu-btn {
   border-bottom: 1px solid #112443;
   border-left: 1px solid #112443;
   height: max(50px, 5rem);
   padding: max(15px, 1.5rem);
   position: relative;
   width: max(50px, 5rem);
   z-index: 100;
}

.p-menu-btn span {
   background: #112443;
   display: block;
   height: 1px;
   position: absolute;
   transition: all 0.2s;
   width: max(20px, 2rem);
}

.p-menu-btn span:nth-child(1) {
   top: 34%;
}

.p-menu-btn span:nth-child(2) {
   top: 50%;
}

.p-menu-btn span:nth-child(3) {
   top: 67%;
}

.p-menu-btn.is-open {
   border: none;
}

.p-menu-btn span.is-open:nth-child(1) {
   top: 50%;
   transform: rotate(45deg);
}

.p-menu-btn span.is-open:nth-child(2) {
   opacity: 0;
}

.p-menu-btn span.is-open:nth-child(3) {
   top: 50%;
   transform: rotate(-45deg);
}

/*
 * p-mv
 * -------------------------------------------------------------
 */

.p-mv {
   overflow: hidden;
   padding: 0 1.2vw;
   position: relative;
}

.p-mv__inner {
   height: 100%;
   padding-top: 1.2vw;
}

.p-mv__logo {
   left: 50%;
   position: absolute;
   top: 50%;
   transform: translate(-50%, -50%);
   width: 12vw;
   z-index: 2;
}

.p-mv__slide {
   align-items: flex-start;
   display: flex;
   gap: 0 1.2vw;
}

.p-mv__left {
   margin-top: 9.5239vw;
}

.p-mv__left,
.p-mv__right {
   aspect-ratio: 810/740;
   opacity: 0;
   transition: opacity 0.5s, transform 0.5s;
   width: 50%;
}

.p-mv__slide img {
   -o-object-fit: cover;
   border-radius: 1.2vw;
   height: 100%;
   min-height: 740px;
   object-fit: cover;
   transition: opacity 1s, transform 1s;
}

.p-mv .swiper-slide-active .p-mv__left {
   opacity: 1;
   transform: translateX(0);
}

.p-mv .swiper-slide-active .p-mv__right {
   opacity: 1;
   transform: translateX(0);
}

/*
 * p-pageDesc
 * -------------------------------------------------------------
 */

.p-pageDesc {
   display: flex;
   justify-content: space-between;
   margin-left: auto;
   padding: 12rem 9rem 14rem 0;
   width: 130rem;
}

.p-pageDesc__ttl {
   font-size: 3.6rem;
   letter-spacing: 0.36em;
   width: -moz-fit-content;
   width: fit-content;
}

.p-pageDesc__ttl::first-letter {
   color: #3F809F;
}

.p-pageDesc__txt {
   width: 60rem;
}

/*
 * p-pageInfo  下層ページ　 info  従業員募集中
 * -------------------------------------------------------------
 */

.p-pageInfo {
   margin: 0 auto;
   width: -moz-fit-content;
   width: fit-content;
}

/*
 * p-pageMv  下層ページ メインビジュアル
 * -------------------------------------------------------------
 */

.p-pageMv {
   padding: 9.5vw 1.2vw 0;
}

.p-pageMv__inner {
   display: flex;
   gap: 0 7.2vw;
}

.p-pageMv__header {
   align-items: flex-start;
   display: flex;
   gap: 0 1.2vw;
   line-height: 1;
   padding: 4.9vw 0 0 6.55vw;
}

.p-pageMv__jattl {
   font-family: "Noto Serif JP", serif;
   font-size: 3.81vw;
   letter-spacing: 0.36em;
   writing-mode: vertical-rl;
}

.p-pageMv__engttl {
   display: inline-block;
   font-family: "Lato", sans-serif;
   font-size: 1.9vw;
   font-weight: 400;
   letter-spacing: 0.36em;
   text-transform: uppercase;
   transform: rotate(180deg);
   writing-mode: vertical-rl;
   color: #3F80A1;
}

.p-pageMv__img {
   aspect-ratio: 1300/640;
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   overflow: hidden;
   position: relative;
   width: 77.4vw;
}

.p-pageMv__img:after {
   animation-duration: 1s;
   animation-fill-mode: forwards;
   animation-name: pageMv-slide-bg;
   background: #112443;
   border-radius: 2rem;
   content: "";
   height: 100%;
   left: 0;
   position: absolute;
   top: 0;
   transform: translateX(-100%);
   width: 100%;
}

.p-pageMv__img img {
   -o-object-fit: cover;
   animation-duration: 1s;
   animation-fill-mode: forwards;
   animation-name: pageMv-slide;
   border-radius: 2rem;
   height: 100%;
   object-fit: cover;
   transform: translateX(-100%);
}

/*
 * p-popup
 * -------------------------------------------------------------
 */

.p-popup {
   display: none;
   height: 100%;
   overflow: scroll;
   padding: 5rem 0 22.5rem;
   position: fixed;
   text-align: center;
   width: 100%;
   z-index: 1000;
}

.p-popup::before {
   background: rgba(0, 59, 70, 0.75);
   content: "";
   display: block;
   height: 100vh;
   left: 0;
   position: fixed;
   top: 0;
   width: 100%;
}

.p-popup__contents {
   border-radius: 1rem;
   margin: 0 auto;
   overflow: hidden;
   position: relative;
   width: max(570px, 75rem);
}

.p-popup__inner {
   background: #fff;
   padding: 3rem 3rem 10rem;
}

.p-popup__ttl {
   font-size: 2.4rem;
   letter-spacing: 0.36em;
}

.p-popup__img {
   aspect-ratio: 660/330;
   margin-top: 2.5rem;
}

.p-popup__img img {
   -o-object-fit: cover;
   height: 100%;
   object-fit: cover;
}

.p-popup__top {
   border-bottom: 1px solid #D6D8DA;
   padding: 6rem 0;
   text-align: center;
}

.p-popup__copy {
   font-size: 2.4rem;
   letter-spacing: 0.12em;
   line-height: 1;
}

.p-popup__copy span {
   color: #3F8091;
   display: block;
   font-size: 3.6rem;
   letter-spacing: 0.36em;
   margin-bottom: 3rem;
}

.p-popup__btn {
   background: #3F8091;
   border-radius: 1rem;
   color: #fff;
   font-size: 2.4rem;
   letter-spacing: 0.36em;
   margin: 5.5rem auto 0;
   padding: 2.7rem;
   width: 58rem;
}

.p-popup__bottom {
   padding-top: 9rem;
}

.p-popup__bottom-txt {
   font-size: 2.4rem;
   letter-spacing: 0.12em;
}

.p-popup__close {
   height: 3rem;
   position: absolute;
   right: 2.5rem;
   top: 2.5rem;
   width: 3rem;
}

.p-popup__close span {
   background: #112443;
   display: block;
   height: 1px;
   position: absolute;
   top: 50%;
   width: 100%;
}

.p-popup__close span:nth-child(1) {
   transform: rotate(45deg);
}

.p-popup__close span:nth-child(2) {
   transform: rotate(-45deg);
}

/*
 * p-recruit-app
 * -------------------------------------------------------------
 */

.p-recruit-app {
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   margin: 0 auto;
   margin-top: 19.5rem;
   max-width: 112rem;
   padding: 12rem 9.5rem 10rem;
}

/*
 * p-recruit-dis
 * -------------------------------------------------------------
 */

.p-recruit-dis {
   background: #e6e8ea;
   padding: 36rem 0 12rem;
}

.p-recruit-dis__items {
   display: flex;
   flex-direction: column;
   gap: 16rem 0;
}

.p-recruit-dis__item {
   display: flex;
   gap: 0 8rem;
   justify-content: space-between;
}

.p-recruit-dis__talk {
   width: 70rem;
}

.p-recruit-dis__engttl {
   font-family: "Lato", sans-serif;
   font-weight: 400;
   font-size: 2.4rem;
   letter-spacing: 0.36em;
   padding-left: 2rem;
   text-transform: uppercase;
}

.p-recruit-dis__engttl span {
   color: #3F8091;
}

.p-recruit-dis__ttl {
   background: #fff;
   font-size: 3.6rem;
   letter-spacing: 0.36em;
   margin-top: 2.5rem;
   padding: 0.8rem 0rem 1.2rem 1rem;
   width: -moz-fit-content;
   width: fit-content;
}

.p-recruit-dis__ttl::first-letter {
   color: #3F8091;
}

.p-recruit-dis__table {
   display: flex;
   flex-direction: column;
   font-size: 1.6rem;
   font-size: max(14px, 1.6rem);
   gap: 2rem 0;
   letter-spacing: 0.12em;
   margin-top: 7.5rem;
}

.p-recruit-dis__table-flex {
   display: flex;
   gap: 0 2rem;
}

.p-recruit-dis__table dt {
   min-width: 50px;
   width: 8rem;
}

.p-recruit-dis__table dt::before {
   border-radius: 50%;
   content: "";
   display: inline-block;
   height: 8rem;
   min-height: 50px;
   overflow: hidden;
   width: 100%;
}

.p-recruit-dis__table-tkm::before {
   background: url(./../images/recruit/talk_takumi.webp) no-repeat center;
   background-size: 100%;
}

.p-recruit-dis__table-is::before {
   background: url(./../images/recruit/talk_issei.webp) no-repeat center;
   background-size: 100%;
}

.p-recruit-dis__table-tkr::before {
   background: url(./../images/recruit/talk_takuro.webp) no-repeat center;
   background-size: 100%;
}

.p-recruit-dis__table-all::before {
   background: url(./../images/recruit/talk_all.webp) no-repeat center;
   background-size: 100%;
}

.p-recruit-dis__table dt span {
   display: block;
   font-size: max(10px, 1.6rem);
   font-weight: 700;
   line-height: 1.75;
   text-align: center;
}

.p-recruit-dis__table dd {
   flex: 1;
   line-height: 1.75;
   padding-top: 2rem;
}

.p-recruit-dis__img {
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   flex: 1;
   overflow: hidden;
}

.p-recruit-dis__img-fix {
   min-width: 700px;
}

.p-recruit-dis__img-fix1 {
   background: url(./../images/recruit/talk_img01-11.webp) no-repeat right;
   background-attachment: fixed;
   background-size: 80rem;
   height: 50%;
   width: 70rem;
}

.p-recruit-dis__img-fix2 {
   background: url(./../images/recruit/talk_img01-2.webp) no-repeat right;
   background-attachment: fixed;
   background-size: 80rem;
   height: 50%;
   width: 70rem;
}

.p-recruit-dis__img-fix3 {
   background: url(./../images/recruit/talk_img02-1.webp) no-repeat top;
   background-attachment: fixed;
   background-position-x: -50rem;
   background-size: cover;
   height: 50%;
}

.p-recruit-dis__img-fix4 {
   background: url(./../images/recruit/talk_img02-2.webp) no-repeat bottom;
   background-attachment: fixed;
   background-position-x: -46rem;
   background-size: cover;
   height: 50%;
}

.p-recruit-dis__img-fix5 {
   background: url(./../images/recruit/talk_img03-1.webp) no-repeat right;
   background-attachment: fixed;
   background-position-x: 20rem;
   background-size: 142rem;
   height: 50%;
   width: 70rem;
}

.p-recruit-dis__img-fix6 {
   background: url(./../images/recruit/talk_img03-2.webp) no-repeat right;
   background-attachment: fixed;
   background-position-x: 84rem;
   background-size: contain;
   height: 50%;
   width: 70rem;
}

.p-recruit-dis__img-fix7 {
   background: url(./../images/recruit/talk_img04-1.webp) no-repeat top;
   background-attachment: fixed;
   background-position-x: -40rem;
   background-size: cover;
   height: 50%;
}

.p-recruit-dis__img-fix8 {
   background: url(./../images/recruit/talk_img04-2.webp) no-repeat bottom;
   background-attachment: fixed;
   background-position-x: -27rem;
   background-size: contain;
   height: 50%;
}

.p-recruit-dis__item.--reverse {
   flex-direction: row-reverse;
}

/*
 * p-recruit-info
 * -------------------------------------------------------------
 */

.p-recruit-info {
   padding: 18rem 0 12.5rem;
}

/*
 * p-recruit-speaker
 * -------------------------------------------------------------
 */

.p-recruit-speaker {
   left: 50%;
   margin-top: -22rem;
   position: absolute;
   transform: translate(-50%);
   width: 100%;
}

.p-recruit-speaker__inner {
   margin: 0 auto;
   max-width: 104rem;
}

.p-recruit-speaker__ttl {
   color: #fff;
   display: block;
   font-family: "Lato", sans-serif;
   font-size: 4.8rem;
   font-weight: 400;
   letter-spacing: 0.36em;
   text-align: center;
   text-transform: uppercase;
}

.p-recruit-speaker__items {
   display: flex;
   gap: 0 4rem;
   justify-content: center;
   margin-top: 4.5rem;
}

.p-recruit-speaker__item {
   align-items: center;
   display: flex;
   flex-direction: column;
   max-width: 32rem;
   width: calc((100% - 8rem) / 3);
}

.p-recruit-speaker__img {
   border-radius: 50%;
   height: 24rem;
   overflow: hidden;
   width: 24rem;
}

.p-recruit-speaker__img img {
   -o-object-fit: cover;
   height: 100%;
   object-fit: cover;
}

.p-recruit-speaker__body {
   letter-spacing: 0.12em;
   padding-top: 2rem;
   text-align: center;
   width: 100%;
}

.p-recruit-speaker__name {
   font-size: 2.4rem;
}

.p-recruit-speaker__engname {
   color: #3F80A1;
   font-size: max(12px, 1.2rem);
   margin-top: 1rem;
   text-transform: uppercase;
}

.p-recruit-speaker__date {
   font-size: max(12px, 1.4em);
   line-height: 1.2;
   margin-top: 1rem;
}

.p-recruit-speaker__date span {
   display: inline-block;
}

.p-recruit-speaker__desc {
   background: #fff;
   display: inline-block;
   font-size: 1.6rem;
   font-size: max(12px, 1.6rem);
   margin-top: 1.6rem;
   padding: 1.3rem 1rem;
   width: 100%;
}

.p-recruit-speaker__desc span {
   display: inline-block;
}

/*
 * p-recruit  採用情報  RECRUITページ
 * -------------------------------------------------------------
 */

.p-recruit__header {
   background: #3f80a1;
   border-radius: 6rem 6rem 0 0;
   color: #fff;
   padding: 12.3rem 4rem 29.5rem;
   text-align: center;
}

.p-recruit__header-inner {
   margin: 0 auto;
   max-width: 104rem;
}

.p-recruit__ttl {
   border-bottom: 3px solid #fff;
   border-top: 3px solid #fff;
   color: #fff;
   font-family: "Lato", sans-serif;
   font-size: 9.6rem;
   font-weight: 400;
   letter-spacing: 0.36em;
   margin: 6rem auto 0;
   padding: 2.5rem 0;
   text-align: center;
   text-transform: uppercase;
}

.p-recruit__header-txt {
   margin-top: 3.5rem;
}

/*
 * p-sns
 * -------------------------------------------------------------
 */

.p-sns {
   padding: 12rem 0 13rem;
}

.p-sns__slider .swiper-wrapper {
   align-items: center;
   display: flex;
   transition-timing-function: linear;
}

.p-sns__slide {
   align-items: center;
   display: grid;
   justify-items: center;
   max-width: 56rem;
   place-items: center;
}

.p-sns__slide.--small {
   max-width: 42rem;
}

.p-sns__slide img {
   aspect-ratio: 560/360 !important;
}

.p-sns__slide img {
   -o-object-fit: cover;
   border-radius: 2rem;
   height: 100%;
   object-fit: cover;
}

.p-sns__slide.--small img {
   aspect-ratio: 420/280 !important;
}

.p-sns__link .c-link {
   align-items: center;
   display: flex;
   gap: 0 1.2rem;
   justify-content: center;
   margin: 9.2rem auto 0;
   text-align: center;
   width: -moz-fit-content;
   width: fit-content;
}

.p-sns__link .c-link::before {
   background: url(./../images/common/instagram.webp) no-repeat center;
   background-size: 100%;
   content: "";
   display: inline-block;
   height: 1.8rem;
   transition: all 0.2s;
   width: 1.8rem;
}

.p-sns__link .c-link:hover::before {
   background: url(./../images/common/instagram_hover.webp) no-repeat center;
   background-size: 100%;
}

/*
 * p-topAbout
 * -------------------------------------------------------------
 */

.p-topAbout {
   padding: 15rem 0 11rem;
}

.p-topAbout__inner {
   left: 10rem;
   position: relative;
}

.p-topAbout__contents {
   display: flex;
   gap: 0 20.6rem;
}

.p-topAbout__text-block {
   max-width: 56rem;
   overflow: hidden;
}

.p-topAbout__lead-txt {
   color: #fff;
   font-size: 2.4rem;
   letter-spacing: 0.36em;
   line-height: 1.5;
   margin-top: 3rem;
}

.p-topAbout__lead-txt span {
   background: #3F8091;
   display: inline-block;
   padding: 0.2rem 1rem;
}

.p-topAbout__lead-txt span:first-child {
   padding-bottom: 0;
}

.p-topAbout__lead-txt span:last-child {
   padding-top: 0;
}

.p-topAbout__txt {
   margin-top: 3rem;
}

.p-topAbout__ttl-block {
   position: relative;
   top: -11rem;
}

.p-topAbout__ttl {
   font-family: "Noto Serif JP", serif;
   font-size: 7.2rem;
   letter-spacing: 0.36em;
   line-height: 1.33;
   writing-mode: vertical-rl;
}

.p-topAbout__link {
   margin-top: 4rem;
}

/*
 * p-topCompany
 * -------------------------------------------------------------
 */

.p-topCompany {
   padding: 15.5rem 0 8rem;
   position: relative;
}

.p-topCompany__contents {
   text-align: center;
}

.p-topCompany__content {
   position: relative;
   z-index: 10;
}

.p-topCompany__lead {
   font-size: max(17px, 2.4rem);
   letter-spacing: 0.36em;
   line-height: 1.5;
   margin: 7rem auto 0;
   writing-mode: vertical-rl;
   text-align: left;
}

.p-topCompany__link {
   margin: 5.8rem auto 0;
   position: relative;
   z-index: 1;
}

.p-topCompany__info {
   margin-top: 9rem;
}

.p-topCompany__img {
   margin: 0 calc(50% - 50vw);
   position: absolute;
   top: -7rem;
   z-index: 1;
}

/*
 * p-topRecruit
 * -------------------------------------------------------------
 */

.p-topRecruit {
   background: linear-gradient(#3F8091 65%, #D6D8DA 0);
   border-radius: 6rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
}

.p-topRecruit__top {
   margin: 0 auto;
   max-width: 104rem;
   padding: 12.5rem 3rem 9rem;
}

.p-topRecruit__header {
   text-align: center;
}

.p-topRecruit__slider {
   margin: 6rem auto 0;
   position: relative;
}

.p-topRecruit__slider .topRecruit-swiper {
   overflow: hidden;
   position: relative;
}

.p-topRecruit__slide {
   overflow: hidden;
}

.p-topRecruit__slider img {
   -o-object-fit: cover;
   aspect-ratio: 1040/570;
   border-radius: 2rem;
   height: 100%;
   object-fit: cover;
}

.p-topRecruit__slide-ttl {
   color: #fff;
   font-size: 2.8rem;
   letter-spacing: 0.36em;
   line-height: 2;
   margin: 0 auto;
   padding-top: 6rem;
   position: relative;
   text-align: center;
   width: -moz-fit-content;
   width: fit-content;
}

.p-topRecruit__slide-ttl::before,
.p-topRecruit__slide-ttl::after {
   color: #fff;
   display: inline-block;
   display: inline-block;
   font-family: "Lato", sans-serif;
   font-size: 7.2rem;
   font-weight: 400;
   letter-spacing: 0;
   line-height: 1;
   position: absolute;
}

.p-topRecruit__slide-ttl::before {
   content: "“";
   left: -9rem;
   top: 5rem;
}

.p-topRecruit__slide-ttl::after {
   content: "”";
   right: -7rem;
   top: 5rem;
}

.p-topRecruit__slider .swiper-button-prev {
   top: 40% !important;
}

.p-topRecruit__slider .swiper-button-prev {
   background: url(./../images/top/crosstalk-prev.webp) no-repeat center;
   background-size: 100%;
   height: 4rem;
   left: -6rem;
   transform: translateY(-50%);
   width: 2rem;
}

.p-topRecruit__slider .swiper-button-next {
   top: 40% !important;
}

.p-topRecruit__slider .swiper-button-next {
   background: url(./../images/top/crosstalk-next.webp) no-repeat center;
   background-size: 100%;
   height: 4rem;
   right: -6rem;
   transform: translateY(-50%);
   width: 2rem;
}

.p-topRecruit__slider .swiper-pagination {
   bottom: -3.5rem;
   display: flex;
   gap: 0 3rem;
   justify-content: center;
}

.p-topRecruit__slider .swiper-pagination-bullet {
   background: none;
   color: #80A1B6;
   font-size: max(16px, 2.1rem);
   letter-spacing: 0.36em;
   opacity: 1;
}

.p-topRecruit__slider .swiper-pagination-bullet-active {
   color: #fff;
}

.p-topRecruit__link {
   border-bottom: 1px solid #fff;
   color: #fff;
   font-size: max(13px, 1.4rem);
   letter-spacing: 0.36em;
   margin: 10rem auto 0;
   padding-bottom: 0.9rem;
   text-align: center;
   width: -moz-fit-content;
   width: fit-content;
}

.p-topRecruit__link:hover {
   border-color: #80A1B6;
   color: #80A1B6;
}

.p-topRecruit__bottom {
   padding-bottom: 12rem;
}

.p-topRecruit__table {
   background: #fff;
   border-radius: 2rem;
   padding: 10rem 9.5rem;
}

.p-topRecruit__point {
   align-items: center;
   border-top: 1px solid #D6D8DA;
   display: flex;
   justify-content: space-between;
   padding: 4rem 0;
}

.p-topRecruit__point:first-child {
   border-top: none;
   padding-top: 0;
}

.p-topRecruit__point:last-child {
   padding-bottom: 0;
}

.p-topRecruit__point dt {
   align-items: center;
   display: flex;
   flex: 1;
}

.p-topRecruit__point-number {
   border-right: 1px solid #112443;
   font-family: "Lato", sans-serif;
   font-size: 4.8rem;
   font-weight: 400;
   letter-spacing: 0.12em;
   line-height: 1;
   padding: 1.5rem 4.2rem 1.5rem 0;
}

.p-topRecruit__point-number span {
   display: block;
   font-size: 1.6rem;
   letter-spacing: 0;
   letter-spacing: 0.05em;
   margin-bottom: 0.6rem;
   padding-left: 0.3rem;
   text-transform: uppercase;
}

.p-topRecruit__point-ttl {
   font-size: 2.4rem;
   font-weight: 700;
   letter-spacing: 0.36em;
   line-height: 1.5;
   padding-left: 5rem;
}

.p-topRecruit__point-ttl span {
   color: #3F8091;
}

.p-topRecruit__point dd {
   width: 41rem;
}

.p-topRecruit__info {
   margin-top: -2.5rem;
}

/*
 * p-topWorks  実績ページ
 * -------------------------------------------------------------
 */

.p-topWorks {
   background: #d6d8da;
   border-radius: 2rem;
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.05);
   padding: 12rem 0;
}

.p-topWorks__inner {
   align-items: center;
   display: flex;
   gap: 0 12rem;
   justify-content: space-between;
   margin: 0 auto;
   max-width: 148rem;
}

.p-topWorks__slider {
   flex: 1;
   position: relative;
}

.p-topWorks__slider .topWorks-swiper {
   border-radius: 2rem;
   overflow: hidden;
   position: relative;
   width: 100rem;
}

.p-topWorks__slider .swiper-slide {
   border-radius: 2rem;
   overflow: hidden;
}

.p-topWorks__slider img {
   -o-object-fit: cover;
   aspect-ratio: 320/420;
   border-radius: 2rem;
   height: 100%;
   object-fit: cover;
}

.p-topWorks__slider .swiper-button-prev,
.p-topWorks__slider .swiper-button-next {
   height: 4rem;
   top: 55%;
   transform: translateY(-50%);
   width: 2rem;
   z-index: 1;
}

.p-topWorks__slider .swiper-button-prev {
   background: url(./../images/top/works_prev.webp) no-repeat center;
   background-size: 100%;
   left: -5rem;
}

.p-topWorks__slider .swiper-button-next {
   background: url(./../images/top/works_next.webp) no-repeat center;
   background-size: 100%;
   right: -5rem;
}

.p-topWorks__body {
   width: 37rem;
}

.p-topWorks__lead-txt {
   font-size: 2.4rem;
   letter-spacing: 0.36em;
   line-height: 1.5;
   margin-top: 2.6rem;
}

.p-topWorks__lead-txt span {
   background: #fff;
   display: inline-block;
   padding: 0.2rem 1rem;
}

.p-topWorks__txt {
   margin-top: 3rem;
}

.p-topWorks__link {
   margin-top: 3rem;
}

/*
 * p-works  実績 WORKS ページ
 * -------------------------------------------------------------
 */

.p-works {
   background: #E4E6E8;
   border-radius: 6rem;
   padding: 8rem 0 10rem;
}

.p-works__items {
   grid-gap: 5.7rem 5rem;
   counter-reset: number 0;
   display: grid;
   gap: 5.7rem 5rem;
   grid-template-columns: repeat(3, 1fr);
}

.p-works__img {
   aspect-ratio: 460/360;
   border-radius: 1rem;
   overflow: hidden;
}

.p-works__img img {
   -o-object-fit: cover;
   height: 100%;
   object-fit: cover;
}

.p-works__body {
   padding-top: 2.2rem;
}

.p-works__ttl {
   font-size: 2.4rem;
   letter-spacing: 0.36em;
   line-height: 1.5;
}

.p-works__ttl::before {
   content: counter(number) ".";
   counter-increment: number 1;
   font-family: "Lato", sans-serif;
   font-weight: 400;
   font-size: 4.8rem;
   letter-spacing: 0.36em;
   line-height: 1;
}

.p-works__note {
   font-size: 1.6rem;
   letter-spacing: 0.12em;
   margin-top: 7.8rem;
   text-align: center;
}

/*
 * p-worksInfo
 * -------------------------------------------------------------
 */

.p-worksInfo {
   padding: 18rem 0 12.5rem;
}

@media screen and (min-width: 1025px) {

   a[href^="tel:"] {
      pointer-events: none;
   }

}

@media screen and (max-width: 1024px) {

   .l-inner--page {
      padding: 0 4rem;
   }

   .p-header__nav-item {
      display: none;
   }

   .p-recruit-dis {
      padding-top: 46rem;
   }

   .p-recruit-dis__img-fix3 {
      background-position-x: -101rem;
   }

   .p-recruit-dis__img-fix4 {
      background-position-x: -84rem;
   }

   .p-recruit-dis__img-fix7 {
      background-position-x: -100rem;
   }

}

@media screen and (max-width: 780px) {

   html {
      font-size: 1.282051282vw;
   }

   .l-inner--page {
      padding: 0 3rem;
   }

   .l-topBody::before {
      right: 2rem;
      top: -178.7rem;
      width: 11.7rem;
   }

   .l-topBody::after {
      background: url(./../images/top/shinei-gumi_side_logo.webp) no-repeat center;
      background-size: 100%;
      bottom: -412rem;
      content: "";
      display: block;
      height: 99%;
      position: absolute;
      right: 2rem;
      width: 11.7rem;
      z-index: -1;
   }

   .c-info__txt {
      font-size: 3.6rem;
      line-height: 1.33;
   }

   .c-info__flex {
      flex-direction: column;
      gap: 3.6rem 0;
      margin-top: 3rem;
   }

   .c-info__flex--gap28 {
      gap: 2.8rem 0;
   }

   .c-info__tel {
      font-size: 4.8rem;
   }

   .c-info__contact {
      font-size: 2.4rem;
      padding: 2.5rem 2rem 2.7rem 6.5rem;
      width: 44rem;
   }

   .c-link {
      font-size: 2.4rem;
      padding-bottom: 1.5rem;
   }

   .c-section-engttl {
      font-size: 3.6rem;
   }

   .c-table__table {
      font-size: 2.4rem;
      line-height: 2;
   }

   .c-table__table dt {
      width: 15rem;
   }

   .c-table__flex:last-child dt,
   .c-table__flex:last-child dd {
      padding-bottom: 6rem;
   }

   .c-table__table dd {
      padding-left: 3rem;
   }

   .c-txt {
      font-size: 2.4rem;
      line-height: 2;
   }

   .u-pc {
      display: none;
   }

   .u-sp {
      display: block;
   }

   .p-about__item {
      border-radius: 2rem;
      flex-direction: column;
      gap: 5rem 0;
      padding: 3rem 3rem 10rem;
   }

   .p-about__img {
      width: 100%;
   }

   .p-about__img img {
      aspect-ratio: 330/380;
      max-width: 33rem;
   }

   .p-about__img--lg img {
      aspect-ratio: 680/380;
      max-width: 100%;
   }

   .p-about__copy {
      bottom: -6.1rem;
      font-size: 9.6rem;
      left: auto;
      left: initial;
      right: -2.8rem;
   }

   .p-about__body {
      width: 100%;
   }

   .p-about__ttl {
      font-size: 4.8rem;
      margin-top: 1.8rem;
      padding: 1rem 0rem 1.2rem 1.4rem;
   }

   .p-about__item.--reverse {
      flex-direction: column;
      gap: 5rem 0;
   }

   .p-about__greeting {
      flex-direction: column;
      gap: 0;
      margin-top: 8rem;
      max-width: 100%;
      padding: 11rem 3rem 23rem;
   }

   .p-about__greeting-img {
      aspect-ratio: 640/380;
      order: 2;
      width: 100%;
   }

   .p-about__greeting-body {
      display: contents;
   }

   .p-about__greeting-ttl {
      font-size: 2.4rem;
      margin: 0 auto;
      order: 1;
   }

   .p-about__greeting-desc {
      margin-top: 10rem;
      /* max-width: 63.6rem; */
      max-width: 100%;
      order: 3;
      padding: 0 1.8rem;
   }

   .p-about__greeting-lead {
      font-size: 3rem;
   }

   .p-about__greeting-txt {
      margin-top: 6rem;
   }

   .p-company {
      margin-top: 9rem;
   }

   .p-company__table {
      padding: 10rem 7rem 8rem;
   }

   .p-company__map {
      aspect-ratio: 700/480;
   }

   .p-company__address {
      margin-top: 5rem;
   }

   .p-company__info-link {
      margin-top: 3.5rem;
   }

   .p-company__info-info {
      padding: 14.5rem 0 10rem;
   }

   .p-contact {
      padding: 9.5rem 0 11.5rem;
   }

   .p-contact__txt {
      font-size: 2.4rem;
   }

   .p-contact__txt.--space {
      margin-top: 2.5rem;
   }

   .p-contact__tel {
      font-size: 6.4rem;
      margin-top: 2.5rem;
   }

   .p-contact__form {
      margin-top: 9rem;
      padding: 10rem 5rem 11.5rem;
   }

   .p-contact__form-header {
      margin-bottom: 9rem;
   }

   .p-contact__note {
      line-height: 1.75;
      margin-top: 6rem;
   }

   .p-confirm__txt {
      margin-top: 7rem;
   }

   .p-confirm__form dd {
      padding-top: 0;
   }

   .p-submit__inner {
      padding: 9rem 0;
   }

   .p-submit__txt {
      font-size: 2.3rem;
      line-height: 2;
   }

   .p-submit__bottom {
      padding: 9rem 0;
   }

   .p-copyright {
      font-size: 1.4rem;
      left: -7.2rem;
   }

   .p-drawerNav {
      flex-direction: column;
      height: 100%;
   }

   .p-drawerNav__img {
      aspect-ratio: 78/64;
      width: 100%;
      min-height: auto;
      height: 38%;
   }

   .p-drawerNav__items {
      aspect-ratio: unset;
      padding: 6rem 6rem 7rem;
      width: 100%;
   }

   .p-drawerNav__item:not(:nth-child(1)) {
      margin-top: 4rem;
   }

   .p-drawerNav__item a {
      font-size: 3.2rem;
      gap: 0 7rem;
      padding: 2.8rem 6rem 3.6rem;
   }

   .p-drawerNav__eng {
      font-size: 2.4rem;
   }

   .p-drawerNav__sns a {
      gap: 0 2.8rem;
      margin-top: 5rem;
   }

   .p-drawerNav__sns a::before {
      height: 3rem;
      width: 3rem;
   }

   .p-form {
      font-size: 2.4rem;
   }

   .p-form__item {
      flex-direction: column;
      gap: 2rem 0;
   }

   .p-form__item dt {
      padding-top: 0;
      width: 100%;
      min-width: 100%;
   }

   .p-form__item dt sup {
      font-size: 2.4rem;
      margin-left: 0.8rem;
   }

   .p-form__item dd {
      margin-left: 1em;
   }

   .p-form__item:not(:nth-child(1)) dd {
      margin-top: 0;
   }


   .p-form input {
      padding: 1.2rem 3rem 1.5rem;
   }

   .p-form__btn {
      margin-top: 7rem;
   }

   .p-form__btn .c-link {
      font-size: 3.2rem;
   }

   [type=radio]+span::before {
      height: 2.1rem;
      width: 2.1rem;
   }

   [type=radio]:checked+span::after {
      height: 1.17rem;
      left: 0.5rem;
      width: 1.17rem;
   }

   .p-footer {
      border-radius: 6rem 6rem 0 0;
      margin: 0 auto;
      max-width: 74rem;
      padding: 8rem 0;
   }

   .p-footer__inner {
      flex-direction: column;
      gap: 5.2rem 0;
      padding: 0 6rem;
   }

   .p-footer__info {
      justify-content: center;
   }

   .p-footer__logo {
      width: 10rem;
   }

   .p-footer__address {
      font-size: 2.4rem;
   }

   .p-footer__nav {
      gap: 0 9rem;
   }

   .p-footer__nav-items {
      gap: 3.2rem 0;
      padding: 2.7rem 0 2.7rem 3rem;
   }

   .p-footer__nav-item a {
      font-size: 2.4rem;
   }

   .p-footer__nav-item a::before {
      margin-right: 2rem;
   }

   .p-header {
      height: 15rem;
   }

   .p-header__inner {
      padding: 4rem 5rem 0;
   }

   .p-header__logo {
      width: 28rem;
   }

   .p-header__nav {
      flex: auto;
      gap: 0 3.5rem;
      margin-left: auto;
   }

   .p-header__nav-sns {
      width: 3rem;
   }

   .p-header__nav-sns a:hover {
      height: 1.5rem;
      height: 3rem;
      width: 1.5rem;
      width: 3rem;
   }

   .p-menu-btn {
      height: 7rem;
      padding: 2rem;
      width: 7rem;
   }

   .p-menu-btn span {
      width: 2.8rem;
   }

   .p-menu-btn span:nth-child(1) {
      top: 32%;
   }

   .p-menu-btn span.is-open {
      background: #fff;
   }

   .p-mv {
      padding: 0 2rem;
   }

   .p-mv__inner {
      padding-top: 18rem;
   }

   .p-mv__logo {
      top: 55.5%;
      width: 20rem;
   }

   .p-mv__slide {
      flex-direction: column;
      gap: 2rem 0;
   }

   .p-mv__left {
      margin-top: 0;
   }

   .p-mv__left,
   .p-mv__right {
      aspect-ratio: 740/680;
      width: 100%;
   }

   .p-mv__slide img {
      min-height: auto;
   }

   .p-pageDesc {
      flex-direction: column;
      gap: 4rem 0;
      padding: 10rem 2rem 14rem;
      width: 100%;
   }

   .p-pageDesc__txt {
      width: 100%;
   }

   .p-pageInfo {
      padding: 17rem 0 10rem;
      width: 100%;
   }

   .p-pageMv {
      padding: 28rem 2rem 0;
   }

   .p-pageMv__inner {
      flex-direction: column;
      gap: 14.3rem 0;
   }

   .p-pageMv__header {
      align-items: flex-start;
      gap: 0;
      justify-content: center;
      padding: 0;
      position: relative;
   }

   .p-pageMv__jattl {
      font-size: 6.4rem;
   }

   .p-pageMv__engttl {
      font-size: 3.2rem;
      left: 57%;
      position: absolute;
   }

   .p-pageMv__img {
      aspect-ratio: 740/400;
      width: 100%;
   }

   .p-popup {
      padding: 10rem 0 22.5rem;
   }

   .p-popup__contents {
      width: 70rem;
   }

   .p-recruit-app {
      margin-top: 11rem;
      padding: 10rem 7rem 8rem;
   }

   .p-recruit-dis {
      padding: 40.6rem 0 16rem;
   }

   .p-recruit-dis__items {
      gap: 24rem 0;
   }

   .p-recruit-dis__item {
      flex-direction: column;
      gap: 10rem 0;
   }

   .p-recruit-dis__talk {
      width: 100%;
   }

   .p-recruit-dis__engttl {
      font-size: 3.6rem;
   }

   .p-recruit-dis__ttl {
      font-size: 4.8rem;
      padding: 0.6rem 0 0.9rem 2rem;
   }

   .p-recruit-dis__table {
      font-size: 2.4rem;
      gap: 1.7rem 0;
      line-height: 1.5;
      margin-top: 5rem;
   }

   .p-recruit-dis__table-flex {
      gap: 0 3rem;
   }

   .p-recruit-dis__table dt {
      width: 10rem;
   }

   .p-recruit-dis__table dt::before {
      height: 10rem;
   }

   .p-recruit-dis__table dt span {
      font-size: 2rem;
      line-height: 1.4;
   }

   .p-recruit-dis__table dd {
      line-height: 1.55;
      padding-top: 1rem;
   }

   .p-recruit-dis__img {
      width: 100%;
      aspect-ratio: 680/980;
   }

   .p-recruit-dis__img-fix {
      background-attachment: scroll;
      height: 100%;
      min-width: 100%;
      width: 100%;
   }

   .p-recruit-dis__img-fix1 {
      background-position-x: center;
      background-size: cover;
      height: 100%;
      width: 100%;
   }

   .p-recruit-dis__img-fix2 {
      background-position-x: center;
      background-size: cover;
      height: 100%;
      width: 100%;
   }

   .p-recruit-dis__img-fix3 {
      background-position-x: center;
      background-position: top;
      background-size: cover;
      height: 100%;
      width: 100%;
   }

   .p-recruit-dis__img-fix4 {
      background-position-x: -49rem;
      background-size: cover;
      height: 100%;
      width: 100%;
   }

   .p-recruit-dis__img-fix5 {
      background-position-x: center;
      background-position: top;
      background-size: cover;
      height: 100%;
      width: 100%;
   }

   .p-recruit-dis__img-fix6 {
      background-position-x: left;
      background-size: cover;
      height: 100%;
      width: 100%;
   }

   .p-recruit-dis__img-fix7 {
      background-position-x: center;
      background-position: top;
      background-size: cover;
      height: 100%;
      width: 100%;
   }

   .p-recruit-dis__img-fix8 {
      background-position-x: -32rem;
      background-size: cover;
      height: 100%;
      width: 100%;
   }

   .p-recruit-dis__item.--reverse {
      flex-direction: column;
      gap: 8rem 0;
   }

   .p-recruit-info {
      padding: 32rem 0 16rem;
   }

   .p-recruit-speaker__inner {
      max-width: 66rem;
   }

   .p-recruit-speaker__items {
      gap: 0 1rem;
      margin-top: 6.8rem;
   }

   .p-recruit-speaker__item {
      width: calc((100% - 2rem) / 3);
   }

   .p-recruit-speaker__img {
      height: 20rem;
      width: 20rem;
   }

   .p-recruit-speaker__name {
      font-size: 2.8rem;
   }

   .p-recruit-speaker__engname {
      font-size: 1.6rem;
   }

   .p-recruit-speaker__date {
      font-size: 2rem;
      margin-top: 1.5rem;
   }

   .p-recruit-speaker__desc {
      font-size: 2rem;
      line-height: 1.2;
      padding: 1.5rem 1rem;
   }

   .p-recruit__ttl {
      font-size: 6.4rem;
      margin: 5rem auto 0;
      padding: 1.8rem 0;
   }

   .p-sns {
      padding: 8rem 0 9rem;
   }

   .p-sns__slide img {
      transform: scale(1.1);
   }

   .p-sns__slide.--small img {
      transform: scale(0.85);
   }

   .p-sns__link .c-link {
      gap: 0 2rem;
      margin-top: 7rem;
   }

   .p-sns__link .c-link::before {
      height: 2.7rem;
      width: 2.7rem;
   }

   .p-topAbout {
      padding: 21rem 0 8.5rem;
   }

   .p-topAbout__inner {
      left: auto;
      left: initial;
   }

   .p-topAbout__contents {
      flex-direction: column-reverse;
      gap: 8rem 0;
   }

   .p-topAbout__text-block {
      max-width: 100%;
   }

   .p-topAbout__lead-txt {
      font-size: 3.3rem;
      line-height: 1.6;
      margin-top: 3rem;
   }

   .p-topAbout__lead-txt span {
      padding: 0.2rem 0 0.3rem 1.6rem;
   }

   .p-topAbout__ttl-block {
      align-items: center;
      display: grid;
      justify-items: center;
      place-items: center;
      position: static;
   }

   .p-topAbout__link {
      margin-top: 4.5rem;
   }

   .p-topCompany {
      padding: 19.5rem 0 13.4rem;
   }

   .p-topCompany__lead {
      font-size: 3.4rem;
      margin-top: 8rem;
   }

   .p-topCompany__link {
      margin-top: 10rem;
   }

   .p-topCompany__info {
      margin-top: 6.5rem;
   }

   .p-topCompany__img {
      top: -4rem;
   }

   .p-topRecruit {
      background: linear-gradient(#3F8091 44%, #D6D8DA 0);
   }

   .p-topRecruit__slider img {
      aspect-ratio: 640/350;
   }

   .p-topRecruit__slide-ttl {
      line-height: 1.75;
      padding-top: 5rem;
   }

   .p-topRecruit__slide-ttl::before {
      left: -7rem;
      top: 4.5rem;
   }

   .p-topRecruit__slide-ttl::after {
      right: -6rem;
      top: 4.5rem;
   }

   .p-topRecruit__slider .swiper-button-prev {
      display: none;
   }

   .p-topRecruit__slider .swiper-button-next {
      display: none;
   }

   .p-topRecruit__slider .swiper-pagination {
      bottom: -7rem;
      gap: 0 4.5rem;
   }

   .p-topRecruit__slider .swiper-pagination-bullet {
      font-size: 3.2rem;
   }

   .p-topRecruit__link {
      font-size: 2.4rem;
      margin-top: 18rem;
      padding-bottom: 1.5rem;
   }

   .p-topRecruit__bottom {
      padding-bottom: 15rem;
   }

   .p-topRecruit__table {
      padding: 10rem 5rem;
   }

   .p-topRecruit__point {
      align-items: flex-start;
      flex-direction: column;
      gap: 3rem 0;
      padding: 6rem 0 5rem;
   }

   .p-topRecruit__point-number {
      font-size: 6rem;
      padding: 2.2rem 5rem 2.2rem 1.5rem;
   }

   .p-topRecruit__point-number span {
      font-size: 2rem;
      margin-bottom: 1.6rem;
   }

   .p-topRecruit__point-ttl {
      font-size: 3rem;
      padding-left: 4.5rem;
   }

   .p-topRecruit__point dd {
      width: 100%;
   }

   .p-topWorks {
      padding: 7rem 0 15.4rem;
   }

   .p-topWorks__inner {
      flex-direction: column;
      gap: 7.5rem 0;
   }

   .p-topWorks__slider {
      width: 100%;
   }

   .p-topWorks__slider .topWorks-swiper {
      margin: 0 auto;
      width: 64rem;
   }

   .p-topWorks__slider img {
      aspect-ratio: 310/420;
   }

   .p-topWorks__slider .swiper-button-prev {
      left: 1.3rem;
   }

   .p-topWorks__slider .swiper-button-next {
      right: 1.3rem;
   }

   .p-topWorks__body {
      width: calc(100% - 6rem);
   }

   .p-topWorks__lead-txt {
      font-size: 3.4rem;
      margin-top: 3.5rem;
   }

   .p-topWorks__txt {
      margin-top: 3.5rem;
   }

   .p-topWorks__link {
      margin-top: 6.5rem;
   }

   .p-works {
      border-radius: 2rem;
      padding: 3rem 0 10rem;
   }

   .p-works__items {
      gap: 3.8rem 3rem;
      grid-template-columns: repeat(2, 1fr);
   }

   .p-works__img {
      aspect-ratio: 325/250;
   }

   .p-works__body {
      padding-top: 1.7rem;
   }

   .p-works__note {
      margin-top: 5.7rem;
   }
}

@media screen and (max-width: 600px) {

   .p-popup {
      height: 100svh;
      padding: 0;
   }

   .p-popup__contents {
      left: 50%;
      position: absolute;
      top: 50%;
      transform: translate(-50%, -50%);
   }

   .p-recruit-dis__img-fix8 {
      background-position-x: -68rem;
   }
}

@keyframes fadeIn {

   0% {
      opacity: 0;
      transform: translateY(50px);
   }

   100% {
      opacity: 1;
      transform: translateY(0);
   }

}

@keyframes u-fadeIn {

   0% {
      opacity: 0;
      transform: translate3d(0, 30px, 0);
   }

   100% {
      opacity: 1;
      transform: translate3d(0, 0, 0);
   }

}

@keyframes pageMv-slide-bg {

   0% {
      transform: translate(-100%, 0);
   }

   50% {
      transform: translate(0, 0);
   }

   100% {
      transform: translate(100%, 0);
   }

}

@keyframes pageMv-slide {

   0% {
      transform: translate(-100%, 0);
   }

   50% {
      transform: translate(0, 0);
   }

   100% {
      transform: translate(0, 0);
   }

}


/*# sourceMappingURL=style.css.map */