/*==================================================
# 共通
==================================================*/
html {
    scroll-behavior: smooth;
    scroll-padding-top: 140px;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, calc((16 * 100vw) / 1440), 16px);
    letter-spacing: calc(0.64 / 16 * 1em);
    color: #242528;
}

.js-fadeIn {
    opacity: 0;
    transition: all 1s ease 0s;
    transform: translateY(20px);
}

.is-fixed {
    overflow: hidden;
}

.sp-only {
    display: none;
}

.u-tab-show {
    display: none;
}

.common-inner {
    max-width: 1060px;
    margin: 0 auto;
    padding: 0 30px;
}

.common-wide-inner {
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 30px;
}


@media screen and (max-width: 1024px) {
    .u-tab-show {
        display: block;
    }

    .u-tab-none {
        display: none;
    }
}

@media screen and (max-width: 767px) {
    .sp-only {
        display: block;
    }

    .pc-only {
        display: none;
    }

    .common-inner, .common-wide-inner {
        padding: 0 20px;
    }
}

/* セクションタイトル */
.common-section-header {
    text-align: center;
    position: relative;
    z-index: 1;
}

.common-section-header--left {
    text-align: left;
}

.common-section-header__heading {
    color: #012C7B;
    font-size: 50px;
    font-weight: 700;
    line-height: calc(54 / 50 * 1em);
    letter-spacing: calc(12 / 50 * 1em);
    text-align: center;
}

.common-section-header--contact .common-section-header__heading {
    color: #fff;
}

.common-section-header--left .common-section-header__heading {
    text-align: left;
}

.common-section-header__heading-en {
    color: #EEF3F9;
    font-family: "Inter", sans-serif;
    font-size: 133px;
    font-weight: 600;
    line-height: calc(120 / 133 * 1em);
    letter-spacing: calc(3.99 / 133 * 1em);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
}

.common-section-header--left .common-section-header__heading-en {
    left: 0;
    transform: translate(0, -50%);
}

.common-section-header__heading-en--recruit {
    color: rgba(238, 243, 249, 0.60);
}

.common-section-header--contact .common-section-header__heading-en {
    color: rgba(255, 255, 255, 0.20);
}

.common-section-header__heading-en--white {
    color: #fff;
}

@media screen and (max-width: 1024px) {
    .common-section-header__heading {
        font-size: clamp(24px, calc((50 * 100vw) / 1024), 50px);
    }
    
    .common-section-header__heading-en {
        font-size: clamp(70px, calc((133 * 100vw) / 1024), 133px);
    }
    
}

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

/* ボタン */
.common-btn, .p-404 .common-btn {
    display: grid;
    place-items: center;
    width: fit-content;
    padding: 20px 50px;
    border-radius: 128px;
    border: 1px solid #C83D43;
    background: #FFF;
    color: #C83D43;
    transition: all 0.3s ease 0s;
    text-decoration: none;
}



.common-btn__text {
    text-align: center;
    font-weight: 700;
    line-height: calc(16 / 16 * 1em);
    letter-spacing: calc(2.08 / 16 * 1em);
    position: relative;
}

.common-btn__text:before{
    content: "";
    position: absolute;
    top: 50%;
    right: -23px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #C83D43;
    border-right: 2px solid #C83D43;
    transform: translateY(-50%) rotate(45deg);
    transition: .3s;
}

.common-btn:hover {
    background: #C83D43;
    color: #fff;
}

.common-btn:hover .common-btn__text:before {
    border-color: #fff;
}

@media screen and (max-width: 767px) {
    .common-btn {
        padding: 16px 32px;
    }

    .common-btn__text:before {
        right: -16px;
    }
}

/* お問い合わせ */
.common-contact {
    padding: 120px 0 100px;
    background: linear-gradient(358deg, #012C7B 3.14%, #003BA7 98.11%);
}

.common-contact__text {
    margin-top: 80px;
    color: #fff;
    text-align: center;
    font-weight: 600;
    line-height: calc(40 / 16 * 1em);
    letter-spacing: calc(3.84 / 16 * 1em);
}

.common-contact__btn-wrap {
    margin: 48px auto 0;
    width: fit-content;
}

.common-contact-btn {
    border-radius: 128px;
    background: #C83D43;
    border: 1px solid #C83D43;
    color: #FFF;
    text-align: center;
    font-weight: 700;
    line-height: calc(16 / 16 * 1em);
    letter-spacing:calc(0.32 / 16 * 1em);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 26px 32px 26px 62px;
    width: fit-content;
    transition: all 0.3s ease 0s;
    position: relative;
    transition: all 0.3s ease 0s;
}


.common-contact-btn::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 32px;
    width: 25px;
    height: 17px;
    transform: translateY(-50%);
    background: url(../img/common/icon_mail.svg) no-repeat center center /contain;
    transition: all 0.3s ease 0s;
}

.common-contact-btn:hover::before {
    background: url(../img/common/icon_mail_red.svg) no-repeat center center /contain;
}

.common-contact-btn:hover {
    background: #fff;
    color: #C83D43;
    border: 1px solid #C83D43;
}

