@charset "utf-8";

/*==============================
    page top（ESTATE）
==============================*/
.indexEstate .secPageTop .pageTopBg,
.detailsEstate .secPageTop .pageTopBg{
    background-image:url("../img/estate/bgPageTop.jpg");
}
.indexEstate .secPageTop .pageTopTit,
.detailsEstate .secPageTop .pageTopTit{
    margin-top:6.6rem;
}
@media only screen and (max-width:1215px){
    .indexEstate .secPageTop .pageTopBg,
    .detailsEstate .secPageTop .pageTopBg{
        background-image:url("../img/estate/bgPageTopSp.jpg");
    }
    .indexEstate .secPageTop .pageTopTit,
    .detailsEstate .secPageTop .pageTopTit{
        margin-top:0;
    }
}

/*==============================
    背景
==============================*/
.indexEstate .pnkz,
.secEstateMap,
.secEstateList{
    background:var(--bgColorBeige);
}
@media only screen and (max-width:1215px){
    .indexEstate .pnkz{
        background:none;
    }
}

/*==============================
    セクション見出し（マップ／一覧）
==============================*/
.estateSecHead{
    margin:0 0 5rem;
    text-align:center;
}
.estateSecJa{
    display:block;
    color:var(--textColor);
    font-size:var(--pcFontSize30);
    line-height:1.4;
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:500;
}
.estateSecEn{
    display:block;
    margin-top:1.5rem;
    color:var(--textColorTeal);
    font-family:'Cormorant', serif;
    font-size:var(--pcFontSize20);
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:700;
}
@media only screen and (max-width:1215px){
    .estateSecHead{
        margin:0 0 2.4rem;
    }
    .estateSecJa{
        font-size:var(--spFontSize16);
        letter-spacing:0;
    }
    .estateSecEn{
        margin-top:0.6rem;
        font-size:var(--spFontSize12);
        letter-spacing:0;
    }
}

