@charset "UTF-8";

/* フォントは Google Fonts（サブセット）を header.phtml から読み込み */
/* 旧ローカル全文（NotoSansJP *.woff2 各約2.3MB / IBMPlex *.ttf 各約329KB）は速度改善のため停止 */

html{
    scroll-behavior: smooth;
}

.l-main *{
    font-family: 'Noto Sans JP', sans-serif;
}

.l-main{
    width: auto;
    padding: 0;
    background: #fff;
    overflow: hidden;
}

html{
    scroll-behavior: smooth;
}

#topbuy{
    scroll-margin-top: 100px;
}

/* 共通 */

[class*="section__wrapper--"]{
    position: relative;
    padding-block: 60px;
}

.section__border::before{
    position: absolute;
    content: "";
    background-color: #EDEDED;
    width: 1920px;
    height: 1px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

[class*="section__inner--"]{
    position: relative;
    display: flex;
    align-items: center;
    width: 1140px;
    margin: 0 auto;
}

[class*="flex__box--"]{
    display: flex;
    flex-direction: column;
    gap: 39px;
}

.flex__box--bkn {
    width: fit-content;
    gap: 0;
    margin-top: 20px;
}

[class*="ttl__box--"]{
    text-align: left;
}

.ttl__box--bkn {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 58px;
}

.ttl__box--bkn.ttl__box--recommend{
    align-items: flex-end;
}

[class*="section__ttl--"]{
    color: #111;
    font-size: 48px;
    font-weight: 700;
}

[class*="section__sub-ttl--"]{
    color: #FFE100;
    font-family: "IBM Plex Sans Devanagari", sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 2px;
}

[class*="swiper__wrap--"] {
    display: flex;
    flex: 1 1 auto;
    align-items: flex-end;
    gap: 20px;
    min-width: 0;
    position: relative;
}

[class*="swiper__nav--"] {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    gap: 5px;
    position: relative;
    bottom: 3px;
}

[class*="detail__txt--"]{
    color: #111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
}

[class*="common__btn--"]{
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 250px;
    height: 50px;
    padding: 0 38px 0 39px;
    border: 1px solid #2951a7;
    background-color: #ffffff;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    color: #2951a7;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.common__btn--recommend{
    margin-left: auto;
}

[class*="common__btn--"]:hover {
    border-color: #2951a7;
    background-color: #2951a7;
    color: #ffffff;
    opacity: 1;
}

[class*="common__btn--"]::before{
    position: absolute;
    content: "";
    top: 0;
    right: 12px;
    bottom: 0;
    width: 7px;
    height: 12px;
    margin: auto 0;
    background-color: #2951a7;
    mask-image: url(/images/top/icon_ctn-arrow.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: url(/images/top/icon_ctn-arrow.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    transition: background-color 0.2s ease;
}

[class*="common__btn--"]:hover::before {
    background-color: #ffffff;
}

[class*="common__item--"]{
    flex-shrink: 0;
    width: 360px;
}

.bkn__item {
    width: 300px;
}

[class*="common__item--"] a{
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    background-color: #ffffff;
    box-shadow: 0 3px 2px 0 rgba(0, 0, 0, 0.10);
    transition: transform 0.3s ease;
}

[class*="common__item--"] a:hover{
    opacity: 1;
    transform: translateY(-10px);
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

.img__box {
    position: relative;
    flex-shrink: 0;
    width: 100%;
    height: 200px;
}

[class*="common__img--"] {
    width: 100%;
    margin: 0;
    aspect-ratio: 300 / 200;
    overflow: hidden;
}

[class*="common__img--"] img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background-color: #f5f5f5;
}

[class*="swiper__btn--"] {
    position: relative;
    width: 42px;
    height: 42px;
    padding: 0;
    border: none;
    background-color: #F4F4F4;
    cursor: pointer;
    transition: background-color 0.2s ease;
    flex-shrink: 0;
}

.swiper__btn--staff{
    background-color: #DFD8D8;
}

[class*="swiper__btn--"]::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 7px;
    width: 26px;
    height: 26px;
    background-color: #2951A7;
    mask-image: url(/images/top/icon_arrow.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: url(/images/top/icon_arrow.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    transition: background-color 0.2s ease;
}

[class*="swiper__btn--"]:hover:not(.swiper-button-disabled) {
    background-color: #2951a7;
}

[class*="swiper__btn--"]:hover:not(.swiper-button-disabled)::before {
    background-color: #ffffff;
}

.swiper-btn--prev {
    transform: rotate(180deg);
}

[class*="swiper__btn--"].swiper-button-disabled {
    opacity: 0.35;
    cursor: default;
}

[class*="section__wrapper--"] .js-org-swiper {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    overflow: visible;
}

/* 新着・お客様の声・おすすめ: 右側にはみ出して次スライドを見せる（おすすめは JS で rtl し右端起点） */
.section__wrapper--new .js-org-swiper,
.section__wrapper--customer .js-org-swiper {
    clip-path: inset(-40px -230% -24px 0);
}

/* 新着・おすすめ: 物件2枚以下（ループ・自動再生なし） */
.section__wrapper--new.is-bkn-slider-few .js-org-swiper,
.section__wrapper--recommend.is-bkn-slider-few .js-org-swiper {
    clip-path: none;
    width: fit-content;
    max-width: 100%;
}

/* 新着: 収まる分は左揃え */
.section__wrapper--new.is-bkn-slider-few .swiper__wrap--new {
    justify-content: flex-start;
}

/* おすすめ: 収まる分は右揃え（タイトル列側） */
.section__wrapper--recommend.is-bkn-slider-few .swiper__wrap--recommend {
    justify-content: flex-end;
}

.section__wrapper--recommend.is-bkn-slider-few .js-org-swiper {
    margin-left: auto;
}

.section__wrapper--recommend.is-bkn-slider-few .common__list--recommend {
    width: 812px;
}

.section__wrapper--new.is-bkn-slider-few .swiper__nav--bkn,
.section__wrapper--recommend.is-bkn-slider-few .swiper__nav--recommend {
    display: none;
}

[class*="common__list--"] {
    margin: 0;
    padding: 0 0 3px;
    list-style: none;
}

.common__list--recommend{
    display: flex;
}

.img__box__badges {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
    display: flex;
    gap: 2px;
    align-items: stretch;
}

[class*="common__type--"] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 24px;
    margin: 0;
    padding: 0 8px;
    color: #ffffff;
    white-space: nowrap;
}

.common__type--new {
    background-color: #cc0000;
    font-family: 'IBM Plex Sans Devanagari', sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
}

.common__type--bkn {
    background-color: #2951a7;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.favorite__icon {
    position: absolute;
    top: 7px;
    right: 7px;
    z-index: 2;
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background-color: #ffffff;
    background-image: url(/images/top/icon_favorite.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 36px 36px;
    cursor: pointer;
}

.favorite__icon.is-checked {
    background-image: url(/images/top/icon_favorite_on.svg);
}

.bkn__name {
    margin: 0 0 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid #eeeeee;
    overflow: hidden;
    color: #111111;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.bkn__bottom-box {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 8px;
    padding-bottom: 2px;
    width: 100%;
    min-width: 0;
    margin: 0 0 3px;
}
[class*="bkn__txt--"] {
    display: flex;
    flex-shrink: 0;
    align-items: flex-end;
    gap: 1px;
    margin: 0;
    color: #111111;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
}

[class*="bkn__txt--"] span {
    color: #cc0000;
    font-family: 'IBM Plex Sans Devanagari', sans-serif;
    font-size: 28px;
    font-weight: 600;
    line-height: 1;
}

[class*="bkn__txt--"] .price {
    color: #cc0000;
    font-family: 'IBM Plex Sans Devanagari', sans-serif;
    font-size: 28px;
    font-weight: 600;
    line-height: 1;
}

.floor__box {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

[class*="floor__txt--"] {
    margin: 0;
    overflow: hidden;
    color: #111111;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.bkn__txt {
    color:  #111;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    align-self: stretch;
}

/* メイン画像 */

.main__box{
    position: relative;
    height: 610px;
    margin-bottom: 60px;
    background-color: #F1F8FC;
}

.main__box::after{
    position: absolute;
    content: "";
    top: 100%;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: #F1F8FC;
    pointer-events: none;
}

.main__img{
    height: 500px;
}

.main__img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.main__bottom{
    position: relative;
    width: 1140px;
    margin: 0 auto;
}

.transition__list{
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    left: 0;
    right: 0;
    margin: auto;
    bottom: -109px;
    z-index: 1;
}

[class*="transition__item--"] a{
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 250px;
    height: 158px;
    gap: 0;
    background-color: #2951A7;
    transition: transform 0.3s ease;
    box-shadow: 0 3px 2px 0 rgba(0, 0, 0, 0.10);
}

[class*="transition__item--"] a:hover{
    opacity: 1;
    transform: translateY(-10px);
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

[class*="transition__item--"] a::before{
    position: absolute;
    content: "";
    background: url(/images/top/icon_arrow.svg) no-repeat center / cover;
    width: 26px;
    height: 26px;
    bottom: 10px;
    right: 10px;
}

.transition__item--buy a::before{
    transform: rotate(90deg);
}

.transition__item--sell a{
    background-color: #2985A7;
}

.transition__item--renovation a{
    background-color: #55493B;
}

.transition__item--contact a{
    background-color: #236CB1;
}

.icon__img{
    width: 70px;
}

.icon__img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.transition__txt{
    color: #FFF;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.transition__txt span{
    font-family: "IBM Plex Sans Devanagari", sans-serif;
    color: #FFE100;
    font-size: 14px;
    font-weight: 500;
    line-height: 90%;
    text-align: center;
}

.txt__box {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 15px 19px 14px;
    border-right: 1px solid #eeeeee;
    border-bottom: 1px solid #eeeeee;
    border-left: 1px solid #eeeeee;
    background-color: #ffffff;
}

/* お客様の声 */

.section__wrapper--customer {
    background-color: #F1F8FC;
    padding-block: 0 55px;
    overflow: visible;
}

.section__inner--customer {
    gap: 60px;
    align-items: flex-start;
    z-index: 0;
}

.section__inner--customer::before{
    position: absolute;
    content: "";
    background: url(/images/top/illustration01.webp) no-repeat center / cover;
    width: 173px;
    height: 343px;
    bottom: -132px;
    left: 265px;
    z-index: -1;
    pointer-events: none;
}

.flex__box--customer {
    flex-shrink: 0;
    width: 384px;
}

.ttl__box--customer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.common__img--customer{
    height: 240px;
}

.section__wrapper--customer .txt__box {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    padding: 0 20px 20px;
}

.customer__txt {
    margin: 0;
    overflow: hidden;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.customer__name {
    margin: 0;
    overflow: hidden;
    color: #2951a7;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    text-align: right;
}

/* 更新情報 */
.section__wrapper--news {
    position: relative;
    z-index: 1;
    background-color: #FFFFFF;
}

.ttl__box--news {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 0 27px;
    text-align: center;
}

.ttl__box--news .section__ttl--news,
.ttl__box--news .section__sub-ttl--news {
    margin: 0;
}

.section__inner--news {
    position: relative;
    gap: 40px;
    align-items: center;
    padding-block: 0 40px;
}

.flex__box--news {
    flex-shrink: 0;
    width: 250px;
    gap: 24px;
}

.common__list--news.scrollbar-cont {
    width: 1140px;
    max-height: 420px;
    margin: 0;
    padding: 0 20px 0 0;
    overflow-y: auto;
    list-style: none;
}

.common__list--news.scrollbar-cont::-webkit-scrollbar {
    display: none;
}

.news__item {
    display: flex;
    margin-bottom: 24px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.7;
}

.news__date {
    flex-shrink: 0;
    margin: 0;
}

.news__date time {
    display: block;
    width: 100px;
    margin-right: 29px;
    color: #004898;
}


.news__em {
    color: #004898;
}

.news__inner--blog {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.news__img {
    flex-shrink: 0;
    margin: 0;
}

.news__img img {
    display: block;
    width: 120px;
    height: 90px;
    object-fit: cover;
}

.news__detail {
    min-width: 0;
}

.news__title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
}

.news__title a {
    color: #1a73e8;
    text-decoration: none;
}

.news__excerpt {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #555;
}

.section__wrapper--news .simplebar-track.simplebar-vertical {
    background: #E9E9E9;
    border-radius: 999px;
    width: 10px;
    right: 0;
}

.section__wrapper--news .simplebar-track.simplebar-vertical .simplebar-scrollbar::before {
    background: #004898;
    border-radius: 999px;
    width: 8px;
    opacity: 1;
    left: 1px;
    top: 0;
    right: auto;
}

.section__wrapper--news .simplebar-track.simplebar-vertical .simplebar-scrollbar.simplebar-visible::before {
    opacity: 1;
}

.section__wrapper--news .member__btn-wrap {
    justify-content: center;
    width: 100%;
}

/* 物件を探す */

.section__wrapper--search {
    position: relative;
    background: url(/images/top/search_bg.webp) no-repeat center / cover;
    width: 100%;
    z-index: 1;
    padding-block: 38px 55px;
}

.search__bg {
    position: absolute;
    top: 0;
    left: 50%;
    z-index: 0;
    width: 1920px;
    height: 100%;
    min-height: 800px;
    transform: translateX(-50%);
    pointer-events: none;
}

.search__bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom center;
}

.search__bg::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(255, 255, 255, 0.9);
    content: "";
}

.section__inner--search {
    z-index: 1;
    flex-direction: column;
    align-items: flex-start;
}

.section__wrapper--search .ttl__box--search {
    flex-direction: column;
    gap: 18px;
    margin-bottom: 35px;
}

.search__row--nav {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 40px;
}

.search__nav-item {
    position: relative;
    width: 270px;
    height: 180px;
}

.search__nav-tile {
    position: relative;
    display: block;
    width: 270px;
    height: 180px;
    overflow: hidden;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.search__nav-tile-img {
    width: 270px;
    height: 180px;
    margin: 0;
    overflow: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.search__nav-tile-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom center;
}

.search__nav-tile-label {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 250px;
    height: 61px;
    padding: 3px 12px 6px;
    background-color: rgba(41, 81, 167, 0.85);
    color: #ffffff;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    transform: translate(-50%, -50%);
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.search__nav-hover {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    height: 100%;
    padding: 20px;
    background-color: #ffffff;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.search__nav-item:hover .search__nav-hover,
.search__nav-item:focus-within .search__nav-hover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0.15s;
}

.search__nav-item:hover .search__nav-tile-img,
.search__nav-item:focus-within .search__nav-tile-img,
.search__nav-item:hover .search__nav-tile-label,
.search__nav-item:focus-within .search__nav-tile-label {
    opacity: 0;
    visibility: hidden;
    transition-delay: 0.15s;
}

.search__nav-hover-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 44px;
    padding: 16px 12px 15px;
    background-color: #2951a7;
    color: #ffffff;
    border: 1px solid #2951a7;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    transition: opacity 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.search__nav-hover-link:hover {
    opacity: 1;
    background-color: #ffffff;
    color: #2951a7;
}

.search__row--split {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    width: 100%;
    margin-bottom: 39px;
}

.search__heading {
    margin: 0 0 10px;
    color: #2951a7;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
}

.search__heading--inline {
    flex-shrink: 0;
    margin: 0;
    white-space: nowrap;
}

.search__col--type {
    flex: 0 0 840px;
    width: 840px;
}

.search__type-grid {
    display: flex;
    gap: 10px;
}

.search__type-card {
    position: relative;
    display: block;
    flex: 0 0 202.5px;
    width: 202.5px;
    overflow: hidden;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    transition: transform 0.3s ease;
}

.search__type-card:hover{
    opacity: 1;
    transform: translateY(-10px);
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

.search__type-card-img {
    width: 100%;
    margin: 0;
    aspect-ratio: 300 / 400;
    overflow: hidden;
}

.search__type-card-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom center;
}

.search__type-card-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 162px;
    min-height: 138px;
    padding: 6px 0;
    transform: translate(-50%, -50%);
}

.search__type-card-icon {
    display: block;
    width: 65px;
    height: 65px;
}

.search__type-card-icon img {
    display: block;
    width: 65px;
    height: 65px;
}

.search__type-card-label {
    color: #ffffff;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.search__col--price {
    flex: 1 1 auto;
    min-width: 0;
}

.search__price-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.search__price-item-wrap {
    margin: 0;
}

.search__price-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 65px;
    padding: 0 13px 0 10px;
    border: 1px solid rgba(85, 73, 59, 0.16);
    background-color: #fffef0;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    color: #55493b;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.search__price-item:hover {
    border-color: #55493b;
    background-color: #55493b;
    color: #ffffff;
}

.search__price-icon {
    display: block;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}

.search__price-icon img {
    display: block;
    width: 24px;
    height: 24px;
}

.search__price-txt {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0;
    line-height: 0;
}

.search__price-txt--sm {
    font-size: 19px;
    line-height: 1.25;
}

.search__price-txt--lg {
    font-size: 24px;
    line-height: 1.25;
}

.search__price-arrow {
    display: block;
    flex-shrink: 0;
    width: 7px;
    height: 12px;
    background-color: #55493b;
    mask-image: url(/images/top/icon_search-arrow.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: url(/images/top/icon_search-arrow.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    transform: rotate(0deg);
    transition: background-color 0.2s ease;
}

.search__price-item:hover .search__price-arrow {
    background-color: #ffffff;
}

.search__price-item:hover .search__price-icon img {
    filter: brightness(0) invert(1);
}

.search__keyword-bar {
    display: flex;
    gap: 15px;
    align-items: center;
    width: 100%;
    padding: 16px 20px;
    background-color: #ffffff;
    margin-bottom: 39px;
}

.search__keyword-form {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    align-items: stretch;
    min-width: 0;
    height: 60px;
    overflow: hidden;
    border-radius: 4px;
    background-color: #ffffff;
}

.search__keyword-field {
    display: flex;
    flex: 1 1 auto;
    align-items: stretch;
    min-width: 0;
    width: 100%;
}

.search__keyword-label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    white-space: nowrap;
}

.search__keyword-input {
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    padding: 0 15px;
    border: none;
    background-color: transparent;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    border-top: 1px solid #cac5b6;
    border-bottom: 1px solid #cac5b6;
    border-left: 1px solid #cac5b6;
}

.search__keyword-input::placeholder {
    color: #c5c5c5;
}

.search__keyword-btn {
    flex-shrink: 0;
    width: 130px;
    padding: 0 20px;
    border: none;
    border-radius: 0 3px 3px 0;
    background-color: #55493b;
    color: #ffffff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.search__keyword-btn:hover {
    background-color: #ffffff;
    color: #55493b;
    box-shadow: inset 0 0 0 1px #55493b;
}

.search__row--popular {
    position: relative;
    display: flex;
    gap: 30px;
    align-items: flex-start;
    width: 100%;
    z-index: 1;
}

.search__row--popular::before{
    position: absolute;
    content: "";
    background: url(/images/top/illustration02.webp) no-repeat center / cover;
    width: 349px;
    height: 285px;
    bottom: -61px;
    left: -35px;
    z-index: -1;
}

.search__popular-intro {
    flex: 0 0 288px;
    width: 288px;
}

.search__popular-desc {
    margin: 0;
}

.search__popular-desc-line {
    margin: 0;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
}

.search__popular-cards {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 15px;
    align-items: flex-end;
    min-width: 0;
}

.search__popular-cards-row {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: flex-start;
}

.search__popular-card {
    display: block;
    width: 264px;
    text-decoration: none;
    transition: transform 0.3s ease;
}

.search__popular-card:hover{
    opacity: 1;
    transform: translateY(-10px);
}

.search__popular-card-img {
    width: 264px;
    height: 120px;
    margin: 0;
    overflow: hidden;
    box-shadow: 0 3px 2px rgba(0, 0, 0, 0.1);
}

.search__popular-card-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom center;
}

.search__popular-card-img--placeholder {
    background-color: #c5c5c5;
}

.search__popular-card-caption {
    display: flex;
    align-items: baseline;
    margin: 3px 0 0;
    color: #55493b;
    padding-left: 16px;
    font-weight: 700;
    line-height: 0;
    position: relative;
}

.search__popular-dot {
    display: block;
    flex-shrink: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #55493b;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}

.search__popular-num {
    font-size: 24px;
    line-height: 1.25;
    letter-spacing: 0.05em;
}

.search__popular-unit {
    font-size: 19px;
    line-height: 1.25;
    letter-spacing: 0.05em;
}

/* 新着物件（org3・Figma 13358:4933） */

.section__wrapper--new {
    background-color: #ffffff;
    padding-block: 60px 57px;
}

.section__inner--new{
    gap: 60px;
    align-items: flex-start;
}

.common__item--new a{
    gap: 0;
}

.swiper__nav--bkn {
    bottom: auto;
    flex-direction: row;
    gap: 5px;
    width: 89px;
    margin-bottom: 19px;
}

.swiper__nav--bkn.swiper__nav--recommend{
    margin-left: auto;
}

/* おすすめ物件 */

.section__wrapper--recommend{
    padding-block: 60px 58px;
}

.section__inner--recommend{
    flex-direction: row-reverse;
    align-items: flex-start;
    gap: 60px;
    isolation: isolate;
}

.section__inner--recommend > .flex__box--bkn {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
}

.section__inner--recommend > .swiper__wrap--recommend {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    min-width: 0;
    align-items: flex-start;
    align-self: flex-start;
    justify-content: flex-end;
}

/* 右端はスライダー列の内側で切る（タイトル列 z-index より下に回り込まない）。左は次スライドのチラ見せ用に広げる */
.section__wrapper--recommend:not(.is-bkn-slider-few) .js-org-swiper {
    width: 100%;
    clip-path: inset(-40px 0 -24px -230%);
}

.ttl__box--recommend {
    width: 288px;
}

/*
 * おすすめ: swiper-wrapper に row-reverse を付けると Swiper の translate と競合し非表示になる。
 * 並びは Swiper の rtl オプション（org-top.js）に任せる。
 */

.common__item--recommend a {
    gap: 0;
    direction: ltr;
    unicode-bidi: isolate;
}

/* 会員登録・会員様限定物件（org5・Figma 13358:4975） */

.section__wrapper--member {
    background-color: #ffffff;
}

.section__inner--member {
    flex-direction: column;
    align-items: center;
    gap: 50px;
}

.section__wrapper--member .common__item--member {
    width: 300px;
}

.section__wrapper--member .common__type--bkn {
    background-color: #55493b;
}

.member__hero {
    position: relative;
    width: 1140px;
    height: 350px;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    z-index: 1;
    transition: transform 0.3s ease-in-out;
}

.member__hero:has(.member__hero-circle:hover) {
    transform: translateY(-10px);
    opacity: 1;
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

.member__hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 1140px;
}

.member__hero-bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.member__hero-person {
    position: absolute;
    bottom: 0;
    left: 13px;
    z-index: 1;
    width: auto;
    height: 328px;
}

.member__hero-person img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: bottom center;
}

.member__hero-heading {
    position: absolute;
    top: 42px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    width: 487px;
}

.member__hero-heading img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.member__hero-laurel {
    flex-shrink: 0;
}

.member__hero-laurel--left {
    transform: rotate(-5deg);
}

.member__hero-laurel--right {
    transform: scaleX(-1) rotate(-5deg);
}

.member__hero-title-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    color: #ffe100;
    text-align: center;
    white-space: nowrap;
}

.member__hero-ttl {
    margin: 0;
    font-size: 64px;
    font-weight: 700;
    line-height: 1;
    color: #ffe100;
}

.member__hero-en {
    margin: 0;
    font-family: 'IBM Plex Sans Devanagari', sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
    color: #ffe100;
}

.member__hero-stats {
    position: absolute;
    top: 149px;
    left: 50%;
    z-index: 2;
    display: flex;
    gap: 10px;
    transform: translateX(-50%);
}

.member__hero-stat {
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 0 30px;
    border: 1px solid #ffffff;
    background-color: rgba(0, 0, 0, 0.25);
    width: 319px;
    height: 63px;
}

.member__hero-stat-label {
    margin: 0;
    color: #ffffff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    white-space: nowrap;
}

.member__hero-stat-num {
    display: flex;
    flex-wrap: nowrap;
    gap: 5px;
    align-items: flex-end;
    line-height: 1;
}

.member__hero-stat-value {
    font-family: 'IBM Plex Sans Devanagari', sans-serif;
    font-size: 45px;
    font-weight: 600;
    color: #ffe100;
}

.member__hero-stat-unit {
    color: #ffffff;
    font-size: 16px;
    font-weight: 500;
    line-height: 2.6;
    white-space: nowrap;
}

.member__hero-benefits {
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: 2;
    display: flex;
    gap: 10px;
    justify-content: center;
    transform: translateX(-50%);
}

.member__benefit {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    width: 170px;
    height: 134px;
}

.member__benefit-shape {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0;
    width: 170px;
    height: 122px;
    background-color: rgba(255, 255, 255, 0.95);
    clip-path: polygon(50% 0%, 100% 30%, 100% 100%, 0 100%, 0 30%);
}

.member__benefit-txt {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100px;
    margin: 0 0 2px;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
}

.member__benefit-txt p {
    margin: 0;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
}

.member__benefit-em {
    font-weight: 700;
}

.member__hero-circle {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.member__hero-circle:hover {
    opacity: 1;
}

.member__hero-cta {
    position: absolute;
    right: -33px;
    bottom: -33px;
    z-index: 6;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 230px;
    height: 230px;
    border-radius: 9999px;
    background-color: #cc0000;
    color: #ffffff;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 1.3px;
    text-align: center;
    padding-right: 11px;
    pointer-events: none;
}

.member__hero-cta span {
    display: block;
}

.member__lower {
    display: flex;
    flex-wrap: nowrap;
    gap: 30px;
    align-items: flex-start;
    box-sizing: border-box;
    width: 100%;
    padding-left: 20px;
}

.member__aside {
    display: flex;
    flex-shrink: 0;
    gap: 20px;
    align-items: flex-start;
    color: #111111;
}

.member__vert-copy {
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: flex-start;
}

.member__vert-line {
    writing-mode: vertical-rl;
    width: 19px;
    margin: 0;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    font-feature-settings: 'vert' 1;
    letter-spacing: 2px;
}

.member__vert-accent {
    color: #cc0000;
}

.member__section-ttl {
    width: 32px;
    margin: 0;
    color: #111111;
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    writing-mode: vertical-rl;
    letter-spacing: 3px;
}

.member__main {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    gap: 40px;
    align-items: flex-end;
    min-width: 0;
    max-width: 940px;
}

.member__cards {
    display: flex;
    flex-wrap: nowrap;
    gap: 20px;
    justify-content: flex-end;
    width: 100%;
}

.member__card-inner {
    position: relative;
    width: 300px;
}

.section__wrapper--member:not(.is-member-logged-in) .member__card-link {
    pointer-events: none;
    cursor: default;
    gap: 0;
}

.section__wrapper--member:not(.is-member-logged-in) .common__item--member a:hover {
    transform: none;
}

.section__wrapper--member.is-member-logged-in .member__card-link {
    pointer-events: auto;
    cursor: pointer;
    gap: 0;
    filter: none;
}

.section__wrapper--member.is-member-logged-in .common__item--member a:hover {
    opacity: 1;
    transform: translateY(-10px);
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

.member__card-lock {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.member__card-lock-msg {
    margin: 0 0 21px;
    color: #111111;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    white-space: nowrap;
}

.member__main .member__card-cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 190px;
    height: 50px;
    padding: 0 36px 0 24px;
    border: 1px solid #ffbb00;
    background-color: #ffbb00;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    color: #ffffff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.member__main .member__card-cta:hover {
    background-color: #ffffff;
    color: #ffbb00;
    opacity: 1;
}

.member__card-cta::after {
    content: "";
    position: absolute;
    top: 0;
    right: 18px;
    bottom: 0;
    width: 5px;
    height: 10px;
    margin: auto 0;
    background-color: #ffffff;
    mask-image: url(/images/top/icon_ctn-arrow.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: url(/images/top/icon_ctn-arrow.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    transition: background-color 0.2s ease;
}

.member__main .member__card-cta:hover::after {
    background-color: #ffbb00;
}

.member__btn-wrap {
    display: flex;
    justify-content: flex-end;
    width: 100%;
}

.common__btn--member {
    margin-left: 0;
}

/* Instagramルームツアー（org6・Figma 13358:5025） */

.section__wrapper--instagram {
    position: relative;
    overflow: visible;
    padding-block: 40px 62px;
}

.section__wrapper--instagram::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 0;
    height: 467px;
    background-color: #faf4ec;
    pointer-events: none;
}

.section__inner--instagram {
    position: relative;
    z-index: 1;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.section__inner--instagram::before{
    position: absolute;
    content: "";
    background: url(/images/top/insta_before.webp) no-repeat center / cover;
    width: 1318px;
    height: 388px;
    bottom: -60px;
    left: -83px;
    z-index: 0;
    pointer-events: none;
}

.ttl__box--instagram {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    text-align: center;
    margin-bottom: 35px;
}

.ttl__box--instagram .section__ttl--instagram,
.ttl__box--instagram .section__sub-ttl--instagram {
    margin: 0;
}

.instagram__cards {
    display: flex;
    flex-wrap: nowrap;
    gap: 20px;
    align-items: flex-start;
    justify-content: center;
    margin: 0 0 40px;
    padding: 0;
    list-style: none;
}

.instagram__card {
    flex-shrink: 0;
    width: 304px;
    height: 542px;
    max-width: 100%;
}

.instagram__card .instagram-media,
.instagram__card iframe {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 auto !important;
}

.instagram__card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.instagram__card-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);
    pointer-events: none;
}

.instagram__card-caption {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: #ffffff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 1.92px;
    text-align: center;
    pointer-events: none;
}

.instagram__card-caption p {
    margin: 0;
}

.common__btn--instagram {
    margin-left: 0;
}

/* 施工事例（org7）・お役立ち情報（org8）共通ブログカード */

[class*="blog__list--"] {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    margin: 0;
    padding: 0;
    list-style: none;
}

.blog__list--renovation {
    gap: 30px;
    justify-content: center;
    width: 100%;
}

[class*="blog__item--"] {
    flex-shrink: 0;
    width: 300px;
}

.blog__item--renovation {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: #ffffff;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.blog__item--renovation > a {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    background-color: transparent;
    box-shadow: none;
    text-decoration: none;
    transition: none;
}

.blog__item--renovation > a:hover {
    opacity: 1;
    transform: none;
    box-shadow: none;
}

.blog__item--renovation:hover {
    transform: translateY(-10px);
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

[class*="blog__item--"]:not(.blog__item--renovation) a {
    display: flex;
    flex-direction: column;
    gap: 0;
    background-color: #ffffff;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    transition: transform 0.3s ease;
}

[class*="blog__item--"]:not(.blog__item--renovation) a:hover {
    opacity: 1;
    transform: translateY(-10px);
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

[class*="blog__img--"] {
    width: 300px;
    height: 200px;
    background-color: #f4f4f4;
}

[class*="blog__img--"] img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background-color: #f5f5f5;
}

[class*="blog__box--"] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-sizing: border-box;
    width: 100%;
    padding: 11px 20px 20px;
    border-right: 1px solid #eeeeee;
    border-bottom: 1px solid #eeeeee;
    border-left: 1px solid #eeeeee;
    background-color: #ffffff;
}

[class*="blog__txt-box--"] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    width: 100%;
}

.date__txt {
    margin: 0;
    color: #2951a7;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    text-align: left;
}

[class*="blog__txt--"] {
    margin: 0;
    color: #111111;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    display: -webkit-box;
    line-clamp: 2;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tag__box {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    align-items: center;
    width: 100%;
}

.tag__txt {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 22px;
    margin: 0;
    padding: 0 8px;
    background-color: #f4f4f4;
    color: #828282;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
}

/* 施工事例（org7・Figma 13358:5043） */

.blog__img--renovation {
    flex-shrink: 0;
    margin: 0;
    overflow: hidden;
}

.blog__img--renovation img {
    object-fit: cover;
}

.blog__item--renovation .blog__box--renovation {
    flex: 1 1 auto;
    min-height: 88px;
    padding-bottom: 12px;
    border-bottom: none;
}

.blog__item--renovation .tag__box {
    box-sizing: border-box;
    padding: 0 20px 16px;
    border-right: 1px solid #eeeeee;
    border-bottom: 1px solid #eeeeee;
    border-left: 1px solid #eeeeee;
}

.blog__item--renovation .tag__txt {
    height: auto;
    min-height: 22px;
    max-width: 100%;
    padding-block: 3px;
    line-height: 1.3;
    white-space: normal;
}

.blog__item--renovation .tag__txt a {
    color: inherit;
    text-decoration: none;
    background-color: transparent;
    box-shadow: none;
    transition: opacity 0.2s ease;
}

.blog__item--renovation .tag__txt a:hover {
    opacity: 0.7;
    transform: none;
    box-shadow: none;
}

.section__wrapper--renovation {
    padding-block: 36px 60px;
}

.section__inner--renovation {
    flex-direction: column;
    align-items: center;
    z-index: 1;
}

.section__inner--renovation::before{
    position: absolute;
    content: "";
    background: url(/images/top/illustration03.webp) no-repeat center / cover;
    width: 232px;
    height: 318px;
    bottom: -109px;
    right: -112px;
    z-index: -1;
}

.ttl__box--renovation {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    margin: 0;
    text-align: center;
    margin-bottom: 12px;
}

.ttl__box--renovation .section__ttl--renovation,
.ttl__box--renovation .section__sub-ttl--renovation {
    margin: 0;
}

.detail__sub-ttl {
    margin: 0;
    color: #55493b;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    margin-bottom: 26px;
}

[class*="renovation__btn-box"] {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin: 28px 0 0;
}

[class*="renovation__btn-box"] .member__btn-wrap {
    width: auto;
    justify-content: center;
}

.common__btn--renovation {
    border-color: #779ae6;
    color: #2951a7;
}

.common__btn--renovation::before {
    background-color: #2951a7;
}

.common__btn--renovation:hover {
    border-color: #779ae6;
    background-color: #779ae6;
    color: #ffffff;
}

.common__btn--renovation:hover::before {
    background-color: #ffffff;
}

/* お役立ち情報（org8・Figma 13358:5054） */

.section__wrapper--useful {
    padding-block: 40px 60px;
}

.section__inner--useful {
    flex-direction: column;
    align-items: center;
}

.ttl__box--useful {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 0 27px;
    text-align: center;
}

.ttl__box--useful .section__ttl--useful,
.ttl__box--useful .section__sub-ttl--useful {
    margin: 0;
}

.useful__panel {
    display: flex;
    flex-direction: column;
    gap: 13px;
    align-items: center;
    width: 100%;
}

.useful__tab-box {
    display: flex;
    flex-wrap: nowrap;
    gap: 5px;
    align-items: center;
    justify-content: center;
}

.useful__tab {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 200px;
    height: 50px;
    margin: 0;
    padding: 0;
    border: none;
    background-color: transparent;
    box-shadow: none;
    color: #c3c3c3;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: center;
    white-space: nowrap;
    cursor: pointer;
}

.useful__tab--active {
    background-color: #55493b;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    color: #ffffff;
    opacity: 1;
    pointer-events: none;
}

.useful__slider-area {
    position: relative;
    width: 930px;
}

.useful__tab-panel {
    display: none;
    width: 100%;
}

.useful__tab-panel--active {
    display: block;
}

.useful__tab-panel[hidden] {
    display: none !important;
}

.useful__empty {
    margin: 0;
    padding: 40px 20px;
    color: #828282;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;
}

.useful__slider-view {
    width: 100%;
    overflow: visible;
}

.blog__list--useful {
    width: auto;
}

.blog__item--useful {
    width: 300px;
}

.section__inner--useful .member__btn-wrap {
    justify-content: center;
    width: 100%;
    margin-top: 28px;
}

.common__btn--useful {
    margin-left: 0;
}

.blog__txt--useful{
    display: -webkit-box;
    line-clamp: 3;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* スタッフ紹介（org9・Figma 13358:5801） */

.section__wrapper--staff {
    position: relative;
    overflow: visible;
    padding-block: 60px;
    background: url(/images/top/staff_bg.webp) no-repeat center / cover;
}

.section__inner--staff {
    position: relative;
    z-index: 1;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    overflow: visible;
}

.staff__upper {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    width: 1140px;
}

.ttl__box--staff {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    gap: 14px;
    align-items: flex-start;
    margin: 0;
    text-align: left;
}

.ttl__box--staff .section__ttl--staff,
.ttl__box--staff .section__sub-ttl--staff {
    margin: 0;
    line-height: 1;
}

.staff__intro {
    display: flex;
    flex-direction: column;
    gap: 15px;
    align-items: flex-start;
    width: 788px;
}

.staff__intro-ttl {
    position: relative;
    margin: 0;
    color: #55493b;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
}

.staff__intro-ttl-accent {
    background: linear-gradient(transparent 55%, #ffe100 55%);
}

.staff__intro-txt {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
}

.staff__intro-txt p {
    margin: 0;
    color: #111111;
    font-size: 19px;
    font-weight: 500;
    line-height: 2;
}

.staff__slider-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    flex-shrink: 0;
    width: 1270px;
}

.staff__cards {
    display: block;
    width: 100%;
    padding: 0 0 16px;
    box-sizing: border-box;
    overflow: hidden;
}

.staff__cards .js-org-swiper {
    width: 100%;
    height: auto;
    overflow: hidden;
}

.staff__cards .js-org-swiper .swiper-wrapper {
    align-items: flex-start;
    transition-property: transform, height;
}

.staff__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.staff__pair.swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    width: 100%;
    height: auto;
    box-sizing: border-box;
    /* rotate / hover ではみ出す上下左右をスライド内で確保 */
    padding: 40px;
    overflow: visible;
}

.swiper__nav--staff {
    flex-direction: row;
    align-items: center;
    gap: 16px;
    bottom: auto;
}

.swiper__pagination--staff {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
}

.swiper__pagination--staff .swiper-pagination-current,
.swiper__pagination--staff .swiper-pagination-total {
    font-variant-numeric: tabular-nums;
}

.staff__slider-area.is-staff-slider-single .swiper__nav--staff {
    display: none;
}

.staff__card {
    flex-shrink: 0;
}

.staff__card a {
    display: block;
    color: inherit;
    text-decoration: none;
    -webkit-user-drag: none;
}

.staff__card a:hover {
    opacity: 1;
}

.staff__card img {
    -webkit-user-drag: none;
    user-select: none;
    pointer-events: none;
}

.staff__card--01 {
    z-index: 1;
    margin-right: -20px;
    transform: rotate(-3deg);
    width: 585px;
}

.staff__card--02 {
    z-index: 2;
    transform: rotate(4deg);
    width: 575px;
}

.staff__card-offset {
    padding-top: 70px;
}

.staff__card-inner {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    box-sizing: border-box;
    padding: 20px;
    border: 1px solid #e4e4e4;
    background-color: #ffffff;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.staff__card:hover .staff__card-inner {
    transform: translateY(-10px);
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

.staff__img {
    flex-shrink: 0;
    width: 240px;
    height: 347px;
    margin: 0;
    overflow: hidden;
}

.staff__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.staff__img--02 {
    height: 347px;
}

.staff__box {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
    width: 285px;
    padding: 0 30px 20px 0;
}

.staff__card--02 .staff__box {
    padding-right: 0;
}

.staff__head {
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: flex-start;
}

.staff__role {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 2px 8px;
    background-color: #55493b;
    color: #ffffff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    white-space: nowrap;
}

.staff__name-box {
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: flex-start;
}

.staff__name {
    margin: 0;
    color: #2951a7;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
}

.staff__name-en {
    margin: 0;
    color: rgba(85, 73, 59, 0.5);
    font-family: 'IBM Plex Sans Devanagari', sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
}

.staff__txt {
    margin: 0;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    width: 275px;
}

/* 会社概要（org10・Figma 13358:5099） */

.section__inner--company {
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

.ttl__box--company {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
    width: 290px;
    margin: 0;
    text-align: left;
}

.ttl__box--company .section__ttl--company,
.ttl__box--company .section__sub-ttl--company {
    margin: 0;
    line-height: 1;
}

.company__cols {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    width: 1140px;
}

.company__col {
    flex: 1 1 0;
    min-width: 0;
}

.company__col--main {
    display: flex;
    flex-direction: column;
    gap: 36px;
}

.company__list {
    display: flex;
    flex-direction: column;
    gap: 19px;
    width: 550px;
}

.company__col--sub {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
}

[class*="company__item"] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    box-sizing: border-box;
    width: 100%;
    padding-bottom: 20px;
    border-bottom: 1px solid #370101;
}

.company__label {
    flex-shrink: 0;
    width: 117px;
    margin: 0;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
}

.company__value,
.company__value p {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    color: #111111;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
}

.company__img {
    width: 100%;
    margin: 0;
    aspect-ratio: 300 / 200;
    overflow: hidden;
}

.company__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.section__inner--company .member__btn-wrap {
    justify-content: center;
    width: 100%;
}

.common__btn--company {
    margin-left: 0;
}

/* お問い合わせ（org11・Figma 13358:5834） */

.section__wrapper--contact {
    position: relative;
    overflow: visible;
    padding-block: 47px 53px;
    z-index: 1;
}

.section__inner--contact {
    position: relative;
    z-index: 1;
    flex-direction: column;
    align-items: center;
}

.section__inner--contact::before{
    position: absolute;
    content: "";
    background: url(/images/top/contact_before.webp) no-repeat center / cover;
    width: 1449px;
    height: 374px;
    left: -126px;
    bottom: -156px;
    z-index: -1;
}

.ttl__box--contact {
    display: flex;
    flex-direction: column;
    gap: 0px;
    align-items: center;
    margin: 0 0 30px;
    text-align: center;
}

.ttl__box--contact .section__ttl--contact,
.ttl__box--contact .section__sub-ttl--contact {
    margin: 0;
}

.contact__lead {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    text-align: center;
    margin: 0 0 28px;
}

.contact__lead-txt {
    width: 1140px;
    margin: 0;
    color: #55493b;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
}

.contact__lead-sub {
    width: 856px;
}

.contact__lead-sub p {
    margin: 0;
    color: #55493b;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
}

.contact__actions {
    display: flex;
    flex-direction: column;
    gap: 17px;
    align-items: center;
}

.contact__rows {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
}

.contact__row {
    display: flex;
    gap: 10px;
    align-items: center;
}

[class*="contact__btn"] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 340px;
    height: 70px;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

[class*="contact__btn"]:hover {
    opacity: 1;
    transform: translateY(-10px);
    box-shadow: 0 13px 16px rgba(0, 0, 0, 0.12);
}

.contact__btn--tel {
    gap: 5px;
    padding: 0 20px;
    border: 1px solid #e4e4e4;
    background-color: #ffffff;
    box-shadow: none;
}

.contact__btn--tel:hover {
    transform: unset;
    box-shadow: none;
    pointer-events: none;
}

.contact__tel-icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
}

.contact__tel-icon img {
    display: block;
    width: 28px;
    height: 28px;
}

.contact__tel-num {
    color: #2951a7;
    font-family: 'IBM Plex Sans Devanagari', sans-serif;
    font-size: 30px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 1.5px;
    white-space: nowrap;
}

.contact__btn--line {
    padding: 0 20px 0 15px;
    background-color: #06c755;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    color: #ffffff;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.contact__btn--mail {
    padding: 0 20px 0 14px;
    background-color: #236CB1;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    color: #ffffff;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.contact__btn--visit {
    padding: 0 20px 0 18px;
    background-color: #55493b;
    box-shadow: 0 3px 1px rgba(0, 0, 0, 0.1);
    color: #ffffff;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.contact__btn--line::before,
.contact__btn--mail::before,
.contact__btn--visit::before {
    position: absolute;
    content: "";
    top: 0;
    right: 20px;
    bottom: 0;
    width: 7px;
    height: 12px;
    margin: auto 0;
    background-color: #ffffff;
    mask-image: url(/images/top/contact_arrow.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: url(/images/top/contact_arrow.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

.contact__info {
    display: flex;
    gap: 15px;
    align-items: flex-start;
    justify-content: center;
}

.contact__info p {
    margin: 0;
    color: #111111;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
}
