.title--common {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 360px;
    padding: 24px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    background: linear-gradient(90deg, #ff6347 0%, #ed4d30 100%);
}
.title--common.--jp {
    gap: 12px;
}
.title--common h2,
.title--common span {
    color: #fff;
    margin: 0;
}
.title--common h2 {
    font-size: 48px;
    line-height: 100%;
    text-align: center;
}
.title--image h2 {
    font-size: max(3vw, 24px);
    line-height: normal;
}
.title--common span,
.title--image span {
    font-size: 24px;
    line-height: 150%;
}
/*-----タイトル（画像あり）-----*/
.title--image {
    max-height: 768px;
    position: relative;
}
.title--image__title-box {
    display: flex;
    flex-direction: column;
}
.title--image h2,
.title--image span {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: center;
    padding: 0 24px;
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #fff;
}
.title--image img {
    width: 100%;
    object-fit: cover;
    object-position: center;
    background-position: center;
}
/*---*/
/*
.main__content--common {
}
*/
.card__wrap--common {
    display: flex;
    flex-direction: column;
    padding: 30px;
    align-items: center;
    gap: 24px;
}
.card--common {
    padding: 0;
    gap: 60px;
}
.h2--small {
    text-align: center;
}
.card__title.--jp h2 {
    font-size: max(3vw, 60px);
    line-height: 120%;
}
.card__title--common .h2--small {
    font-size: 30px;
    line-height: 150%;
}
.card__text__title--small {
    font-size: 40px;
    line-height: 150%;
}

/*-----スクロールマージン-----*/
#about {
    scroll-margin-top: 60px; /* gapと同じ数値 */
}
.scroll-margin--common {
    scroll-margin-top: 96px;
}

/*-----フォーム-----*/
.card--form {
    align-items: center;
    gap: 24px;
}
.card__title--form h2,
.card__title--common h2 {
    margin: 0;
    font-size: 36px;
    line-height: 150%;
}
.wpcf7-form * {
    display: flex;
    padding: 0;
    margin: 0;
}
.form__wrap--common {
    display: flex;
    max-width: 960px;
    width: 100%;
    margin: 0 auto;
    flex-direction: column;
    align-items: center;
}
.wpcf7-form {
    display: flex;
    width: 100%;
    padding: 60px 30px;
    flex-direction: column;
    border-radius: 24px;
    box-shadow: 0px 0px 36px 4px rgba(0, 0, 0, 0.04);
    gap: 24px;
}
input,
textarea,
select {
    width: 100%;
    border: 1px solid #e0e0e0;
    background: #fafafa;
    border-radius: 6px;
    box-sizing: border-box;
}
input[type="radio" i] {
    border: initial;
    background: initial;
    border: 1px solid #e0e0e0;
    background: #fafafa;
}
.wpcf7-form input,
.wpcf7-form select {
    height: 32px;
    /*padding-top: 2px;*/
    padding: 0 1%;
}
.wpcf7-form textarea {
    padding: 2%;
}
.button--common,
.wpcf7-form .button--common {
    display: flex;
    height: auto;
    padding: 12px 20px;
    color: #fff;
    border: none;
    border-radius: 8px;
    background: linear-gradient(90deg, #ff6347 0%, #ed4d30 100%);
    text-decoration: none !important;
}
.button--back,
.wpcf7-form .button--back {
    display: flex;
    height: auto;
    padding: 12px 20px;
    color: #fff;
    border: none;
    border-radius: 8px;
    background: linear-gradient(90deg, #ff6347 0%, #ed4d30 100%);
    text-decoration: none !important;
    max-width: 40%;
    margin: 0 30%;
}
input[type="submit"] {
    max-width: 40%;
    margin: 0 30%;
}
.form__inner--common {
    width: 100%;
}
.form__title--common {
    width: 28%;
    margin-right: 2% !important;
    justify-content: flex-end;
}
.form__title--common > span {
    color: red;
}
.wpcf7-form-control-wrap {
    display: flex;
    width: 70%;
    flex-direction: column;
}
.wpcf7-not-valid-tip {
    font-size: 13px;
    line-height: 180%;
    color: red;
}
#wpcf7-f177-o1 .wpcf7-form-control-wrap > .wpcf7-not-valid-tip {
    display: none;
}
#wpcf7-f177-o1 .wpcf7-form-control-wrap.is-show > .wpcf7-not-valid-tip {
    display: block;
}