/*==============================
    MAP
==============================*/
.secEstateMap{
   
}
.secEstateMap .estateMapInner{
    padding:7.6rem 0 12rem;
    border-bottom:1px solid var(--borderColor);
}
.estateMapCanvas{
    width:100%;
    height:70rem;
}
.secEstateMap .poi-info-window{
    padding:1.2rem;
}
.secEstateMap .gm-style .gm-style-iw-c{
    border-radius:0.4rem !important;
    padding:0 !important;
    overflow:visible !important;
    max-width:none !important;
    box-shadow:0 1rem 2.9rem rgba(0, 0, 0, 0.1) !important;
}
.secEstateMap .gm-style .gm-style-iw-chr{
    position:absolute !important;
    top:0 !important;
    right:0 !important;
    width:0 !important;
    height:0 !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    overflow:visible !important;
    z-index:3 !important;
}
.secEstateMap .gm-style .gm-style-iw-c .gm-style-iw-d{
    overflow:visible !important;
}
.secEstateMap .gm-style .gm-style-iw-c button:hover{
    opacity:1 !important;
}
.secEstateMap .gm-style-moc{
    display:none !important;
}
.secEstateMap .gm-style .gm-style-iw-t::after{
    display:none !important;
}
.secEstateMap .gm-style .gm-style-iw-tc{
    display:none !important;
}
.secEstateMap .gm-ui-hover-effect{
    width: 3rem !important;
    height: 3rem !important;
    top: -1.5rem !important;
    right: 1.5rem !important;
    z-index: 4 !important;
    border-radius: 50% !important;
    background: var(--textColorWarmGray) !important;
    opacity: 1 !important;
}
.secEstateMap .gm-ui-hover-effect>span{
    width:1.6rem !important;
    height:1.6rem !important;
    margin:0.7rem !important;
    background-color:var(--textColorWhite) !important;
}
.estateMapPopup{
    position:relative;
    box-sizing:border-box;
    width:auto;
}
.estateMapPopup::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-1.2rem;
    z-index:1;
    width:1.6rem;
    height:1.2rem;
    background:var(--bgColor);
    transform:translateX(-50%);
    clip-path:polygon(0 0, 100% 0, 50% 100%);
    filter:drop-shadow(0 0.4rem 0.6rem rgba(0, 0, 0, 0.08));
    pointer-events:none;
}
.estateMapPopupInner{
    display:flex;
    align-items:stretch;
    box-sizing:border-box;
    width:auto;
    max-width:38rem;
    min-width:36rem;
    height:15rem;
    padding:1.5rem;
    gap:1.2rem;
    background:var(--bgColor);
}
.estateMapPopupImg{
    position:relative;
    flex-shrink:0;
    width:12rem;
    height:12rem;
    overflow:hidden;
}
.estateMapPopupImg > img + img{
    display:none;
}
.estateMapPopupImg img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.estateMapPopupBody{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:1.2rem;
}
.estateMapPopupTxt{
    min-width:0;
}
.estateMapPopupTit,
.estateMapPopupNote{
    display:block;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.estateMapPopupTit{
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    font-size:var(--pcFontSize18);
    line-height:1.4;
    font-weight:bold;
    color:var(--textColor);
}
.estateMapPopupNote{
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    margin:0.2rem 0 0;
    font-size:var(--pcFontSize12);
    line-height:1.4;
    font-weight:500;
    color:var(--textColorWarmGray);
}
.estateMapPopupPrice{
    display:flex;
    align-items:baseline;
    gap:0.6rem;
    margin:0.6rem 0 0;
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
    line-height:1;
}
.estateMapPopupPriceLabel{
    flex-shrink:0;
    font-size:var(--pcFontSize13);
    font-weight:500;
    color:var(--textColor);
}
.estateMapPopupPriceNum{
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    font-size:var(--pcFontSize20);
    font-weight:bold;
    color:var(--textColor);
}
.estateMapPopupPriceUnit{
    flex-shrink:0;
    font-size:var(--pcFontSize13);
    font-weight:bold;
    color:var(--textColor);
}
.estateMapPopupBtns{
    display:flex;
    flex-wrap:nowrap;
    flex-shrink:0;
    gap:0.8rem;
    width:100%;
}
.estateMapPopupBtn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    flex:1 1 auto;
    min-width:0;
    height:3rem;
    padding:0 0.6rem 0.2rem;
    border-radius:0.3rem;
    font-size:var(--pcFontSize12);
    font-weight:bold;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    text-decoration:none;
    white-space:nowrap;
    word-break:keep-all;
    overflow:hidden;
}
.estateMapPopupBtn.isReserve{
    background:var(--textColorTeal);
    color:var(--textColorWhite);
}
.estateMapPopupBtn.isDetail{
    background:var(--bgColorBeigeLight);
    color:var(--textColor);
}
@media only screen and (max-width:1215px){
    .secEstateMap{
        padding:3.4rem 0 0;
    }
    .estateMapCanvas{
        height:calc((500 / 375) * var(--widthBase));
    }
    .estateMapPopup,
    .estateMapPopupInner{
        width:34rem;
        max-width:100%;
        min-width:0;
    }
    .estateMapPopupInner{
        height:15rem;
        padding:1.5rem;
        gap:1rem;
    }
    .estateMapPopupImg{
        width:12rem;
        height:12rem;
    }
    .estateMapPopupTit{
        font-size:var(--spFontSize18);
        letter-spacing:0;
    }
    .estateMapPopupNote{
        font-size:var(--spFontSize11);
        letter-spacing:0;
    }
    .estateMapPopupPriceNum{
        font-size:var(--spFontSize18);
        letter-spacing:0;
    }
    .estateMapPopupBtn{
        height:3rem;
        font-size:var(--spFontSize10);
        letter-spacing:0;
        white-space:nowrap;
        word-break:keep-all;
    }
    .secEstateMap .estateMapInner {
        padding: 0 0 5rem 0;
        border-bottom:none;
    }
}