@media screen and (max-width: 1200px) {
    .common-contact-btn {
        padding: clamp(20px, calc((26 * 100vw) / 1200), 26px) clamp(20px, calc((32 * 100vw) / 1200), 32px) clamp(20px, calc((26 * 100vw) / 1200), 26px) clamp(52px, calc((62 * 100vw) / 1200), 62px);
    }

}

@media screen and (max-width: 767px) {
    .common-contact {
        padding: 80px 0 60px;
    }
}


/* パンくずリスト */

.common-breadcrumb {
    margin-top: 62px;
}

.common-breadcrumb .post {
    margin-left: 10px;
}

.common-breadcrumb span>a {
    padding: 0 10px;
}

.common-breadcrumb span {
    font-size: 14px;
}

.common-breadcrumb span a.home {
    width: 17px;
    height: 17px;
    display: inline-block;
    padding-left: 0;
    background: url(../img/common/icon_home.svg) no-repeat center center /contain;
    position: relative;
    top: 2px;
    margin-right: 10px;
}

.common-breadcrumb .current-item {
    margin-left: 10px;
}

@media screen and (max-width: 767px) {
    .common-breadcrumb {
        margin-top: 40px;
    }
}

/* お問い合わせフォーム */
.common-form {
}
  
.common-form__field+ .common-form__field {
    margin-top: 36px;
}

.common-form__field--privacy {
    margin-top: 42px;
}

.common-form__field {
    display: flex;
    gap: 44px;
    justify-content: center;
}


.common-form__required {
    color: #FFF;
    font-weight: 700;
    line-height: calc(31 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
    padding: 0 14px;
    background: #C83D43;
}

.common-form__label {
    width: calc(423 / 1000 * 100%);
    padding-top: 10px;
}

.common-form__label label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 700;
}

.common-form__data {
    width: calc(533 / 1000 * 100%);
}

.common-form__textarea {
    height: 153px;
}

.common-form__input, .common-form__textarea {
    width: 100%;
    padding: 18px 12px;
    border: 1px solid #A2A2A2;
    background: #FFF;
    font-weight: 700;
    appearance: none;
    border-radius: 0;
}

.common-form__select {
    width: 100%;
    padding: 18px 56px 18px 12px;
    color: #242528;
    border: 1px solid #A2A2A2;
    appearance: none;
    font-weight: 700;
    border-radius: 0;
    background:
      url(../img/common/icon_select-arrow.svg) no-repeat right 16px center / 24px,
      #FFF;
}

.common-form__input::placeholder, .common-form__textarea::placeholder {
    color: #E7E7E7;
}

.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    border: 0;
    white-space: nowrap;
  }

.common-form__data-acceptance {
    text-align: center;
}

.common-form__field--privacy .wpcf7-list-item-label {
    border-bottom: 1px solid #242528;
    padding-bottom: 4px;
    font-weight: 700;
    display: inline-block;
}

.common-form__field--privacy .wpcf7-list-item-label a {
    font-weight: 700;
    transition: all 0.3s ease 0s;
}

.common-form__field--privacy .wpcf7-list-item-label a:hover {
    opacity: 0.7;
}

.wpcf7-form-control-wrap .wpcf7-list-item-label {
    position: relative;
    display: inline-block;
}

.wpcf7-form-control-wrap .wpcf7-list-item-label::before {
    position: absolute;
    top: 4px;
    left: -24px;
    width: 16px;
    height: 16px;
    content: "";
    border: 1px solid #333;
    background-color: #fff;
}

.wpcf7-form-control-wrap .wpcf7-list-item-label::after {
    position: absolute;
    top: 9.25px;
    left: -21px;
    width: 10px;
    height: 5px;
    content: "";
    transform: rotate(-45deg);
    opacity: 0;
    border-bottom: 2px solid #000;
    border-left: 2px solid #000;
}

.common-form__data-select input[type="checkbox"], .common-form__checkbox {
    width: 1px;
    height: 1px;
    position: absolute;
    clip: rect(0, 0, 0, 0);
    overflow: hidden;
}

.common-form__data-select input[type="checkbox"]:checked + .wpcf7-list-item-label::after,
.common-form__checkbox:checked + .wpcf7-list-item-label::after {
    opacity: 1;
}


.common-form__submit-button {
    margin: 50px auto 0;
    text-align: center;
    position: relative;
    width: 250px;
}

.common-form__submit-button::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #C83D43;
    border-right: 2px solid #C83D43;
    transform: translateY(-50%) rotate(45deg);
    transition: .3s;
    z-index: 1;
}

.common-form__submit-button:hover::before {
    border-color: #fff;
}


.common-form__submit-input {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 60px;
    border-radius: 128px;
    border: 1px solid #C83D43;
    background: #fff;
    color: #C83D43;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.13em;
    cursor: pointer;
    transition: all 0.3s ease;
}

.common-form__submit-input:hover {
    background: #C83D43;
    color: #fff;
}

