body {
    color: black;
    height: 100vh;
}

a {
    color: black;
    text-decoration: none;
    display: block;
}

p {
    margin: 0;
    padding: 0;
}

li {
    list-style: none;
}

button {
    cursor: pointer;
    color: black;
    border: none;
    background-color: white;
}

img {
    max-width: 100%;
    vertical-align: bottom;
    object-fit: cover;
}

.img > img {
    width: 100%;
    height: 100%;
}

input {
    padding: 0;
}

dl {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}

.sp {
    display: none !important;
}
@media (max-width: 768px) {
    .sp {
        display: block !important;
    }
}

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

.hover-opacity {
    opacity: 1;
    transition: all 0.3s;
    cursor: pointer;
}
.hover-opacity:hover {
    opacity: 0.7;
}

.hover-black {
    position: relative;
}
.hover-black::before {
    content: "";
    display: block;
    opacity: 0;
    background-color: black;
    width: 100%;
    height: 100%;
    position: absolute;
    transition: all 0.3s;
}
.hover-black:hover::before {
    opacity: 0.4;
}

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

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

.hover-opacity {
    opacity: 1;
    transition: all 0.3s;
}
.hover-opacity:hover {
    opacity: 0.7;
}

/* フォント */
.f-se-li {
    font-family: "Noto Serif JP", serif;
    font-weight: 300;
    transform: scaleX(1.06);
}
.f-se-re {
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    transform: scaleX(1.06);
}
.f-se-me {
    font-family: "Noto Serif JP", serif;
    font-weight: 500;
    transform: scaleX(1.06);
}
.f-se-bo {
    font-family: "Noto Serif JP", serif !important;
    font-weight: 700 !important;
}

.f-ad-re {
    font-family: "adobe-caslon-pro", serif;
    font-weight: 400;
}

.f-go-li {
    font-family: "heisei-kaku-gothic-std", sans-serif;
    font-weight: 300;
}
.f-go-re {
    font-family: "heisei-kaku-gothic-std", sans-serif;
    font-weight: 400;
}
.f-go-me {
    font-family: "heisei-kaku-gothic-std", sans-serif;
    font-weight: 500;
}

.f-da-it {
    font-family: "dashiell-text", serif;
    font-weight: 400;
    font-style: italic;
}

/* ヘッダー */
.header {
    position: fixed;
    z-index: 4;
    width: 100%;
    height: 95px;
}

.header__inner {
    width: inherit;
    height: inherit;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: calc(100% - 40px);
    margin: 0 auto;
}

.header__insta {
    position: fixed;
    width: 28px;
    top: 32px;
    right: 105px;
    z-index: 5;
    opacity: 0;
    transition: all 0.3s;
}
.header__insta.down {
    position: fixed;
    width: 28px;
    top: 32px;
    right: 105px;
    opacity: 1;
}

.header__logo {
    width: 230px;
}

/* ハンバーガーメニュー */
.mobileBtn {
    transition: all 0.8s ease;
    position: relative;
    z-index: 4;
    background-color: unset;
    width: 28px;
    height: 28px;
    margin-right: 20px;
}

.mobileBtn__bar {
    width: 100%;
    height: 2px;
    content: "";
    position: absolute;
    transform: translateY(-50%);
    transition: all 0.8s ease;
    background-color: white;
    left: 0;
}

.mobileBtn__bar:nth-child(1) {
    top: 20%;
}

.mobileBtn__bar:nth-child(2) {
    top: 50%;
}

.mobileBtn__bar:nth-child(3) {
    top: 80%;
}

.mobileBtn__bar.rotate:nth-child(1), .mobileBtn__bar.rotate:nth-child(3) {
    top: 50%;
}

.mobileBtn__bar.rotate:nth-child(1) {
    transform: rotate(-225deg);
}

.mobileBtn__bar.rotate:nth-child(2) {
    transform: translate(0%, -50%) scale(0);
}

.mobileBtn__bar.rotate:nth-child(3) {
    transform: rotate(225deg);
}

.mobile {
    overflow: scroll;
    width: 100vw;
    height: 100vh;
    background-color: #D56527;
    background-size: cover;
    position: fixed;
    opacity: 0;
    pointer-events: none;
    z-index: 3;
    transition: all 0.3s ease;
}

.mobile.down {
    opacity: 1;
    pointer-events: all;
}

.mobile__inner {
    height: calc(100% - ((210 / 1400)* 100vw));
    display: flex;
    justify-content: space-between;
    position: relative;
    width: calc(100% - 90px);
    margin: 0 auto;
    padding-top: calc((130 / 1400)* 100vw);
    padding-bottom: calc((80 / 1400)* 100vw);
}

.mobile__left > p {
    font-size: calc((55 / 1400)* 100vw);
    color: white;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 0.1em;
}

.mobile__right {
    width: calc((1100 / 1400)* 100vw);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.mobile__contents-wrapper {
    width: inherit;
    padding: calc((15 / 1400)* 100vw) 0 calc((30 / 1400)* 100vw);
    border-top: 1px solid white;
    border-bottom: 1px solid white;
}

.mobile__contents-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: calc((20 / 1400)* 100vw);
}
.mobile__contents-top > p {
    font-size: 20px;
    letter-spacing: 0.12em;
    color: white;
}
.mobile__contents-top > img {
    width: calc((30 / 1400)* 100vw);
}