/*==============================
    LIST
==============================*/
.secEstateList{
    padding:8rem 0 12rem;
    background:var(--bgColorBeige);
}
.estateList{
    display:flex;
    flex-wrap:wrap;
    gap:6rem 5rem;
    margin:0 0 8rem;
    padding:0;
    list-style:none;
}
.estateListItem{
    width:calc((100% - 10rem) / 3);
}
.estateCard{
    display:flex;
    flex-direction:column;
    height:100%;
    overflow:hidden;
    background:var(--bgColor);
}
.estateCardMedia{
    position:relative;
    z-index:2;
    overflow:visible;
}
.estateCardImg{
    overflow:hidden;
    aspect-ratio:540 / 356;
}
.estateCardImg > img + img{
    display:none;
}
.estateCardPhoto,
.estateCardImg img{
    width:100%;
    height:100%;
    object-fit:cover;
    vertical-align:bottom;
    transition:transform 0.4s ease-out;
}
.estateCard:hover .estateCardPhoto,
.estateCard:hover .estateCardImg img{
    transform:scale(1.05);
}
.estateCardNew{
    display:flex;
    justify-content:center;
    align-items:center;
    box-sizing:border-box;
    min-width:4.4rem;
    height:2.4rem;
    margin:0;
    padding:0 0.8rem;
    background:var(--bgColorNew);
    font-size:var(--pcFontSize11);
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:700;
    color:var(--textColor);
    border-radius:0.3rem;
}
.estateCardNewOnImg{
    position:absolute;
    bottom:-1rem;
    left:2.8rem;
    z-index:4;
}
.estateCardNewInBody{
    display:none;
}
.estateCardBody{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    box-sizing:border-box;
    padding:2.8rem;
    background:var(--bgColor);
}
.estateCardHead{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:0.8rem 1.2rem;
    margin:0 0 2.6rem;
}
.estateCardTit{
    display:-webkit-box;
    overflow:hidden;
    margin:0;
    font-size:var(--pcFontSize30);
    line-height:calc(36 / 30);
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:bold;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-clamp:2;
}
.estateCardNote{
    display:-webkit-box;
    overflow:hidden;
    margin:0;
    font-size:var(--pcFontSize18);
    line-height:calc(28 / 18);
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:500;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-clamp:2;
}
.estateCardPrice{
    display:flex;
    align-items:center;
    gap:1.2rem;
    margin:0 0 1.6rem;
}
.estateCardPriceLabel{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    flex-shrink:0;
    box-sizing:border-box;
    width:4rem;
    height:3rem;
    padding:0;
    border-radius:0.3rem;
    background:var(--btnCatalogOutline);
    font-size:var(--pcFontSize13);
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColorWhite);
}
.estateCardPriceTxt{
    display:flex;
    align-items:baseline;
    gap:0.2rem;
    margin:0;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:500;
}
.estateCardPriceNum{
    font-size:var(--pcFontSize30);
}
.estateCardPriceUnit{
    font-size:var(--pcFontSize18);
}
.estateCardPriceSep{
    font-size:var(--pcFontSize16);
    line-height:1;
    font-weight:500;
}
.estateCardInfo{
    margin:0 0 1.6rem;
}
.estateCardInfoRow{
    display:flex;
    align-items:flex-start;
    font-size:var(--pcFontSize13);
    line-height:calc(28 / 13);
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColorWarmGray);
}
.estateCardInfoTit{
    flex-shrink:0;
}
.estateCardInfoTit::after{
    content:"";
    display:inline-block;
    width:1px;
    height:1em;
    margin:0 1rem;
    background:currentColor;
    vertical-align:-0.1em;
}
.estateCardInfoTxt{
    margin:0;
}
.estateCardTxt{
    display:-webkit-box;
    overflow:hidden;
    margin:0;
    font-size:var(--pcFontSize15);
    line-height:calc(30 / 15);
    letter-spacing:var(--pcLetterSpacing40);
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-clamp:2;
    max-height: calc((var(--pcFontSize15) * 30 / 15) * 2);
}
.estateCardTxt:empty{
    display:none;
    margin:0;
}
.estateMore{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1.6rem;
}
.estateMoreBtn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:24rem;
    height:5.6rem;
    padding:0 3.2rem;
    border:1px solid var(--textColor);
    background:transparent;
    color:var(--textColor);
    font-size:var(--pcFontSize15);
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:bold;
    text-decoration:none;
}
.estateMoreBtn:hover{
    opacity:0.7;
}
.estateMoreLoading{
    display:none;
}
.estateMoreLoading img{
    width:3.2rem;
    height:3.2rem;
}
@media only screen and (max-width:1215px){
    .secEstateList{
        padding:0 0 4.8rem;
    }
    .estateListInner{
        padding-top: 4rem;
        border-top: 1px solid var(--borderColor);
    }
    .estateList{
        flex-direction:column;
        flex-wrap:nowrap;
        gap:1.6rem;
        margin:0 0 4rem;
    }
    .estateListItem{
        width:100%;
    }
    .estateCard{
        border-radius:0rem;
    }
    .estateCard:hover .estateCardPhoto,
    .estateCard:hover .estateCardImg img{
        transform:none;
    }
    .estateCardNew{
        width:4.4rem;
        height:2.4rem;
        padding:0 0.5rem;
        font-size:var(--spFontSize11);
        letter-spacing:0;
    }
    .estateCardNewOnImg{
        display:none;
    }
    .estateCardNewInBody{
        display:inline-flex;
        margin:0 0 1rem;
        position: absolute;
        top: -13px;
        z-index: 3;
    }
    .estateCardBody{
        padding: 2rem 2rem 3rem;
        z-index: 2;
    }
    .estateCardHead{
        gap:0.4rem 0.8rem;
        margin:0 0 1.2rem;
    }
    .estateCardTit{
        font-size:var(--spFontSize18);
        line-height:calc(28 / 18);
        letter-spacing:0;
    }
    .estateCardNote{
        font-size:var(--spFontSize13);
        line-height:calc(20 / 13);
        letter-spacing:0;
    }
    .estateCardPrice{
        gap:0.8rem;
        margin:0 0 1.2rem;
    }
    .estateCardPriceLabel{
        letter-spacing:0;
        font-size: var(--spFontSize11);
        letter-spacing: var(--spLetterSpacing40);
        width: 3rem;
        height: 2.2rem;
        border-radius: 0.3rem;
    }
    .estateCardPriceTxt{
        letter-spacing:0;
    }
    .estateCardPriceNum{
        font-size:var(--spFontSize18);
    }
    .estateCardPriceUnit{
        font-size:var(--spFontSize14);
    }
    .estateCardPriceSep{
        font-size:var(--spFontSize12);
    }
    .estateCardInfo{
        margin:0 0 0.7rem;
    }
    .estateCardInfoRow{
        font-size:var(--spFontSize11);
        line-height:calc(20 / 11);
        letter-spacing:0;
    }
    .estateCardInfoTit::after{
        height:1rem;
        margin:0 0.6rem;
    }
    .estateCardTxt{
        font-size:var(--spFontSize12);
        line-height:calc(20 / 12);
        letter-spacing:0;
        max-height: calc((var(--spFontSize12) * 20 / 12) * 2);
    }
    .estateMoreBtn{
        width:100%;
        min-width:0;
        height:4.8rem;
        font-size:var(--spFontSize13);
        letter-spacing:0;
    }
}