span.wpcf7-spinner {
    display: none;
  }



  @media screen and (max-width: 767px) {
    .common-form__field {
        flex-direction: column;
        gap: 16px;
    }

    .common-form__label {
        width: 100%;
    }

    .common-form__label label {
        justify-content: flex-start;
        gap: 16px;
    }

    .common-form__data {
        width: 100%;

    }

    .common-form__select {
        background: url(../img/common/icon_select-arrow.svg) no-repeat right 16px center / 20px, #FFF;
    }
  }

  /* 固定ページFV */
  .common-page-fv {  
    height: 558px;
  }
  
  .common-page-fv__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    height: 100%;
    position: relative;
  }
  
  .common-page-fv__content {
    text-align: center;
  
  }
  
  .common-page-fv__heading {
    color: #FFF;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.45);
    font-size: 60px;
    font-weight: 700;
    line-height: calc(90 / 60 * 1em);
    letter-spacing: calc(6 / 60 * 1em);  
  }
  
  .common-page-fv__heading-en {
    color: #FFF;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.45);
    font-family: "Cormorant Garamond", serif;
    font-size: 32px;
    font-weight: 700;
    line-height: calc(60 / 32 * 1em);
    letter-spacing: calc(2.24 / 32 * 1em);
  }
  
  .common-page-fv__list {
    position: absolute;
    bottom: 38px;
    left: 30px;
    display: flex;
    gap: 10px;
  }
  
  .common-page-fv__item {
  
  }
  
  .common-page-fv__link {
    color: #FFF;
    text-align: center;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.45);
    font-weight: 500;
    letter-spacing: calc(0.64 / 16 * 1em);
    display: block;
    padding: 10px;
  
  }

  @media screen and (max-width: 1024px) {
    .common-page-fv__heading {
        font-size: clamp(30px, calc((60 * 100vw) / 1024), 60px);
    }

    .common-page-fv__heading-en {
        font-size: clamp(20px, calc((32 * 100vw) / 1024), 32px);
    }
    
  }
  
  @media screen and (max-width: 767px) {
    .common-page-fv {
        height: 300px;
    }

    .common-page-fv__list {
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        bottom: 20px;
        flex-wrap: wrap;
        gap: 10px;
    }

    .common-page-fv__item {
        width: calc(50% - 5px);
    }

    .common-page-fv__link {
        line-height: 1;
    }
  }

/*==================================================
# ヘッダー
==================================================*/
.header {
    padding: 14px 0;
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1000;
    transition: top 0.3s ease 0s;
    width: 100%;
    background-color: #fff;
}

.header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header__logo {
    max-width: 200px;
}

.header__logo-link {
    transition: all 0.3s ease 0s;
    display: block;
}

.header__logo-link:hover {
    opacity: 0.7;
}

.header__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.header__nav-list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.header__nav-item {
}

.header__nav-link {
    transition: all 0.3s ease 0s;
    padding: 10px;
}

.header__nav-link:hover {
    opacity: 0.7;
}

.header__cta {
    display: flex;
    gap: 20px;
    align-items: center;
}

.header__tel-link {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #012C7B;
    font-size: 34px;
    line-height: 1;
letter-spacing: calc(1 / 34 * 1em);
transition: all 0.3s ease 0s;
}

.header__tel-link:hover {
    opacity: 0.7;
}

.header__tel-text-sub {
    display: block;
    margin-top: 7px;
    text-align: center;
    font-size: 14px;
}

.header__contact {

}

.header__contact-btn {
    min-width: 280px;
}

.header__drawerIcon {
    width: 56px;
    height: 56px;
    transition: all 0.3s;
    position: relative;
    z-index: 1000;
  }
  
  .header__drawerIcon.open .header__drawerIconBar:nth-child(1) {
    top: 23px;
    transform: translateX(-50%) rotate(45deg);
  }
  .header__drawerIcon.open .header__drawerIconBar:nth-child(2) {
    opacity: 0;
  }
  .header__drawerIcon.open .header__drawerIconBar:nth-child(3) {
    top: 23px;
    transform: translateX(-50%) rotate(-45deg);
  }
  
  .header__drawerIconBar {
    width: 33px;
    height: 2px;
    background-color: #012C7B;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    transition: all 0.3s;
  }
  
  .header__drawerIconBar:nth-child(1) {
    top: 13px;  
  }
  .header__drawerIconBar:nth-child(2) {
    top: 26px;
  }
  .header__drawerIconBar:nth-child(3) {
    top: 39px;
  }


.sp-nav {
	background-color: #EBEFF5;
	height: 100dvh;
	left: 0;
	opacity: 0;
	overflow: scroll;
	padding-bottom: 20px;
	padding-top: 80px;
	position: absolute;
	right: 0;
	top: 0;
	transition: opacity 0.3s, visibility 0.3s;
	visibility: hidden;
	width: 100%;
	z-index: 299;
}

.sp-nav.open {
	opacity: 1;
	visibility: visible;
}

.sp-nav__wrapper {
	height: 100dvh;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	transition: opacity 0.3s, visibility 0.3s;
	visibility: hidden;
	width: 100%;
	z-index: 900;
}

.sp-nav__wrapper.open {
	opacity: 1;
	visibility: visible;
}

.sp-nav__inner {
	height: 100%;
	margin: 0 auto;
	max-width: 25rem;
	padding: 0 20px;
}

.sp-nav__items {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
}