.mobile__contents-outer {
    overflow: scroll;
    -ms-overflow-style: none;  /* IE, Edge */
    scrollbar-width: none;      /* Firefox */
}
.mobile__contents-outer::-webkit-scrollbar {
    display: none; /* Chrome, Safari */
}

.mobile__contents {
    display: flex;
    width: max-content;
    overflow: scroll;
    -ms-overflow-style: none;  /* IE, Edge */
    scrollbar-width: none;      /* Firefox */
}
.mobile__contents::-webkit-scrollbar {
    display: none; /* Chrome, Safari */
}

.mobile__content {
    width: calc((205 / 1400)* 100vw);
    margin-right: calc((20 / 1400)* 100vw);
}

.mobile__content-img {
    margin-bottom: calc((10 / 1400)* 100vw);
}

.mobile__content > p {
    color: white;
    font-size: calc((13 / 1400)* 100vw);
    letter-spacing: 0.12em;
    line-height: 1.5;
}

.mobile__bottom {
    display: flex;
    justify-content: space-between;
}

.mobile__bottom-a {
    display: flex;
    align-items: center;
    padding-bottom: calc((40 / 1400)* 100vw);
    border-bottom: 1px solid white;
    width: 46%;
}
.mobile__bottom-a > p {
    font-size: calc((75 / 1400)* 100vw);
    color: white;
    line-height: 0;
    display: flex;
    align-items: center;
}
.mobile__bottom-a > p > span {
    font-size: calc((40 / 1400)* 100vw);
    margin-right: calc((10 / 1400)* 100vw);
}
.mobile__bottom-a > span {
    font-size: calc((20 / 1400)* 100vw);
    color: white;
    letter-spacing: 0.12em;
    margin-left: calc((20 / 1400)* 100vw);
}
.mobile__bottom-a > img {
    width: calc((30 / 1400)* 100vw);
    margin-left: auto;
}

.mobile__bottom-a > span, .mobile__bottom-a > img {
    position: relative;
    top: calc((8 / 1400)* 100vw);
}

/* fvセクション */
.fv {
    height: 100vh;
    position: relative;
    z-index: 0;
}
.fv::before {
        display: block;
        content: "";
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.2);
        position: absolute;
        top: 0;
        left: 0;
        z-index: 5;
}

.fv__inner {
    height: inherit;
    position: relative;
}

.fv__swiper {
    height: inherit;
}

.fv__contents {
    color: white;
    z-index: 6;
}

.fv__contents-p {
    font-size: calc((15 / 1400)* 100vw);
    line-height: 1.5;
    letter-spacing: 0.2em;
    margin-bottom: calc((25 / 1400)* 100vw);
}

.fv__contents-h2 {
    font-size: calc((40 / 1400)* 100vw);
    line-height: 1.2;
    letter-spacing: 0.06em;
}

/* meesageセクション */

.message {
    background-color: #15278C;
}

.message__txt {
    width: calc(100% - (((310 / 1400) * 100vw)));
    margin: 0 auto;
    padding: calc((135 / 1400)* 100vw) 0;
}

.message__txt > p {
    font-size: calc((30 / 1400)* 100vw);
    color: white;
    line-height: 2;
    letter-spacing: 0.04em;
}

/* タブ */
.tab-menu {
    display: flex;
}
.tab-menu div {
    transition: all 0.3s;
}
.tab-content {
    position: relative;
}
.tab-panel {
    position: absolute;
    opacity: 0;
    visibility: hidden;
    transition: all 0.5s;
    width: 100%;
}
.tab-panel.active {
    opacity: 1;
    visibility: visible;
}

.message__tab-content {
    background-color: #f6f3f0;
}

.message__tab.tab-cat {
    cursor: unset;
}

.message__tab-menu {
    background-color: #15278C;
    padding-bottom: calc((50 / 1400)* 100vw);
    padding-left: calc((110 / 1400)* 100vw);
}

.message__tab {
    cursor: pointer;
    font-size: calc((19 / 1400)* 100vw);
    color: #727171;
    margin-right: calc((25 / 1400)* 100vw);
    padding-right: calc((25 / 1400)* 100vw);
    border-right: 1px solid #727171;
    letter-spacing: 0.22em;
}

.message__tab.active {
    color: white;
}


.message__content {
    position: relative;
    width: 50%;
    height: calc((695 / 1400)* 100vw);
}
.message__content.visible {
    max-height: calc((695 / 1400)* 100vw); /* 高さは必要に応じて調整 */
}


.design__content {
    position: relative;
    width: calc(100% / 3);  
    height: calc((415 / 1400)* 100vw);
}
.design__content > div {
    height: 100%;
}
.design__content.visible {
    max-height: calc((415 / 1400)* 100vw);
}

/* 最初は6つ目以降を非表示に */
.message__content, .design__content {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(20px);
    transition: all 0.1s;
}

/* 表示時のアニメーション */
.message__content.visible, .design__content.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ボタン初期状態 */
.message__tab-panel-va.va-close, .design__tab-panel-va.va-close {
    display: none;
}