/*==============================
    Info & Contact（売戸建と同構成）
==============================*/
.secEstateInfo{
    position:relative;
    padding:12rem 0;
    background:var(--bgColorBeigeLight);
}
.secEstateInfo .estateInfoInner::before{
    content:"";
    position:absolute;
    top:calc(0% - 4rem);
    left:calc(50% - 0.5px);
    z-index:2;
    width:1px;
    height:8rem;
    background:var(--textColorTeal);
}
.secEstateInfo .estateInfoInner{
    position:relative;
    box-sizing:border-box;
    padding:8rem 0 8rem;
    border:1px solid var(--borderColor);
}
.secEstateInfo .estateInfoContent{
    position:relative;
}
.secEstateInfo .estateInfoBgTxt{
    position:absolute;
    top:43%;
    left:50%;
    z-index:0;
    margin:0;
    font-size:var(--pcFontSize150);
    font-weight:bold;
    font-style:italic;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    text-align:center;
    color:var(--textColorCheckBg);
    white-space:nowrap;
    pointer-events:none;
    transform:translate(-50%, -50%);
}
.secEstateInfo .estateInfoHead{
    position:relative;
    z-index:1;
    margin:0 0 4.2rem;
    padding:0;
    text-align:center;
}
.secEstateInfo .estateInfoTit{
    margin:0 0 3rem;
    font-size:var(--pcFontSize30);
    font-weight:500;
    line-height:calc(36 / 30);
    letter-spacing:var(--pcLetterSpacing40);
}
.secEstateInfo .estateInfoLead{
    margin:0;
    font-size:var(--pcFontSize15);
    line-height:calc(32 / 15);
    letter-spacing:var(--pcLetterSpacing40);
}
.secEstateInfo .estateInfoList{
    position:relative;
    z-index:1;
    display:flex;
    justify-content:center;
    gap:3rem;
    margin:0;
    padding:0;
    list-style:none;
}
.secEstateInfo .estateInfoItem{
    flex:0 0 auto;
    width:40rem;
}
.secEstateInfo .estateInfoCard{
    position:relative;
    display:flex;
    align-items:center;
    box-sizing:border-box;
    width:100%;
    height:10.5rem;
    padding:0 3rem 0 0;
    background:var(--bgColor);
}
.secEstateInfo .estateInfoThumb{
    flex-shrink:0;
    width:10.5rem;
    height:10.5rem;
    margin:0 2rem 0 0;
    object-fit:cover;
    vertical-align:bottom;
}
.secEstateInfo .estateInfoBody{
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    gap:0.6rem;
    min-width:0;
}
.secEstateInfo .estateInfoName{
    font-size:var(--pcFontSize15);
    font-weight:700;
    line-height:calc(22 / 15);
    letter-spacing:var(--pcLetterSpacing40);
}
.secEstateInfo .estateInfoTxt{
    overflow:hidden;
    font-size:var(--pcFontSize12);
    line-height:calc(18 / 12);
    letter-spacing:var(--pcLetterSpacing40);
    white-space:nowrap;
    text-overflow:ellipsis;
}
.secEstateInfo .estateInfoArrow{
    position:absolute;
    top:0;
    right:3rem;
    bottom:0;
    width:17px;
    height:5px;
    margin:auto 0;
    filter:brightness(0);
}
@media only screen and (max-width:1600px){
    .secEstateInfo .estateInfoName{
        font-size:var(--pcFontSize13);
        letter-spacing:0;
    }
}
@media only screen and (max-width:1215px){
    .secEstateInfo{
        padding: 6rem 0;
    }
    .secEstateInfo .estateInfoInner{
        padding:4.2rem 1.5rem 3rem;
        border-radius:0.3rem;
    }
    .secEstateInfo .estateInfoInner::before{
        top: calc(0% - 2rem);
        height: 4rem;
    }
    .secEstateInfo .estateInfoBgTxt{
        top:unset;
        bottom:-36px;
        font-size:var(--spFontSize40);
        letter-spacing:0;
        color:var(--textColorCheckBg10);
        transform:translate(-50%, 0);
    }
    .secEstateInfo .estateInfoHead{
        margin:0 0 3.2rem;
    }
    .secEstateInfo .estateInfoTit{
        margin:0 0 1rem;
        font-size:var(--spFontSize16);
        line-height:calc(26 / 16);
        letter-spacing:0;
    }
    .secEstateInfo .estateInfoLead{
        font-size:var(--spFontSize12);
        line-height:calc(22 / 12);
        letter-spacing:0;
    }
    .secEstateInfo .estateInfoList{
        flex-direction:column;
        gap:1rem;
    }
    .secEstateInfo .estateInfoItem{
        width:100%;
    }
    .secEstateInfo .estateInfoCard{
        height:auto;
        min-height:calc((65 / 375) * var(--widthBase));
        padding:0 3.2rem 0 0;
    }
    .secEstateInfo .estateInfoThumb{
        width:6.5rem;
        height:6.5rem;
        margin:0 1.6rem 0 0;
    }
    .secEstateInfo .estateInfoName{
        font-size:var(--spFontSize12);
        line-height:calc(22 / 12);
    }
    .secEstateInfo .estateInfoTxt{
        font-size:var(--spFontSize10);
    }
    .secEstateInfo .estateInfoArrow{
        right:1.6rem;
    }
    .secEstateInfo .estateInfoBody{
        gap:0;
    }
}