.sp-nav__item {
	width: 100%;
}

.sp-nav__item + .sp-nav__item {
	padding-top: 10px;
}
.sp-nav__link {
	border-bottom: 0.5px solid #C4C4C4;
	color: #012C7B;
	display: block;
	font-size: 14px;
	font-weight: 500;
	padding-bottom: 10px;
	position: relative;
}


.sp-nav__footer-list {
	margin: 20px auto 0;
    background-color: #fff;
    padding: 24px;
    border-radius: 10px;
    border: 1px solid #036EB8;
}

.sp-nav__footer-item + .sp-nav__footer-item {
	margin-top: 10px;
}

.sp-nav__footer-item {
    max-width: 280px;
    margin: 0 auto;
}

.sp-nav__footer-link {
	height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    border-radius: 12.6px;
    gap: 8px;
    transition: 0.3s;
}

.sp-nav__logo {
	margin: 20px auto;
    max-width: 240px;
}

.sp-nav__logo-link {
	display: block;
	padding: 10px;
	text-align: center;
}


.sp-nav__tel {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 24px;

}

.sp-nav__tel-link {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #012C7B;
    font-size: 34px;
    line-height: 34px;
    letter-spacing: calc(1 / 34 * 1em);
}

.sp-nav__tel-link img {
    width: 28px;
    aspect-ratio: 1 / 1;
}

.sp-nav__tel-text-sub {
    font-size: 14px;
    margin-top: 4px;

}

.sp-nav__contact {
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}


@media screen and (max-width: 1200px) {
    .header__logo {
        max-width: clamp(150px, calc((200 * 100vw) / 1200), 200px);

    }

    .header__tel-link {
        font-size: clamp(24px, calc((34 * 100vw) / 1200), 34px);
    }

    .header__contact-btn {
        min-width: clamp(200px, calc((280 * 100vw) / 1200), 280px);
    }

    .common-contact-btn::before {
        left: clamp(16px, calc((22 * 100vw) / 1200), 22px);
    }
    
    
}