.message__tab-panel-inner {
    display: flex;
    flex-wrap: wrap;
}

.message__img {
    width: 100%;
    height: 100%;
}

.message__cat {
    position: absolute;
    top: 0;
    right: 0;
    padding: calc((3 / 1400)* 100vw) calc((10 / 1400)* 100vw);
    color: white;
    font-size: calc((16 / 1400)* 100vw);
    letter-spacing: 0.28em;
    pointer-events: none;
}
.cat-rental {
    background-color: #D56527;
}
.cat-rent {
    background-color: #0c9f73;
}
.cat-report {
    background-color: #1A8D02;
}
.cat-sale {
    background-color: #15278C;
}

.message__ttl-wrapper {
    position: absolute;
    left: calc((50 / 1400)* 100vw);
    bottom: calc((55 / 1400)* 100vw);
    pointer-events: none;
}

.message__ttl {
    font-size: calc((27 / 1400)* 100vw);
    line-height: 1.8;
    padding: calc((0 / 1400)* 100vw) calc((0 / 1400)* 100vw);
    background-color: white; 
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    display: inline;
}

.message__terms {
    display: flex;
    align-items: center;
    margin-top: calc((15 / 1400)* 100vw);
}

.message__term {
    font-size: calc((13 / 1400)* 100vw);
    color: white;
    padding: 0 calc((1 / 1400)* 100vw) calc((3 / 1400)* 100vw);
    border-bottom: 1px solid white;
    margin-right: calc((25 / 1400)* 100vw);
    line-height: 1;
}

.message__tab-panel-va, .design__tab-panel-va {
    width: 100%;    
    height: calc((55 / 1400)* 100vw);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: calc((18 / 1400)* 100vw);
    color: #D56527;
    text-align: center;
    letter-spacing: 0.12em;
    border-bottom: 1px solid #D56527;
    border-top: 1px solid #D56527;
    cursor: pointer;
    background-color: white;
}
.message__tab-panel-va.va-close, .design__tab-panel-va.va-close {
    color: white;
    background-color: #D56527;
    border-bottom: 1px solid white;
    border-top: 1px solid white;
}

/* designセクション */
.design {
    padding: calc((160 / 1400)* 100vw) 0 0;
    background-color: #f6f3f0;
}

.design__ttl {
    width: calc(100% - ((360 / 1400)* 100vw));
    display: flex;
    align-items: center;
    margin: 0 auto calc((85 / 1400)* 100vw);
}

.design__p {
    font-size: calc((16 / 1400)* 100vw);
    color: #D56527;
}

.design__h2 {
    display: flex;
    align-items: center;
    margin: 0 calc((65 / 1400)* 100vw) 0 0;
}
.design__h2 > p {
    font-size: calc((75 / 1400)* 100vw);
    color: #D56527;
    display: flex;
    align-items: center;
}
.design__h2 > p > span {
    font-size: calc((40 / 1400)* 100vw);
    margin-right: calc((10 / 1400)* 100vw);
}

.design__tab-panel {
    /* display: block !important;
    opacity: 1 !important;
    visibility: visible !important; */
}

.design__tab-panel-inner {
    display: flex;
    flex-wrap: wrap;
}

.design__content::before {
    content: "";
    display: block;
    opacity: 0.4;
    background-color: black;
    width: 100%;
    height: 100%;
    position: absolute;
}

.design__h3-wrapper {
    position: absolute;
    bottom: calc((24 / 1400)* 100vw);
    left: calc((30 / 1400)* 100vw);
}

.design__h3 {
    font-size: calc((26 / 1400)* 100vw);
    line-height: 1.8;
    padding: calc((0 / 1400)* 100vw) calc((0 / 1400)* 100vw);
    background-color: white;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    display: inline;
    pointer-events: none;
}

.design__case {
    position: relative;
    top: calc((-398 / 1400)* 100vw);
    left: calc((30 / 1400)* 100vw);
    font-size: calc((27 / 1400)* 100vw);
    color: white;
    pointer-events: none;
}

/* contactセクション */
.contact {
    letter-spacing: 0.1em;
    background-color: #D56527;
    padding-top: calc((200 / 1400) * 100vw);
    padding-bottom: calc((180 / 1400) * 100vw);
}

.contact__inner {
    width: calc((1050 / 1400) * 100vw);
    margin: 0 auto;
}

.contact__h2 {
    font-size: calc((100 / 1400)* 100vw);
    color: white;
    margin-bottom: calc((100 / 1400)* 100vw);
}

.contact__dt {
    width: calc(35% - ((20 / 1400) * 100vw));
    margin-right: calc((20 / 1400) * 100vw);
    margin-bottom: calc((50 / 1400) * 100vw);
    display: flex;
    line-height: 2.5;
    font-size: calc((14 / 1400)* 100vw);
    color: white;
    letter-spacing: 0.16em;
}