/*==============================
    details
==============================*/

.detailsEstate .urikodateSecHead{
    display:flex;
    flex-direction:column;
    align-items:center;
    margin:0 0 5rem;
    text-align:center;
}
.detailsEstate .urikodateSecEn{
    display:block;
    font-size:var(--pcFontSize50);
    font-weight:500;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
}
.detailsEstate .urikodateSecJa{
    display:block;
    margin:0.8rem 0 0;
    font-size:var(--pcFontSize18);
    line-height:calc(24 / 18);
    letter-spacing:var(--pcLetterSpacing40);
}
.detailsEstate .estateDetailTraffic{
    margin:0.4rem 0 0;
    font-size:var(--pcFontSize15);
    line-height:calc(28 / 15);
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColorWarmGray);
}
.detailsEstate .estateDetailPriceTxt{
    margin:0;
    font-size:var(--pcFontSize30);
    line-height:1.2;
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:500;
}
.detailsEstate .estateDetailPriceTxtUnit{
    font-size:var(--pcFontSize18);
    line-height:calc(28 / 18);
}
.detailsEstate .to{
    font-size:var(--pcFontSize20);
    font-weight: bold;
    letter-spacing:var(--pcLetterSpacing40);
}
.detailsEstate .urikodateOutlineTxt.isPrice .urikodateOutlinePriceUnit{
    font-size:var(--pcFontSize15);
}
.detailsEstate .urikodateDetailSlideImg .imgSp,
.detailsEstate .urikodateDetailThumbImgWrap .imgSp{
    display:none;
}
.detailsEstate .secFormReserve{
    margin-top: 0;
    padding-bottom: 10rem;
    border-top: none;
}
.detailsEstate .urikodateFormContents{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:2.4rem 4rem;
    grid-template-columns:none;
    grid-template-rows:none;
    grid-auto-flow:row;
}
.detailsEstate .secFormTable tr.check:has(.urikodateFormContents){
    align-items:center;
}
@media only screen and (min-width:1216px){
    .detailsEstate .secFormTable tr.check:has(.urikodateFormContents) th{
        padding-top:3rem;
        padding-bottom:3rem;
    }
}
.detailsEstate .secFormTable tr.calendar{
    display:none;
    align-items:stretch;
    position:relative;
}
.detailsEstate .secFormTable tr.calendar.on{
    display:flex;
}
.detailsEstate .secFormTable tr.calendar th{
    align-items:flex-start;
}
.detailsEstate .secCmnContact{
    margin-top:10rem;
    margin-bottom:8rem;
}
.detailsEstate main > .formBack{
    margin-top:0;
    margin-bottom:0;
}
.indexEstate .secCmnContact{
    padding-top:12rem;
}