/*-----上下の警告非表示-----*/
.screen-reader-response,
.wpcf7-response-output {
    display: none;
}

/*-----ラジオボタン関係-----*/
.wpcf7-radio {
    width: 120px;
    gap: 12px;
}
.wpcf7-radio label {
    width: 100px;
}
.wpcf7-radio label * {
    width: 50%;
}
/*
.form__inner--common select {
    width: 100%;
    padding-top: 2px;
    padding-left: 1%;
}
*/

/*-----写真スライド-----*/
.img-frame {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
    object-fit: cover;
    overflow: hidden;
}
.img-01,
.img-02,
.img-03 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-repeat: no-repeat;
}
@keyframes slide-animation-01 {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    30% {
        opacity: 1;
    }
    40% {
        opacity: 0;
        transform: scale(1.1);
    }
    90% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}
@keyframes slide-animation-02 {
    0% {
        opacity: 0;
    }
    30% {
        opacity: 0;
        transform: scale(1.1);
    }
    40% {
        opacity: 1;
    }
    60% {
        opacity: 1;
    }
    70% {
        opacity: 0;
        transform: scale(1);
    }
    100% {
        opacity: 0;
    }
}
@keyframes slide-animation-03 {
    0% {
        opacity: 0;
    }
    60% {
        opacity: 0;
        transform: scale(1);
    }
    70% {
        opacity: 1;
    }
    90% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: scale(1.1);
    }
}

/*-----表の横スクロール-----*/
.scroll-x {
    overflow-x: scroll;
    white-space: nowrap;
}

/*-----表-----*/
table {
    width: 100%;
    border: 0;
    border-top: 1px solid #e0e0e0;
}
table tr {
    border-bottom: 1px solid #e0e0e0;
}
table tr {
    display: table-row;
}
table th,
table td {
    padding: 20px;
    border: 0;
    box-sizing: border-box;
}
table th {
    line-height: normal;
    text-align: initial;
    background: #fafafa;
    font-weight: 600;
}

.table--flex-column tr {
    display: flex;
    flex-direction: column;
}
.table--flex-column td {
    border-top: 1px solid #e0e0e0;
}
.table--flex-column tr {
    grid-template-columns: 1fr;
}

.table--row th {
    width: 35%;
}

/*-----グリッド-----*/
.grid--common {
    display: grid;
    width: 100%;
    padding: 24px;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}