.contact__dt::after {
    content: "必須";
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc((11 / 1400)* 100vw);
    width: calc((40 / 1400) * 100vw);
    height: calc((20 / 1400) * 100vw);
    background-color: white;
    border-radius: 5px;
    color: #D56527;
    margin-left: calc((15 / 1400) * 100vw);
    position: relative;
    top: calc((8 / 1400)* 100vw);
}
.contact__dt.not-must::after {
    opacity: 0;
}

.contact__dd {
    width: 65%;
}

/* 注意テキスト修正 */
.wpcf7-response-output, .wpcf7-not-valid-tip {
    border: unset !important;
    color: yellow !important;
}

.wpcf7-not-valid-tip {
    font-size: calc((14 / 1400)* 100vw) !important;
    font-family: "heisei-kaku-gothic-std", sans-serif;
    font-weight: 400;
}

/* 確認するボタン修正 */
.contact__btn.prev-btn:after {
    right: auto;
    transform: translateY(-50%) rotate(180deg);
}

/* ddラジオパターン */
.wpcf7-radio {
    display: flex;
    flex-direction: column;
    margin-bottom: calc((25 / 1400)* 100vw);
}
/* ラジオボタンのデフォルト表示を非表示にする */
.wpcf7-radio input[type="radio"] {
    display: none;
}

/* 疑似要素でカスタムラジオボタンを作成 */
.wpcf7-radio .wpcf7-list-item-label {
    font-size: calc((14 / 1400)* 100vw);
    position: relative;
    padding-left: calc((30 / 1400) * 100vw); /* 画像とテキストの間隔調整 */
    cursor: pointer;
    display: inline-block;
    color: white;
    margin-bottom: calc((22 / 1400)* 100vw);
}

/* 通常時の画像 */
.wpcf7-radio .wpcf7-list-item-label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: calc((20 / 1400) * 100vw); /* 画像の幅 */
    height: calc((20 / 1400) * 100vw); /* 画像の高さ */
    background-image: url('../img/radio-off.png'); /* 通常時の画像URL */
    background-size: cover;
    background-position: center;
    transition: all 0.3s ease;
}

/* チェック時の画像 */
.wpcf7-radio input[type="radio"]:checked + .wpcf7-list-item-label::before {
  background-image: url('../img/radio-on.png'); /* チェック時の画像URL */
}


/* ddフォームパターン */
.contact__dd.dd-input > p > span > input {
    padding: calc((10 / 1400) * 100vw) calc((20 / 1400) * 100vw);
    width: calc(100% - calc((40 / 1400) * 100vw));
    background-color: #f6f3f0;
    border: none;
}
.contact__dd.dd-input > p > span > input::placeholder {
    color: #D3D3D3;
    font-weight: 700;
}

/* ddテキストエリアパターン */
.contact__dd.dd-txtara > p > span > textarea {
    padding: calc((10 / 1400) * 100vw) calc((20 / 1400) * 100vw);
    width: calc(100% - calc((40 / 1400) * 100vw));
    background-color: #f6f3f0;
    border: none;
    height: calc((150 / 1400) * 100vw)
}
.contact__dd.dd-txtara > p > span > textarea::placeholder {
    color: #D3D3D3;
    font-weight: 700;
}

/* 送信ボタン */
.contact__btn > p > input, .contact__btn-t {
    border: 0;
    -webkit-appearance: none;
    border-radius: 0;
    border-top: 1px solid white;
    border-bottom: 1px solid white;
    background-color: #D56527;
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc((575 / 1400) * 100vw);
    height: calc((63 / 1400) * 100vw);
    color: white;
    margin: calc((105 / 1400) * 100vw) auto 0;
    font-size: calc((18 / 1400) * 100vw);
    font-family: "adobe-caslon-pro", serif;
    font-weight: 400;
    letter-spacing: 0.1em;
    position: relative;
    cursor: pointer;
}

.contact__btn {
    width: fit-content;
    margin: 0 auto;
    position: relative;
}