/* こんな家が建てられます */
.secEstateWorks{
    padding:8rem 0 12rem;
    background: var(--bodyBaseColor);
}
.secEstateWorks .estateSecHead{
    margin:0 0 2rem;
}
.estateWorksLead{
    margin:0 0 7rem;
    text-align:center;
    font-size:var(--pcFontSize20);
    line-height:calc(28 / 20);
    letter-spacing:var(--pcLetterSpacing40);
}
.estateWorksList{
    display:flex;
    flex-wrap:wrap;
    gap:4rem;
    margin:0;
    padding:0;
    list-style:none;
}
.estateWorksItem{
    flex:0 0 calc((100% - 8rem) / 3);
    width:calc((100% - 8rem) / 3);
    min-width:0;
    box-sizing:border-box;
}
.estateWorksImg{
    overflow:hidden;
    aspect-ratio:373 / 249;
    background:var(--bgColor);
}
.estateWorksTit{
    margin: 2.6rem 0 1.3rem;
    font-size:var(--pcFontSize20);
    line-height:calc(26 / 20);
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:bold;
}
.estateWorksTxt{
    margin:0;
    font-size:var(--pcFontSize15);
    line-height:calc(24 / 13);
    letter-spacing:var(--pcLetterSpacing40);
}

@media only screen and (max-width:1215px){
    .detailsEstate .pnkz{
        background:none;
    }
    .detailsEstate .urikodateSecHead{
        margin:0 0 2.4rem;
    }
    .detailsEstate .urikodateSecEn{
        font-size:var(--spFontSize30);
        letter-spacing:0;
    }
    .detailsEstate .urikodateSecJa{
        margin:0.8rem 0 0;
        font-size:var(--spFontSize14);
        line-height:calc(22 / 14);
        letter-spacing:0;
    }
    .detailsEstate .estateDetailTraffic{
        font-size:var(--spFontSize12);
        line-height:calc(20 / 12);
        letter-spacing:0;
    }
    .detailsEstate .estateDetailPriceTxt{
        font-size:var(--spFontSize18);
        letter-spacing:0;
    }
    .detailsEstate .estateDetailPriceTxtUnit{
        font-size:var(--spFontSize14);
        letter-spacing:0;
    }
    .detailsEstate .to{
        font-size:var(--spFontSize14);
        letter-spacing:0;
    }
    .detailsEstate .urikodateOutlineTxt.isPrice .urikodateOutlinePriceUnit{
        font-size:var(--spFontSize15);
    }
    .detailsEstate .urikodateDetailSlideImg .imgPc,
    .detailsEstate .urikodateDetailThumbImgWrap .imgPc{
        display:none;
    }
    .detailsEstate .urikodateDetailSlideImg .imgSp,
    .detailsEstate .urikodateDetailThumbImgWrap .imgSp{
        display:block;
    }
    .secEstateWorks{
        padding:4.8rem 0;
    }
    .secEstateWorks .estateSecHead{
        margin:0 0 1.2rem;
    }
    .estateWorksLead{
        margin:0 0 2.4rem;
        font-size:var(--spFontSize12);
        line-height:calc(22 / 12);
        letter-spacing:0;
    }
    .estateWorksList{
        flex-direction:column;
        gap:3.2rem;
    }
    .estateWorksItem{
        flex:none;
        width:100%;
    }
    .estateWorksTit{
        margin:1.2rem 0 0.8rem;
        font-size:var(--spFontSize14);
        line-height:calc(24 / 14);
        letter-spacing:0;
    }
    .estateWorksTxt{
        font-size:var(--spFontSize12);
        line-height:calc(22 / 12);
        letter-spacing:0;
    }
}