.grid--icon {
    grid-template-columns: repeat(6, 1fr);
}
.grid--phone {
    max-width: 434px;
    grid-template-columns: 1fr;
    margin: auto;
}
.grid--image {
    padding: 0 24px;
    gap: 4px;
}
.grid--company {
    gap: 48px;
    grid-template-columns: 1fr 1fr;
}
.grid--half {
    grid-template-columns: 1fr 1fr;
    padding: 0;
    gap: 0;
}
.grid--list {
    grid-template-columns: auto;
}
.grid__inner--common {
    display: flex;
    padding: 24px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    background-color: #eaeaea;
}
.grid__inner--image {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.grid__inner--imagewrap {
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.grid__inner--imagewrap img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.grid__image--4-3 {
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.grid__image--icon {
    aspect-ratio: 3 / 2;
    object-fit: contain !important;
    padding: 10%;
}
.grid__inner--phone {
    display: flex;
    /*width: 50%;*/
    padding: 0 24px;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    aspect-ratio: auto;
    object-fit: cover;
    gap: 24px;
    border-radius: 24px;
    background: var(--button-color);
}
.grid__inner--company-logo {
    padding: 72px;
    overflow: hidden;
    border: 1px solid #e0e0e0;
    background-color: #fff;
}
.grid__inner--box {
    display: flex;
    flex-direction: column;
    /*justify-content: space-between;*/
}
.grid__inner--company-logo img {
    transition: transform 1.2s cubic-bezier(0.25, 1, 0.5, 1);
}
.grid__inner--common p {
    margin: 0;
}
.grid__inner--common span {
    font-size: 14px;
    line-height: normal;
}
.grid__inner--phone p,
.grid__inner--phone span {
    width: 50%;
}
.grid__inner--phone p {
    color: #fff;
    font-size: 14px;
    line-height: 200%; /* 28px */
}
.grid__inner--phone span {
    color: #fff;
    font-size: 24px;
    font-weight: 600;
    line-height: 200%; /* 48px */
}
.grid__text {
    display: flex;
    padding: 12px;
    justify-content: space-between;
}
.grid__text--small {
    height: auto;
    font-size: 14px;
    line-height: normal;
}
.hotel-detail__topics .grid__text--small {
    height: auto;
}
.grid__text__title {
    font-size: 30px;
    line-height: 150%;
}
.grid__text_inner {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}
.grid__text_inner p {
    line-height: 150%;
    margin-bottom: 1em;
}
.grid--company .grid__text p {
    margin: 0;
}

/*-----アコーディオン-----*/
.details--common {
    position: relative;
    display: flex;
    width: 100%;
    flex-direction: column;
    padding: 24px;
    margin: 1em 0;
    border-radius: 12px;
    overflow: hidden;
    background: #f7f7f7;
}
.details__inner {
    height: 0;
    overflow: hidden;
    transition: height 0.3s ease;
    /* heightのアニメーション */
}
.details--common[open] .details__inner {
    transition: height 0.3s ease;
    /* open状態でのheightアニメーション */
}
.summary--common {
    display: flex;
    /*padding: 12px 24px;*/
    margin-right: 36px;
    align-items: center;
    gap: 16px;
    align-self: stretch;
    color: #000;
    font-family: "Noto Sans JP";
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 36px */
}
.answer--common {
    display: flex;
    height: auto;
    /*padding: 24px;*/
    margin-top: 24px;
    align-items: flex-start;
    gap: 16px;
    align-self: stretch;
}
.question-text,
.answer-text {
    margin: 0;
    line-height: normal;
    white-space: pre-wrap;
}
.summary__icon {
    min-width: 36px;
    height: 36px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-align: center;
    font-size: 20px;
    font-weight: 700;
    line-height: 150%; /* 30px */
    border-radius: 18px;
    background: var(--button-color);
}
.summary__icon--q {
    padding-bottom: 4px;
}
.summary__icon--a {
    padding-bottom: 2px;
}
.summary--common::before {
    content: "";
    position: absolute;
    right: 21px; /* 右端に配置 */
    width: 20px;
    height: 2px;
    background-color: black; /* 線の色 */
    transition: transform 0.3s ease; /* 回転アニメーション */
}
.summary--common::after {
    content: "";
    position: absolute;
    right: 30px; /* 右端に配置 */
    width: 2px;
    height: 20px;
    background-color: black; /* 線の色 */
    transition: transform 0.3s ease; /* 回転アニメーション */
}
.details--common[open] .summary--common::after {
    transform: rotate(90deg); /* 開いたときの回転 */
}
/*-----タグ-----*/
.tag__box--common {
    display: flex;
    flex-wrap: wrap;
    padding-top: 72px;
    gap: 6px;
}
.tag__box--common a {
    display: flex;
    padding: 4px 12px;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    color: #fff;
    background: var(--button-color);
}

/*-----レスポンシブ-----*/
@media screen and (min-width: 1921px) {
    .card__title.--jp h2 {
        font-size: 72px;
        line-height: 120%;
    }
}
@media (max-width: 1279px) and (min-width: 960px) {
    .card__inner--common {
        flex-direction: row;
    }
    .card__inner--common img {
        width: 50%;
    }
}
@media screen and (max-width: 1023px) {
    .title--common {
        height: 200px;
        gap: 8px;
    }
    .title--common h2 {
        font-size: 24px;
    }
    .title--common.--jp h2,
    .card__title.--jp h2 {
        font-size: 36px;
    }
    .card__text__title--small {
        font-size: 36px;
        line-height: 150%;
    }
    .title--common span {
        font-size: 16px;
        line-height: 150%;
    }
    .card--common {
        gap: 20px;
    }
    .card--gap-large {
        gap: 48px;
    }
    .grid--icon {
        grid-template-columns: repeat(4, 1fr);
    }
}
@media screen and (max-width: 767px) {
    .title--image h2 {
        font-size: 24px;
    }
    .card__wrap--common {
        padding: 16px;
        gap: 6px;
    }
    .card--common {
        gap: 12px;
    }
    .card--gap-large {
        gap: 36px;
    }
    .card__title.--jp h2 {
        font-size: 24px;
    }

    .card__title--common .h2--small {
        font-size: max(3.90625vw, 18px);
        line-height: 150%;
    }
    .card__text__title--small,
    .grid__text__title {
        font-size: max(3.90625vw, 28px);
        line-height: 140%;
    }
    /*-----スクロールマージン-----*/
    #about {
        scroll-margin-top: 12px;
    }
    .scroll-margin--common {
        scroll-margin-top: 54px;
    }
    /*-----フォーム-----*/
    .card--form {
        gap: 6px;
    }

    .card__title--form h2,
    .card__title--common h2 {
        font-size: max(4.6875vw, 18px);
        line-height: 150%;
    }
    .wpcf7-form-control-wrap {
        width: 100%;
    }
    .wpcf7-form {
        padding: 36px;
        font-size: 14px;
        line-height: 200%;
        gap: 12px;
        border-radius: 12px;
    }
    .wpcf7-form * {
        flex-direction: column;
    }
    .wpcf7-form .form__title--common {
        width: 100%;
        margin: 0;
        flex-direction: row;
        justify-content: initial;
    }
    .wpcf7-form input,
    .wpcf7-form select {
        justify-content: center;
    }
    .wpcf7-form select {
        padding-top: 7px;
    }
    .wpcf7-radio {
        padding: 2%;
        flex-direction: row;
    }
    .wpcf7-radio label {
        flex-direction: row;
    }
    .button--common,
    .wpcf7-form .button--common {
        padding: 9px 12px;
    }
    .wpcf7-form .button--common {
        margin-top: 12px;
    }
    /*-----表-----*/
    .table--common {
        font-size: 14px;
    }
    #table--recruit tr {
        display: grid;
        border-bottom: 0;
    }
    #table--recruit table,
    #table--recruit td {
        border: 0.5px solid #e0e0e0 !important;
    }
    .table--common th,
    .table--common td {
        padding: 12px;
    }
    /*-----グリッド-----*/
    .grid--common {
        grid-template-columns: 1fr;
    }
    .grid--icon {
        grid-template-columns: repeat(4, 1fr);
        gap: 0;
    }
    .grid__inner--common,
    .grid__inner--image,
    .grid__image--4-3 {
        aspect-ratio: auto;
    }
    .grid__image--icon {
        padding: 10% 0;
    }
    .grid__inner--company-logo {
        padding: max(9.375vw, 48px);
        aspect-ratio: 4 / 3;
    }
    .grid__text--small {
        font-size: 12px;
        line-height: normal;
    }
    /*-----アコーディオン-----*/
    .details--common {
        padding: 12px;
    }
    .summary--common {
        font-size: max(3.125vw, 18px);
    }
    .answer--common {
        margin-top: 10px;
    }
    .summary__icon {
        min-width: 28px;
        height: 28px;
        font-size: 16px;
        line-height: 150%;
    }
    .summary--common::before {
        width: 14px;
    }
    .summary--common::after {
        height: 14px;
        right: 27px;
    }
    /*-----タグ-----*/
    .tag__box--common {
        padding-top: 36px;
        font-size: 12px;
    }
}
@media screen and (max-width: 465px) {
    /*-----グリッド-----*/
    .grid--phone {
        max-width: 336px;
        gap: 10px;
    }
    .grid--icon {
        grid-template-columns: repeat(3, 1fr);
    }
    .grid__inner--phone p {
        font-size: 12px;
        line-height: 200%;
    }
    .grid__inner--phone span {
        font-size: 16px;
        line-height: 240%;
    }
}

@media screen and (max-width: 430px) {
    .title--common.--jp {
        gap: 6px;
    }
    .title--common.--jp h2 {
        font-size: 24px;
        line-height: 100%;
    }
    .card__text__title--small,
    .grid__text__title {
        font-size: 24px;
        line-height: 150%;
        /*
        padding: 0 16px;
        text-align: center;
        */
    }
    /*-----表-----*/
    .table--common {
        font-size: 12px;
    }
    /*-----フォーム-----*/
    .wpcf7-form {
        padding: 30px;
    }
    /*-----グリッド-----*/
    .grid--image {
        padding: 0;
    }
    .grid--list {
        padding: 24px 0;
    }
    .grid--icon {
        padding: 24px 12px;
    }
    .grid--company .grid__text object {
        display: flex;
        height: 24px;
    }
}

@media (hover: hover) {
    .grid__inner--company-logo img:hover {
        transform: scale(1.04);
    }
}