.contact__btn::after {
    content: "";
    display: block;
    background-image: url(../img/a-arrow.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: calc((32 / 1400) * 100vw);
    height: calc((22 / 1400) * 100vw);
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.contact__thanks {
	text-align: center;
    line-height: 1.5;
    color: white;
    margin-bottom: calc((50 / 1400) * 100vw);
    font-size: calc((18 / 1400) * 100vw);
}

.contact__a-thanks {
    font-size: calc((20 / 1400)* 100vw);
    width: calc((300 / 1400)* 100vw);
    height: calc((60 / 1400)* 100vw);
    background-color: white;
    color: #D56527;
    margin: 0 auto;
}

.wpcf7-spinner {
    display: none !important;
}

/* footer */
.footer {
    padding: calc((55 / 1400) * 100vw) 0 calc((110 / 1400) * 100vw);
    color: #3B3636;
    background-color: #f6f3f0;
}

.footer__inner {
    width: calc(100% - ((110 / 1400) * 100vw));
    margin: 0 auto;
}

.footer__logo {
    width: calc((115 / 1400) * 100vw);
    margin-bottom: calc((60 / 1400) * 100vw);
}

.footer__contents {
    display: flex;
    align-items: flex-end;
}

.footer__ttl {
    font-size: calc((35 / 1400)* 100vw);
    margin-right: calc((20 / 1400)* 100vw);
    letter-spacing: 0.03em;
}

.footer__insta {
    width: calc((25 / 1400)* 100vw);
    margin-right: calc((85 / 1400)* 100vw);
    top: calc((-6 / 1400)* 100vw);
}

.footer__txt > p:first-child {
    font-size: calc((23 / 1400)* 100vw);
    margin-bottom: calc((15 / 1400)* 100vw);
    letter-spacing: 0.06em;
}
.footer__txt > p:nth-child(2){
    font-size: calc((16 / 1400)* 100vw);
    line-height: 1.7;
    letter-spacing: 0.22em;
}

@media (max-width: 768px) {
    /* ヘッダー */
    .header {
        height: 70px;
    }

    .header__inner {
        width: inherit;
        height: inherit;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: calc(100% - 40px);
        margin: 0 auto;
    }

    .header__insta {
        position: fixed;
        width: 22px;
        top: 23px;
        right: 68px;
    }
    .header__insta.down {
        position: fixed;
        width: 22px;
        top: 23px;
        right: 68px;
        opacity: 1;
    }

    .header__logo {
        width: 177px;
    }

    /* ハンバーガーメニュー */
    .mobileBtn {       
        width: 30px;
        height: 10px;
        margin-right: 0;
    }

    .mobileBtn__bar {
        height: 1px;
    }

    .mobileBtn__bar:nth-child(1) {
        top: 5%;
    }

    .mobileBtn__bar:nth-child(2) {
        display: none;
    }

    .mobileBtn__bar:nth-child(3) {
        top: 95%;
    }

    .mobileBtn__bar.rotate:nth-child(1) {
        transform: rotate(-200deg);
    }

    .mobileBtn__bar.rotate:nth-child(3) {
        transform: rotate(200deg);
    }

    .mobile__inner {
        height: calc(100% - 125px);
        width: 100%;
        padding-top: 75px;
        padding-bottom: 50px;
    }

    .mobile__left > p {
        display: none;
    }

    .mobile__right {
        width: 100%;
    }

    .mobile__contents-wrapper {
        padding: 0 0 0;
        border-top: unset;
        border-bottom: unset;
    }

    .mobile__contents-top {
        margin-bottom: 23px;
        padding: 15px 0 0;
        width: calc(100% - 50px);
        margin-right: auto;
        margin-left: auto;
        border-top: 1px solid white;
    }
    .mobile__contents-top > p {
        font-size: 16px;
    }
    .mobile__contents-top > img {
        display: none;
    }

    .mobile__contents {
        margin: 0 25px;
    }

    .mobile__content {
        width: 250px;
        margin-right: 28px;
    }
    .mobile__content:last-child {
        margin-right: 50px;
    }

    .mobile__content-img {
        margin-bottom: 13px;
    }

    .mobile__content > p {
        font-size: 11px;
    }

    .mobile__bottom {
        flex-direction: column;
        width: calc(100% - 50px);
        margin-right: auto;
        margin-left: auto;
    }

    .mobile__bottom-a {
        padding-top: 18px;
        padding-bottom: 18px;
        width: 100%;
    }
    .mobile__bottom-a:first-child {
        border-top: 1px solid white;
    }
    .mobile__bottom-a > p {
        font-size: 30px;
    }
    .mobile__bottom-a > p > span {
        font-size: 18px;
        margin-right: 5px;
    }
    .mobile__bottom-a > span {
        font-size: 10px;
        margin-left: 20px;
    }
    .mobile__bottom-a > img {
        width: 25px;
    }

    .mobile__bottom-a > span, .mobile__bottom-a > img {
        top: 3px;
    }

    /* fvセクション */

    .fv__contents {
        display: flex;
        flex-direction: column-reverse;
        top: 28%;
        left: 35%;
    }

    .fv__contents-p {
        font-size: 12px;
        margin-bottom: 0;
        line-height: 1.9;
    }

    .fv__contents-h2 {
        font-size: 30px;
        margin-bottom: 15px;        
        width: max-content;
    }

    /* meesageセクション */

    .message__txt {
        width: calc(100% - 50px);
        padding: 110px 0;
    }

    .message__txt > p {
        font-size: 17px;
        letter-spacing: 0.1em;
    }

    .message__tab-menu {
        padding-bottom: 10px;
        padding-left: 15px;
    }

    .message__tab.tab-cat {
        display: none;
    }

    .message__tab {
        font-size: 12px;
        margin-right: 12px;
        padding-right: 12px;
    }
    .message__tab:last-child {
        border-right: unset;
    }


    .message__content {
        width: 100%;
        height: calc((300 / 375)* 100vw);
    }
    .message__content.visible {
        max-height: calc((300 / 375)* 100vw); /* 高さは必要に応じて調整 */
    }


    .design__content {
        width: 100%;
        height: calc((300 / 375)* 100vw);
    }
    .design__content.visible {
        max-height: calc((300 / 375)* 100vw);
    }

    .message__cat {
        padding: 3px 5px 3px 11px;
        font-size: 12px;
    }

    .message__ttl-wrapper {
        left: calc((50 / 1400)* 100vw);
        bottom: calc((55 / 1400)* 100vw);
    }

    .message__ttl {
        font-size: 19px;
    }

    .message__terms {
        margin-top: 15px;
    }

    .message__term {
        font-size: 13px;
        padding: 0 1px 3px;
        margin-right: 20px;
    }

    .message__tab-panel-va, .design__tab-panel-va {
        height: 50px;
        font-size: 12px;
    }

    /* designセクション */
    .design {
        padding: 110px 0 0;
    }

    .design__ttl {
        width: calc(100% - 60px);
        flex-direction: column;
        margin: 0 auto 45px;
        align-items: flex-start;
    }

    .design__h2 {
        margin: 0 0 22px 0;
        position: relative;
        left: -11px;
    }
    .design__h2 > p {
        font-size: 80px;
    }
    .design__h2 > p > span {
        font-size: 40px;
        margin-right: 10px;
        position: relative;
        top: -9px;
    }

    .design__p {
        font-size: 14px;
        line-height: 1.8;
    }

    .design__h3-wrapper {
        bottom: calc((50 / 1400)* 100vw);
        left: calc((52 / 1400)* 100vw);
    }

    .design__h3 {
        font-size: 19px;
    }

    .design__case {
        top: calc((-1075 / 1400)* 100vw);
        left: calc((57 / 1400)* 100vw);
        font-size: 22px;
    }

    /* contactセクション */
    .contact {
        padding-top: 110px;
        padding-bottom: 110px;
    }

    .contact__inner {
        width: calc(100% - 60px);
    }

    .contact__h2 {
        font-size: 65px;
        margin-bottom: 40px;
    }

    .contact__dl {
        margin-bottom: 10px;
    }

    .contact__dt {
        width: 100%;
        margin-right: 0;
        margin-bottom: 0px;
        line-height: 2.5;
        font-size: 14px;
    }

    .contact__dt::after {
        font-size: 11px;
        width: 40px;
        height: 20px;
        margin-left: 20px;
        top: 8px;
    }

    .contact__dd {
        width: 100%;
    }

    /* ddラジオパターン */
    .wpcf7-radio {
        margin-bottom: 10px;
    }

    .wpcf7-not-valid-tip {
        font-size: 14px !important;
    }

    /* 疑似要素でカスタムラジオボタンを作成 */
    .wpcf7-radio .wpcf7-list-item-label {
        font-size: 14px;
        padding-left: 24px; /* 画像とテキストの間隔調整 */
        margin-bottom: 5px;
    }

    /* 通常時の画像 */
    .wpcf7-radio .wpcf7-list-item-label::before {
        width: 15px; /* 画像の幅 */
        height: 15px; /* 画像の高さ */
        top: 53%;
    }


    /* ddフォームパターン */
    .contact__dd.dd-input > p > span > input {
        padding: 10px;
        width: calc(100% - 20px);
    }

    /* ddテキストエリアパターン */
    .contact__dd.dd-txtara > p > span > textarea {
        padding: 10px;
        width: calc(100% - 20px);
        height: 175px;
    }
    .contact__dd.dd-txtara > p > span > textarea::placeholder {
        color: #D3D3D3;
        font-weight: 700;
    }

    /* 送信ボタン */
    .contact__btn > p > input, .contact__btn-t {
        width: 100%;
        height: 55px;
        margin: 45px auto 0;
        font-size: 14px;
    }

    .contact__btn {
        width: 100%;
    }

    .contact__btn::after {
        width: 30px;
        height: 22px;
    }

    .contact__thanks {
        margin-bottom: 50px;
        font-size: 13px;
    }
    
    .contact__a-thanks {
        font-size: 18px;
        width: 250px;
        height: 50px;
    }

    /* footer */
    .footer {
        padding: 90px 0;
    }

    .footer__inner {
        width: calc(100% - 60px);
    }

    .footer__logo {
        width: 78px;
        margin-bottom: 22px;
    }

    .footer__contents {
        flex-direction: column;
        align-items: unset;
    }

    .footer__ttl {
        font-size: 25px;
        line-height: 1.2;
        margin-right: 0;
        margin-bottom: 10px;
        position: relative;
        left: 10px;
    }

    .footer__insta {
        width: 22px;
        margin-right: 0;
        margin-bottom: 50px;
    }

    .footer__txt > p:first-child {
        font-size: 17px;
        margin-bottom: 10px;
    }
    .footer__txt > p:nth-child(2){
        font-size: 13px;
        line-height: 1.5;
        letter-spacing: 0.1em;
    }
}

.screen-reader-response {
    display: none !important;
}

.wpcf7-response-output {
    text-align: center;
}

.wpcf7-not-valid-tip, .wpcf7-response-output {
    margin: calc((10 / 1400)* 100vw) 0 calc((25 / 1400)* 100vw);
    display: block;
    font-size: calc((14 / 1400)* 100vw);
}

@media (max-width: 768px) {
    
    .wpcf7-not-valid-tip, .wpcf7-response-output {
        margin: 10px 0 15px;
        font-size: 14px;
    }
}

/* 投稿詳細ページ */

/* l-fvセクション */
.l-contents-width {
    width: calc(100% - calc((500 / 1400)* 100vw));
    margin: 0 auto;
}

.l-fv {
    color: white;
}

.l-fv__bg {
    padding: calc((270 / 1400)* 100vw) 0 calc((170 / 1400)* 100vw);
}

.l-fv__bg::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-size: cover;
    background-position: center;
    z-index: -1;
}

.l-fv__bg-inner {
    width: calc(100% - calc((600 / 1400)* 100vw));
}

.l-fv__top {
    margin-bottom: calc((185 / 1400)* 100vw);
}

.l-fv__cat {
    padding: calc((4 / 1400)* 100vw) calc((10 / 1400)* 100vw);
    color: white;
    font-size: calc((16 / 1400)* 100vw);
    letter-spacing: 0.28em;
    margin-bottom: calc((20 / 1400)* 100vw);
    width: fit-content;
}

.l-fv__h2 {
    font-size: calc((43 / 1400)* 100vw);
    line-height: 1.5;
    margin-bottom: calc((25 / 1400)* 100vw);
    letter-spacing: 0.04em;
    transform: unset;
}

.l-fv__tag {
    margin-bottom: calc((25 / 1400)* 100vw);
}

.l-fv__tag, .l-fv__add {
    display: flex;
    align-items: center;
}

.l-fv__tag > p {
    font-size: calc((13 / 1400)* 100vw);
    color: white;
    padding: 0 calc((1 / 1400)* 100vw) calc((3 / 1400)* 100vw);
    border-bottom: 1px solid white;
    margin-right: calc((25 / 1400)* 100vw);
    line-height: 1;
}

.l-fv__add > img {
    width: calc((10 / 1400)* 100vw);
    margin-right: calc((15 / 1400)* 100vw);
}
.l-fv__add > p {
    font-size: calc((13 / 1400)* 100vw);
    letter-spacing: 0.28em;
}

.prologue {
    font-family: "dashiell-text", serif;
    font-weight: 400;
    font-style: italic;
    font-size: calc((20 / 1400)* 100vw);
    margin-bottom: calc((45 / 1400)* 100vw);
}

.l-fv__txt {
    font-size: calc((17 / 1400)* 100vw);
    line-height: 2;
    letter-spacing: 0.1em;
}

/* infoセクション */
.info {
    padding: calc((180 / 1400)* 100vw) 0 calc((140 / 1400)* 100vw);
    background-color: #F6F3F0;
    margin-top: calc((-35 / 1400)* 100vw);
}

.info__info, .info__mes {
    background-color: white;
    padding: calc((40 / 1400)* 100vw) 0 calc((70 / 1400)* 100vw);
    margin-bottom: calc((140 / 1400)* 100vw);
}

.info__h2 {
    color: #D56527;
    font-size: calc((20 / 1400)* 100vw);
    margin-bottom: calc((58 / 1400)* 100vw);
    text-align: center;
}

.info__dl-wrapper {
    width: calc((625 / 1400)* 100vw);
    margin: 0 auto;
}

.info__dl {
    margin-bottom: calc((20 / 1400)* 100vw);
    padding-bottom: calc((20 / 1400)* 100vw);
    border-bottom: 1px solid #D56527;
    font-size: calc((14 / 1400)* 100vw);
    letter-spacing: 0.18em;
}
.info__dl:last-child {
    margin-bottom: 0;
}

.info__dl dt {
    width: 15%;
    color: #D56527;
    text-align: center;
}

.info__dl dd {
    width: 85%;
    display: flex;
    align-items: center;
    color: #211815;
}
.info__dl dd > img {
    width: calc((20 / 1400)* 100vw);
    margin-left: calc((17 / 1400)* 100vw);
}

.info__contents {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    color: #211815;
}

.info__contents > img {
    width: calc((235 / 1400)* 100vw);
    margin-right: calc((47 / 1400)* 100vw);
    object-fit: contain;
}

.info__txt {
    width: calc((450 / 1400)* 100vw);
    letter-spacing: 0.1em;
}
.info__txt > h3 {
    font-size: calc((21 / 1400)* 100vw);
    margin-bottom: calc((30 / 1400)* 100vw);
}
.info__txt {
    font-size: calc((15 / 1400)* 100vw);
    line-height: 2;
}

.info__yolo > img {
    width: calc((100 / 1400)* 100vw);
    margin: 0 auto calc((60 / 1400)* 100vw);
    display: block;
}
.info__yolo > p {
    text-align: center;
    letter-spacing: 0.04em;
    line-height: 2.2;
    font-size: calc((18 / 1400)* 100vw);
    color: #211815;
}

/* gfセクション */
.gf__inner {
    display: flex;
    height: calc((580 / 1400)* 100vw);
}

.gf__left, .gf__right {
    width: 50%;
}

.gf__right {
    background-color: #15278C;
    color: white;
    padding: calc((40 / 1400)* 100vw) calc((55 / 1400)* 100vw) calc((50 / 1400)* 100vw);
    width: calc(50% - ((110 / 1400)* 100vw));
    position: relative;
}

.gf__right-header {
    display: flex;
    justify-content: space-between;
    font-size: calc((16 / 1400)* 100vw);
    margin-bottom: calc((150 / 1400)* 100vw);
}

.gf__right-header > p {
    text-decoration: underline;
    text-align: right;
    text-underline-offset: calc((7 / 1400)* 100vw);
    line-height: 1.5;
}

.gf__right-txt {
    font-size: calc((22 / 1400)* 100vw);
    letter-spacing: 0.2em;
    line-height: 1.7;
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.gf__a {
    width: calc((570 / 1400)* 100vw);
    border-top: 1px solid white;
    position: relative;
    height: calc((63 / 1400)* 100vw);
    justify-content: center;
    padding-bottom: 0;
    position: absolute;
    bottom: calc((50 / 1400)* 100vw);
    left: 50%;
    transform: translateX(-50%);
}

.gf__a > p {
    font-size: calc((18 / 1400)* 100vw);
    line-height: 1;
    letter-spacing: 0.06em;
}
.gf__a > img {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: calc((30 / 1400)* 100vw);
}

@media (max-width: 768px) {
    .l-contents-width {
        width: calc(100% - 60px);
    }
    
    .l-fv__bg {
        padding: 230px 0 140px;
    }

    .l-fv__bg-inner {
        width: calc(100% - 60px);
    }
    
    .l-fv__top {
        margin-bottom: 130px;
    }
    
    .l-fv__cat {
        padding: 3px 5px 3px 11px;
        font-size: 12px;
        margin-bottom: 20px;
    }
    
    .l-fv__h2 {
        font-size: 31px;
        margin-bottom: 25px;
        line-height: 1.3;
    }
    
    .l-fv__tag {
        margin-bottom: 10px;
    }
    
    .l-fv__tag > p {
        font-size: 13px;
        padding: 0 1px 3px;
        margin-right: 20px;
    }
    
    .l-fv__add > img {
        width: 10px;
        margin-right: 15px;
    }
    .l-fv__add > p {
        font-size: 13px;
    }
    
    .prologue {
        font-size: 13px;
        margin-bottom: 15px;
    }
    
    .l-fv__txt {
        font-size: 14px;
        line-height: 2;
    }

    .l-fv__bg02 {
        height: calc((670 / 375)* 100vw);
    }
    
    /* infoセクション */
    .info {
        padding: 70px 0;
        margin-top: -35px;
    }
    
    .info__info, .info__mes {
        padding: 30px 0 40px;
        margin-bottom: 100px;
    }
    
    .info__h2 {
        font-size: 13px;
        margin-bottom: 40px;
    }
    
    .info__dl-wrapper {
        width: calc((270 / 375)* 100vw);
    }
    
    .info__dl {
        margin-bottom: 10px;
        padding-bottom: 10px;
        font-size: 13px;
    }
    
    .info__dl dt {
        width: 25%;
    }
    
    .info__dl dd {
        width: 75%;
    }
    .info__dl dd > img {
        width: 30px;
        margin: 0 0 0 20px;
    }
    
    .info__contents {
        flex-direction: column;
        font-weight: 300;
    }
    
    .info__contents > img {
        width: calc((175 / 375)* 100vw);
        max-width: 300px;
        margin: 0 auto 30px;
    }
    
    .info__txt {
        width: 100%;
    }
    .info__txt > h3 {
        font-size: 16px;
        margin-bottom: 30px;
        text-align: center;
    }
    .info__txt > p {
        font-size: 14px;
        padding: 0 30px;
    }
    
    .info__yolo > img {
        width: 95px;
        margin: 0 auto 40px;
    }
    .info__yolo > p {
        font-size: 13px;
    }
    
    /* gfセクション */
    .gf {
        background-color: #15278C;
    }

    .gf__inner {
        flex-direction: column;
        align-items: unset;
        width: calc(100% - 60px);
        margin: 0 auto;
        height: auto;
    }
    
    .gf__left {
        width: 100%;
        padding-top: 70px;
        height: calc((215 / 375)* 100vw);
    }
    
    .gf__right {
        width: 100%;
        padding: 13px 0 90px;
    }
    
    .gf__right-header {
        font-size: 10px;
        margin-bottom: 35px;
    }
    
    .gf__right-header > p {
        text-underline-offset: 5px;
    }
    
    .gf__right-txt {
        font-size: 13px;
        margin-bottom: 40px;
        position: static;
        transform: unset;
    }
    
    .gf__a {
        height: 50px;
        max-width: 400px;
        margin: 0 auto;
        display: flex;
        padding-top: 0;
        position: relative;
        top: 0;
        left: 0;
        transform: unset;
        width: 100%;
    }
    
    .gf__a > p {
        font-size: 14px;
    }
    .gf__a > img {
        width: 30px;
    }
}

/* ポップアップ */
.popup {
    display: flex;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}
.popup.show {
    opacity: 1;
    visibility: visible;
}
.popup-content {
    position: relative;
    background: #fff;
    padding: 20px;
    max-width: 80%;
    max-height: 80%;
    overflow: auto;
    text-align: center;
    border-radius: 8px;
    transform: scale(0.9);
    transition: transform 0.3s ease-in-out;
}
.popup.show .popup-content {
    transform: scale(1);
}
.popup-content img {
    max-width: 100%;
    height: auto;
}
.popup .close {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: 30px;
    cursor: pointer;
    color: #333;
}