/* 区画情報 */
.secEstateSection{
    padding:8rem 0 12rem;
    background:var(--bgColorBeige);
}
.estateSectionInner{
    box-sizing:border-box;
}
.estateSectionBody{
    display:flex;
    align-items:flex-start;
    gap:4rem;
}
.estateSectionMap{
    box-sizing:border-box;
    width: calc((660 / 1200) * 100%);
    padding:4rem;
    background:var(--bgColor);
}
.estateSectionMapImg{
    overflow:hidden;
}
.estateSectionMapImg.imgCont img,
.estateSectionMapImg img{
    display:block;
    position:static;
    top:auto;
    right:auto;
    bottom:auto;
    left:auto;
    width:100%;
    height:auto;
    max-width:100%;
    max-height:none;
    margin:0;
    object-fit:contain;
}
.estateSectionTableWrap{
    flex:1 1 auto;
    min-width:0;
}
.estateSectionTable{
    width:100%;
    border-collapse:collapse;
    background:var(--bgColor);
}
.estateSectionTable th,
.estateSectionTable td{
    box-sizing:border-box;
    width:25%;
    padding:1rem;
    border-right:1px solid var(--bgColorBeige);
    border-bottom:1px solid var(--bgColorBeige);
    font-size:var(--pcFontSize15);
    line-height:1.5;
    letter-spacing:var(--pcLetterSpacing20);
    text-align:center;
    vertical-align:middle;
}
.estateSectionTable th:last-child,
.estateSectionTable td:last-child{
    border-right:none;
}
.estateSectionTable tr:last-child{
    border-bottom:none;
}
.estateSectionTable thead th{
    background:var(--borderColorBeige);
    color:var(--textColor);
}
.estateSectionTable tbody tr:nth-child(even) td{
    background:var(--bgColorBeigeLight3);
}
.estateSectionSold{
    color:var(--textColorNote);
    font-weight:bold;
}
.estateOutlinePopupBtn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:1.5rem;
    height:3.6rem;
    margin-left:1.2rem;
    padding:0 2.4rem 0 2.4rem;
    border:none;
    border-radius:10rem;
    background:var(--contactColor);
    color:var(--textColorWhite);
    font-size:var(--pcFontSize13);
    line-height:1;
    cursor:pointer;
    vertical-align:middle;
    white-space:nowrap;
    transition: 0.5s;
}
@media only screen and (min-width:1216px){
    .estateOutlinePopupBtn:hover{
        opacity: 0.8;
    }
}
.estateOutlinePopupIco{
    flex-shrink:0;
    width:1.7rem;
    height:1.7rem;
    vertical-align:bottom;
}
#popup{
    display:none;
    position:fixed;
    inset:0;
    z-index:200;
    background:rgba(211, 207, 202, 0.7);
}
.popupContainer{
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    width:100%;
    height:100%;
    padding:2rem;
    overflow:auto;
}
.popupContents{
    position:relative;
    width:100rem;
    max-width:100%;
}
.popupMain{
    position:relative;
    box-sizing:border-box;
    padding:4rem 5rem 5rem;
    background:var(--bgColor);
}
.popupIconClose{
    position: absolute;
    top: 4rem;
    right: 5rem;
    width: 3.5rem;
    height: 3.5rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #8c8987;
    cursor: pointer;
}
.popupIconClose::before,
.popupIconClose::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:1.5rem;
    height:0.1rem;
    background:var(--textColorWhite);
}
.popupIconClose::before{
    transform:translate(-50%, -50%) rotate(45deg);
}
.popupIconClose::after{
    transform:translate(-50%, -50%) rotate(-45deg);
}
.popupMain .txtPopTit{
    margin:0;
    padding:0 4.8rem 2.4rem 0;
    border-bottom:1px solid var(--borderColorBeige);
    font-size:var(--pcFontSize20);
    line-height:1.6;
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:bold;
}
.txtPopBody{
    margin:2rem 0 0;
}
.popupMain .txtPopAbout{
    margin:0;
    font-size:var(--pcFontSize15);
    line-height:calc(32 / 15);
    letter-spacing:var(--pcLetterSpacing40);
}
.popupMain .txtPopAbout + .txtPopAbout{
    margin-top:3.4rem;
}
.popupBtnWrap{
    margin:2.8rem 0 0;
    text-align:center;
}
.popupBtnClose{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:25rem;
    height:5.8rem;
    padding:0;
    border:none;
    border-radius:10rem;
    background:var(--bgColorDarkGray);
    color:var(--textColorWhite);
    font-size:var(--pcFontSize15);
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    font-weight:bold;
    cursor:pointer;
}
@media only screen and (max-width:1215px){
    .secEstateSection{
        padding:4.8rem 0 5rem;
    }
    .estateSectionBody{
        flex-direction:column;
        gap:2rem;
    }
    .estateSectionMap{
        width:100%;
        padding:2rem 1.6rem;
    }
    .estateSectionTable th,
    .estateSectionTable td{
        padding:1rem 0.6rem;
        font-size:var(--spFontSize11);
        letter-spacing:0;
    }
    .popupMain{
        padding:3.2rem 2rem 2.4rem;
    }
    .popupIconClose{
        top:1.6rem;
        right:1.6rem;
        width:2.8rem;
        height:2.8rem;
    }
    .popupMain .txtPopTit{
        padding:0 3.6rem 1.6rem 0;
        font-size:var(--spFontSize16);
        letter-spacing:0;
    }
    .txtPopBody{
        margin:2rem 0 0;
    }
    .popupMain .txtPopAbout{
        font-size:var(--spFontSize12);
        line-height:calc(22 / 12);
        letter-spacing:0;
    }
    .popupMain .txtPopAbout + .txtPopAbout{
        margin-top:1.6rem;
    }
    .popupBtnWrap{
        margin:3.2rem 0 0;
    }
    .popupBtnClose{
        width:25rem;
        max-width:100%;
        height:5.8rem;
        font-size:var(--spFontSize14);
        letter-spacing:0;
    }
    .estateOutlinePopupBtn{
        height:auto;
        margin:0.8rem 0 0 0;
        padding:0.8rem 1.2rem 0.8rem 0.8rem;
        white-space:normal;
    }
    .detailsEstate .secFormReserve{
        margin-top: 0;
        padding-bottom: 0;
    }
    .detailsEstate .urikodateFormContents{
        flex-direction:column;
        align-items:flex-start;
        gap:1.2rem;
    }
    .detailsEstate .secFormTable tr.calendar{
        display:none;
    }
    .detailsEstate .secFormTable tr.calendar.on{
        display:block;
    }
    .detailsEstate .secCmnContact{
        margin-top:4.8rem;
        margin-bottom:4.8rem;
    }
    .detailsEstate main > .formBack{
        margin-top:4.8rem;
        margin-bottom:0;
    }
    .indexEstate .secCmnContact{
        padding-top:5rem;
    }
    .estateSectionTableWrap{
        width: 100%;
    }
}

.entry h2{
    padding-bottom: 2.3rem;
    margin-bottom: 2.4rem;
    border-bottom: 1px solid var(--borderColorBeige);
}
.detailsEstate .entry a:has(img){
    display:inline-block;
    text-decoration:none;
    cursor:pointer;
}
@media only screen and (max-width:1215px){
    .entry h2{
        padding-bottom: 1.2rem;
        margin-bottom: 1.1rem;
    }
}