@media screen and (max-width: 1024px) {
    .header__inner {
        display: block;
    }

    .header__nav {
        display: none;

    }
    .header__top {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
}

@media screen and (max-width: 767px) {
    .header {
        padding: 10px 0;
    }
    

    .header__drawerIcon {
        width: 32px;
        height: 32px;
    }

    .header__drawerIconBar {
        width: 24px;
    }

      
  .header__drawerIconBar:nth-child(1) {
    top: 6px;  
  }
  .header__drawerIconBar:nth-child(2) {
    top: 16px;
  }
  .header__drawerIconBar:nth-child(3) {
    top: 26px;
  }

  .header__drawerIcon.open .header__drawerIconBar:nth-child(1) {
    top: 16px;
  }
  .header__drawerIcon.open .header__drawerIconBar:nth-child(3) {
    top: 16px;
  }

  .sp-nav__footer-list {
    padding: 16px;
  }
}


/*==================================================
# フッター
==================================================*/
.footer {
    padding: 50px 0 106px;
}

.footer__column {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.footer__logo {
    max-width: 238px;
}

.footer__logo a {
    transition: all 0.3s ease 0s;
}

.footer__logo a:hover {
    opacity: 0.7;
}

.footer__info {
    margin-top: 22px;
}

.footer__info-item + .footer__info-item {
    margin-top: 24px;
}

.footer__info-address {
    font-size: 16px;
}

.footer__info-time {
    display: flex;
    gap: 3px;
    font-size: 24px;
}

.footer__info-time-text {
    margin-top: 7px;

}

.footer__menu-list {
    display: flex;
    gap: 10px;
}

.footer__menu-link {
    padding: 10px;
    display: block;
    transition: all 0.3s ease 0s;
}

.footer__menu-link:hover {
    opacity: 0.7;
}

.footer__contact {
    margin-top: 22px;
    display: flex;
    justify-content: center;
}

.footer__copy-wrap {
    margin-top: 35px;
    text-align: center;
}

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

    .footer__info-time {
        font-size: clamp(18px, calc((24 * 100vw) / 1024), 24px);
    }
}

@media screen and (max-width: 767px) {
    .footer {
        padding: 40px 0;
    }
    .footer__column {
        flex-direction: column;
    }
}

/*==================================================
# トップページ
==================================================*/
/* FV */
.index-fv {
    background: url(../img/top/index_fv_bg.png) no-repeat center center /cover;
    padding: 185px 0 237px;
}

.index-fv__content {
    color: #fff;
}

.index-fv__copy {
    font-family: "Cormorant Garamond", serif;
    font-size: 32px;
    font-weight: 700;
    line-height: calc(60 / 32 * 1em);
    letter-spacing: calc(0.64 / 32 * 1em);
}

.index-fv__heading {
    margin-top: 32px;
    font-size: 60px;
    font-weight: 700;
    line-height: calc(90 / 60 * 1em);
    letter-spacing: calc(4.8 / 60 * 1em);
}

.index-fv__text {
    margin-top: 40px;
    font-size: 24px;
    font-weight: 500;
    line-height: calc(38.4 / 24 * 1em);
    letter-spacing: calc(1.44 / 24 * 1em);
}

@media screen and (max-width: 1024px) {
    .index-fv {
        padding: 100px 0;
    }

    .index-fv__copy {
        font-size: clamp(24px, calc((32 * 100vw) / 1024), 32px);
    }

    .index-fv__heading {
        font-size: clamp(40px, calc((60 * 100vw) / 1024), 60px);
    }

    .index-fv__text {
        font-size: clamp(18px, calc((24 * 100vw) / 1024), 24px);
    }
}

@media screen and (max-width: 767px) {
    .index-fv {
        padding: calc(94 / 750 * 100vw) 0 calc(102 / 750 * 100vw);
        background: url(../img/top/index_fv_bg_sp.png) no-repeat center center /cover;
    }

    .index-fv__copy {
        font-size: calc(32 / 750 * 100vw);
    }

    .index-fv__heading {
        font-size: calc(72 / 750 * 100vw);
        margin-top: calc(46 / 750 * 100vw);
    }
    
    .index-fv__text {
        font-size: calc(30 / 750 * 100vw);
        margin-top: calc(48 / 750 * 100vw);
    }
}

/* ごあいさつ */
.index-message {
    padding: 130px 0 166px;
    position: relative;
    z-index: 1;
}

.index-message:before {
    content: "";
    position: absolute;
    top:0;
    left: 47%;
    transform: translateX(-50%);
    width: 1580px;
    aspect-ratio: 1580 / 808;
    background: url(../img/top/index_message_bg.png) no-repeat center center /cover;
    z-index: -1;
}

.index-message__content {
    text-align: center;
    margin-top: 100px;
}

.index-message__text {
    font-weight: 500;
    line-height: calc(40 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
}

.index-message__text + .index-message__text {
    margin-top: 20px;
}

.index-message__btn-wrap {
    margin-top: 48px;
    display: flex;
    justify-content: center;
}

@media screen and (max-width: 767px) {
    .index-message {
        padding: 100px 0;
    }

    .index-message:before {
        width: 100%;
    }

    .index-message__content {
        margin-top: 60px;
    }

    .index-message__btn-wrap {
        margin-top: 20px;
    }
}

/* TOUSENの強み */
.index-strong-point {
    padding-bottom: 120px;
    background: linear-gradient(180deg, rgba(1, 44, 123, 0.00) 0%, rgba(1, 44, 123, 0.08) 85.1%);
}

.index-strong-point__list {
    margin-top: 140px;

}

.index-strong-point__item  + .index-strong-point__item{
    margin-top: 102px;

}

.index-strong-point__item {
    position: relative;
    z-index: 1;
    display: flex;
    gap: calc(63 / 1000 * 100%);
    align-items: center;
}

.index-strong-point__item-number {
    position: absolute;
    top: -71px;
    left: 23px;
    color: #012C7B;
    text-shadow: 0 0 11px rgba(1, 44, 123, 0.27);
    font-family: "Oswald", sans-serif;
    font-size: 100px;
    font-weight: 700;
    transform: skewX(-15deg);
}

.index-strong-point__img {
    width: calc(572 / 1000 * 100%);
}

.index-strong-point__content {
    width: calc(364 / 1000 * 100%);
}

.index-strong-point__title {
    color: #012C7B;
    font-size: 50px;
    font-weight: 700;
}

.index-strong-point__text {
    margin-top: 40px;
    line-height: calc(40 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
}

@media screen and (max-width: 1024px) {
    .index-strong-point {
        padding-bottom: 80px;
    }

    .index-strong-point__item-number {
        font-size: clamp(60px, calc((100 * 100vw) / 1024), 100px);
            top: -60px;
    }

    .index-strong-point__img {
        width: calc(500 / 1000 * 100%);
    }

    .index-strong-point__content {
        width: calc(437 / 1000 * 100%);
    }

    .index-strong-point__title {
        font-size: clamp(24px, calc((50 * 100vw) / 1024), 50px);
    }

    .index-strong-point__text {
        margin-top: 20px;
    }
}

@media screen and (max-width: 767px) {
    .index-strong-point__list {
        margin-top: 80px;
    }
    .index-strong-point__item {
        flex-direction: column;
        gap: 20px;
    }

    .index-strong-point__item + .index-strong-point__item {
        margin-top: 60px;
    }

    .index-strong-point__item-number {
        top: -46px;
        left: 16px;
    }

    .index-strong-point__img {
        width: 100%;
    }

    .index-strong-point__content {
        width: 100%;
    }
}

/* 事業内容 */
.index-business {
    padding: 216px 0 123px;
    position: relative;
    z-index: 1;
}

.index-business:before {
    content: "";
    position: absolute;
    top: -71px;
    left: 50%;
    transform: translateX(calc(11%));
    width: 804px;
    aspect-ratio: 1 / 1;
    background: url(../img/top/index_business_bg.png) no-repeat center center /cover;
    z-index: -1;
}

.index-business__list {
    margin-top: 177px;
}

.common-business-list {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 20px;
}

.common-business-list__item {
    width: calc(50% - 10px);
    position: relative;
    z-index: 1;
}

.common-business-list__content {
    position: absolute;
    top: 163px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 90px);
}

.common-business-list__title {
    color: #012C7B;
    font-size: 38px;
    padding: 11px 20px;
    background: rgba(255, 255, 255, 0.90);
    display: inline-block;
    font-weight: 500;
    line-height: calc(40px / 38px * 1em);
    letter-spacing: calc(1.52 / 38 * 1em);
}

.common-business-list__text {
    margin-top: 30px;
    color: #FFF;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.50);
    font-weight: 500;
    line-height: calc(40 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
}

.index-business__btn-wrap {
    margin-top: 60px;
    display: flex;
    justify-content: center;
}

@media screen and (max-width: 1024px) {
    .index-business {
        padding: 80px 0;
    }

    .index-business:before {
        width: clamp(600px, calc((804 * 100vw) / 1024), 804px);
    }

    .common-business-list__content {
        top: clamp(40px, calc((120 * 100vw) / 1024), 140px);
        width: calc(100% - 24px);
    }

    .common-business-list__title {
        font-size: clamp(20px, calc((38 * 100vw) / 1024), 38px);
    }

    .common-business-list__text {
        margin-top: 10px;
    }    
}

@media screen and (max-width: 767px) {
    
    .index-business__list {
        margin: 80px auto 0;
        max-width: 400px;
    }

    .common-business-list__item {
        width: 100%;
    }

    .common-business-list__title {
        padding: 8px;
    }

    .common-business-list__content {
        top: 64px;
    }
}

 /* 採用情報 */
 .index-recruit {
 }
 
 .common-recruit {
    padding: 120px 0 84px;
    background: url(../img/top/index_recruit_bg.png) no-repeat center center /cover;

 }
 
 .common-recruit__content {
    margin-top: 75px;
 
 }
 
 .common-recruit__text {
    font-weight: 500;
    line-height: calc(20 / 16 * 1em);
    letter-spacing: calc(3.84 / 16 * 1em);

 }
 
 .common-recruit__btn-wrap {
    margin-top: 40px;

 }

 @media screen and (max-width: 767px) {
    .common-recruit {
        padding: 100px 0 60px;
    }

    .common-recruit__content {
        margin-top: 60px;
    }
 }

/*==================================================
# 事業一覧
==================================================*/
.p-service-fv {
    background: url(../img/service/service_fv_bg.png) no-repeat center center /cover;
}

.p-service-works {
    padding: 175px 0 97px;
    background: rgba(1, 44, 123, 0.08);
}

.p-service-works__list {
    margin-top: 120px;
}

.p-service-works__item {
    display: flex;
    gap: calc(70 / 1000 * 100%);
    align-items: center;
}

.p-service-works__item + .p-service-works__item {
    margin-top: 85px;
}

.p-service-works__item:nth-child(even) {
    flex-direction: row-reverse;
}

.p-service-works__img {
    width: calc(430 / 1000 * 100%);
}

.p-service-works__content {
    width: calc(500 / 1000 * 100%);

}

.p-service-works__title {
    color: #012C7B;
    padding-bottom: 10px;
    border-bottom: 1px solid #000;
    font-size: 40px;
    font-weight: 700;
    line-height: calc(54 / 40 * 1em);
    letter-spacing: calc(1.6 / 40 * 1em);
}

.p-service-works__text {
    margin-top: 12px;
    font-weight: 500;
    line-height: calc(40 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
}

@media screen and (max-width: 1024px) {
    .p-service-works {
        padding: 100px 0 60px;
    }

    .p-service-works__list {
        margin-top: 80px;
    }

    .p-service-works__title {
        font-size: clamp(20px, calc((40 * 100vw) / 1024), 40px);
    }
}

@media screen and (max-width: 767px) {
    .p-service-works {
        padding: 80px 0 40px;
    }

    .p-service-works__list {
        margin-top: 50px;
    }

    .p-service-works__item + .p-service-works__item {
        margin-top: 40px;
    }
    
    .p-service-works__item, .p-service-works__item:nth-child(even)  {
        flex-direction: column;
        gap: 20px;
    }
    
    .p-service-works__img {
        width: 100%;
    }

    .p-service-works__content {
        width: 100%;
    }



}

/*==================================================
# 会社概要
==================================================*/
.p-company-fv {
    background: url(../img/company/company_fv_bg.png) no-repeat center center /cover;

}

.p-company-greetings {
    padding: 130px 0 109px;

}

.p-company-greetings__content {
    margin-top: 80px;
}

.p-company-greetings__copy {
    color: #012C7B;
    text-align: center;
    font-size: 40px;
    font-weight: 700;
    line-height: calc(54 / 40 * 1em);
    letter-spacing: calc(1.6 / 40 * 1em);
}

.p-company-greetings__text-wrap {
    margin-top: 100px;
}

.p-company-greetings__text {
    text-align: center;
    line-height: calc(28 / 16 * 1em);
}

.p-company-greetings__text + .p-company-greetings__text {
    margin-top: 28px;
}

.p-company-greetings__name {
    margin-top: 100px;
    text-align: right;

}

.p-company-information {
    padding: 135px 0 100px;
    background: #EBEFF5;
}

.p-company-information__list {
    margin-top: 128px;
}

.common-information-list {
    background-color: #fff;
    padding: 72px 56px;
    border: 1px solid rgba(0, 0, 0, 0.30);
}

.common-information-list__item {
    display: flex;
    gap: calc(112 / 885 * 100%);
    min-height: 110px;
    justify-content: space-between;
}

.common-information-list__term {
    width: calc(260 / 885 * 100%);
    display: flex;
    align-items: center;
    border-top: 1px solid #000;
    padding: 14px 0;
}

.common-information-list__item:last-child .common-information-list__term {
    border-bottom: 1px solid #000;
}

.common-information-list__desc {
    width: calc(513 / 885 * 100%);
    display: flex;
    align-items: center;
    border-top: 1px solid #000;
    padding: 14px 0;
}

.common-information-list__item:last-child .common-information-list__desc {
    border-bottom: 1px solid #000;
}

@media screen and (max-width: 1024px) {
    .p-company-greetings__copy {
        font-size: clamp(20px, calc((40 * 100vw) / 1024), 40px);
    }
}

@media screen and (max-width: 767px) {
    .p-company-greetings {
        overflow: hidden;
        padding: 80px 0 40px;
    }

    .p-company-greetings__content {
        margin-top: 40px;
    }

    .p-company-greetings__text-wrap {
        margin-top: 40px;
    }


    .p-company-information {
        overflow: hidden;
        padding: 80px 0 40px;
    }

    .p-company-information__list {
        margin-top: 40px;
    }

    .common-information-list {
        padding: 40px 20px;
    }

    .common-information-list__item {
        gap: calc(10 / 885 * 100%);
        min-height: 80px;
    }

    .common-information-list__term {
        width: calc(270 / 885 * 100%);

    }

    .common-information-list__desc {
    width: calc(533 / 885 * 100%);
        
    }


}

/*==================================================
# 採用情報
==================================================*/
.p-recruit {
    overflow: hidden;
}

.p-recruit-fv {
    background: url(../img/recruit/recruit_fv_bg.png) no-repeat center center /cover;
}

.p-recruit-company {
    background: rgba(1, 44, 123, 0.08);
    padding: 130px 0 100px;
}

.p-recruit-company__copy {
    margin-top: 87px;
    color: #012C7B;
    text-align: center;
    font-size: 40px;
    font-weight: 700;
    line-height: calc(54 / 40 * 1em);
    letter-spacing: calc(1.6 / 40 * 1em);
}

.p-recruit-company__content {
    margin-top: 100px;
    position: relative;
    z-index: 1;
}

.p-recruit-company__label {
    position: absolute;
    top: -46px;
    left: 38px;
    color: #012C7B;
    font-size: 70px;
    font-weight: 600;
    line-height: calc(96 / 70 * 1em);
    letter-spacing: calc(2.1 / 70 * 1em);
    transform: skewX(-15deg);
    font-family: "Inter", sans-serif;
}

.p-recruit-company__text-wrap {
    padding: 100px 30px;
    background-color: #fff;
    text-align: center;

}

.p-recruit-company__text {

}

.p-recruit-company__text + .p-recruit-company__text {
    margin-top: 28px;
}

.p-recruit-company__btn-wrap {
    margin-top: 58px;
    display: flex;
    justify-content: center;
}


.p-recruit-job {
    padding: 133px 0 100px;
    background-color: #F2F2F2;

}

.p-recruit-job__list {
    margin-top: 80px;
}

.p-recruit-job__btn-wrap {
    margin-top: 60px;
    display: flex;
    justify-content: center;
}

.p-recruit-information {
    padding: 178px 0 100px;
    background-color: #EBEFF5;
}

.p-recruit-information__list {
    margin-top: 178px;
}

.p-recruit-entry {
    background: url(../img/recruit/recruit_entry_bg.png) no-repeat center center /cover;
    padding: 220px 0 190px;

}

.p-recruit-entry__content {
    padding: 120px 30px 90px;
    background-color: #fff;
    text-align: center;
}

.p-recruit-entry__text {
    margin-top: 48px;
    line-height: calc(28 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
}

.p-recruit-entry__btn-wrap {
    margin-top: 56px;
    display: flex;
    justify-content: center;
}

@media screen and (max-width: 1024px) {
    .p-recruit-company__copy {
        font-size: clamp(20px, calc((40 * 100vw) / 1024), 40px);
    }

    .p-recruit-company__label {
        font-size: clamp(40px, calc((70 * 100vw) / 1024), 70px);
    }

    .p-recruit-company__text-wrap {
        padding: 80px 20px;
    }

    .p-recruit-entry {
        padding: 120px 0 100px;
    }

    .p-recruit-entry__content {
        padding: 60px 20px;
    }
    
}

@media screen and (max-width: 767px) {
    .p-recruit-company {
        padding: 80px 0 40px;
    }

    .p-recruit-company__copy {
        margin-top: 40px;
    }

    .p-recruit-company__content {
        margin-top: 60px;
    }

    .p-recruit-company__label {
        top: -30px;
    }

    .p-recruit-company__text-wrap {
        padding: 60px 20px;
    }

    .p-recruit-job {
        padding: 80px 0 40px;
    }

    .p-recruit-information {
        padding: 80px 0 40px;
    }

    .p-recruit-information__list {
        margin-top: 80px;
    }

    .p-recruit-entry {
        padding: 100px 0 60px;
    }


}

/*==================================================
# お問い合わせ
==================================================*/
.p-contact-fv {
    background: url(../img/contact/contact_fv_bg.png) no-repeat center center /cover;
}

.p-contact-contents {
    padding: 120px 0 50px;
    background: #EBEFF5;
}

.p-contact-contents__text {
    text-align: center;
    font-weight: 700;
}

.p-contact-contents__form {
    margin-top: 70px;
}

@media screen and (max-width: 767px) {
    .p-contact-contents {
        padding: 80px 0 40px;
    }
    
}

/*==================================================
# お問い合わせ完了
==================================================*/
.p-thanks-contents {
    padding: 150px 0 100px;
    background: #EBEFF5;
}

.p-thanks-contents__title {
    font-size: 50px;
    font-weight: 500;
    line-height: calc(36.413 / 50 * 1em);
    letter-spacing: calc(2 / 50 * 1em);
    text-align: center;
}

.p-thanks-contents__text {
    margin: 20px auto 0;
    max-width: 414px;
    text-align: center;
    line-height: calc(40 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
}

.p-thanks-contents__btn-wrap {
    margin-top: 48px;
    display: flex;
    justify-content: center;
}

/*==================================================
# プライバシーポリシー
==================================================*/

.p-privacy-policy-fv {
    background: url(../img/privacy-policy/privacy-policy_fv_bg.png) no-repeat center center /cover;
}

/*==================================================
# 詳細ページ
==================================================*/

.common-contents {
    padding: 120px 0;
    background: rgba(1, 44, 123, 0.08);
}

.common-contents__content h1 {
    font-size: 28px;
    margin-bottom: 32px;
    padding: 8px 16px;
    border: 3px solid #012C7B;
  }
  
  .common-contents__content h2 {
    font-size: 24px;
    margin-top: 48px;
    margin-bottom: 32px;
    padding: 4px 0 4px 16px;
    color: #012C7B;
    border-left: 7px solid #012C7B;
  }
  
  .common-contents__content h3 {
    font-size: 20px;
    margin-bottom: 32px;
    padding: 0 16px 8px;
    border-bottom: 2px solid #012C7B;
  }
  
  .common-contents__content p {
    margin-bottom: 24px;
  }
  
  .common-contents__content a {
    display: block;
    text-decoration: underline;
    color: #012C7B;
  }
  
  .common-contents__content ul {
    margin-bottom: 24px;
  }
  
  .common-contents__content li {
    position: relative;
    padding-left: 1em;
  }
  
  .common-contents__content li::after {
    position: absolute;
    top: 0.5em;
    left: 0;
    width: 8px;
    height: 8px;
    content: "";
    border-radius: 4px;
    background-color: #012C7B;
  }
  
  .common-contents__content li+ li {
    margin-top: 4px;
  }

  @media screen and (max-width: 767px) {
    .common-contents {
        padding: 80px 0;
    }

    .common-contents__content h1 {
        font-size: clamp(24px, calc((28 * 100vw) / 767), 28px);
    }

    .common-contents__content h2 {
        font-size: clamp(20px, calc((24 * 100vw) / 767), 24px);
    }

    .common-contents__content h3 {
        font-size: clamp(18px, calc((20 * 100vw) / 767), 20px);
    }
  }

  /*==================================================
  # 404ページ
  ==================================================*/
  .p-404 {
    padding: 150px 0 100px;
    background: #EBEFF5;
  }

  .p-404__heading {
    font-size: 50px;
    font-weight: 500;
    line-height: calc(36.413 / 50 * 1em);
    letter-spacing: calc(2 / 50 * 1em);
    text-align: center;
  }
  
  .p-404__text {
    margin-top: 40px;
    text-align: center;
    line-height: calc(40 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
  }
  
  .p-404__btn-wrap {
    margin-top: 40px;
    display: flex;
    justify-content: center;
  }

  @media screen and (max-width: 767px) {
    .p-404 {
        padding: 100px 0 60px;
    }

    .p-404__heading {
        font-size: clamp(24px, calc((50 * 100vw) / 767), 50px);
    }

  }



/*==================================================
# 固定ページ
==================================================*/
.p-page-contents {
    padding: 80px 0;
    background-color: #EBEFF5;
}

.common-contents__title {
    font-size: 50px;
    font-weight: 500;
    line-height: calc(36.413 / 50 * 1em);
    letter-spacing: calc(2 / 50 * 1em);
    text-align: center;
}

.common-contents__content {
    margin-top: 40px;
}

.common-contents__text {
    text-align: center;
    line-height: calc(40 / 16 * 1em);
    letter-spacing: calc(0.64 / 16 * 1em);
}

.common-contents__btn-wrap {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

@media screen and (max-width: 1024px) {
    .p-page-contents {
        padding: 60px 0;
    }

    .common-contents__title {
        font-size: clamp(24px, calc((50 * 100vw) / 1024), 50px);
    }
}
