/* ランキングv3 — 料金表ポップアップ（.feePopup）

   assets-v2/css/ranking-detail.css の feePopup セクション（1948〜3173行）をそのまま切り出したもの。

   なぜ要るか: 料金表のモーダルは fee-popup-script.js が実行時にDOMを作り、
   トリガー（.feePopupLink）の直後へ差し込む。マークアップは全ページ共通だが、
   その見た目を作っているのは ranking-detail.css で、**v3はこのCSSを読んでいない**。
   common.css にも feePopup の定義はあるが、`.areaRank.recommendTermRank .feePopup...` の
   ように祖先クラス前提で、v3のDOMには当たらない。結果、v3では素のHTMLが出ていた
   （2026-09-25 指摘「料金表のモーダルがしっかりと表示されていない」）。

   ranking-detail.css 自体をv3で読むと、旧ランキングデザイン全体（5,499行）が入り
   .infoName / .starReview など汎用クラスがv3のカードへ流れ込む。feePopup のブロックだけを
   分けて持つ。**元ファイルを直したらこちらも直すこと**（重複は承知のうえ。
   将来どちらかへ寄せるなら、ranking-detail.css 側が本セクションを @import する形にする）。
*/

eePopup */

.feePopup .starReview {
    display: flex;
    align-items: center;
    margin-bottom: 1px;
}

.feePopup .starReview .star {
    margin-top: -5px;
    margin-right: 7px;
}

.feePopup .starReview .star span.full {
    width: 86px;
    position: relative;
    display: block;
    background: #E0E0E0;
}

.feePopup .starReview .star span.full:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/common/icon-star-02.svg) no-repeat top center;
    background-size: 100%;
    z-index: 1;
}

.feePopup .starReview .star span.full .bgColor {
    background: #ffd800;
    display: block;
    height: 13px;
}

.feePopup .starReview .score_avg span {
    font-size: 16px;
    font-weight: bold;
    color: #F76969;
    line-height: 1;
    vertical-align: text-top;
}

.feePopup .starReview .score_avg span.numberReview {
    display: inline-block;
    font-size: 12px;
    font-weight: 300;
    color: #828282;
    transform: translate(4px, 2px);
}

.feePopup .starReview .score_avg span.numberReview a {
    font-size: 12px;
    font-weight: bold;
    color: #00afec;
}

.feePopup .infoName {
    font-size: 14px;
    font-weight: bold;
}

.feePopup .infoName span {
    font-size: 16px;
    margin-left: 1px;
    letter-spacing: 1.4px;
}
.feePopup .starReview .star {
    margin-top: -5px;
    margin-right: 7px;
}

.feePopup .starReview .star span.full {
    width: 86px;
    position: relative;
    display: block;
    background: #E0E0E0;
}

.feePopup .starReview .star span.full:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/common/icon-star-02.svg) no-repeat top center;
    background-size: 100%;
    z-index: 1;
}

.feePopup .starReview .star span.full .bgColor {
    background: #ffd800;
    display: block;
    height: 13px;
}

.feePopup .starReview .score_avg span {
    font-size: 16px;
    font-weight: bold;
    color: #F76969;
    line-height: 1;
    vertical-align: text-top;
}

.feePopup .starReview .score_avg span.numberReview {
    display: inline-block;
    font-size: 12px;
    font-weight: 300;
    color: #828282;
    transform: translate(4px, 2px);
}

.feePopup .starReview .score_avg span.numberReview a {
    font-size: 12px;
    font-weight: bold;
    color: #00afec;
}

.feePopup .starReview .star {
    margin-top: -7px;
    margin-right: 10px;
}
.feePopup .starReview .star span.full {
    width: 99px;
}
.feePopup .starReview .star span.full .bgColor {
    height: 15px;
}
.feePopup .starReview .star span.full:after {
    background: url(../images/common/icon-star.svg) no-repeat top center / cover;
}
.feePopup .starReview .score_avg {
    transform: translateY(-3px);
}
.feePopup .starReview .score_avg span {
    font-size: 20px;
}
.feePopup .starReview {
	margin-bottom: 0;
}
.feePopup .starReview .seeReview{
    transform: translateY(-1px);
    font-size: 12px;
    font-weight: bold;
    color: #00AFEC;
	margin-left: 1px;
}
.feePopup .starReview .seeReview a {
    font-weight: bold;
    color: #00afec;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.feePopup .popupHeader .popupName {
	flex-wrap: wrap;
}
.feePopup .concInfo {
	width: 314px;
	transform: translateY(4px);
}
.feePopup .concInfo li .infoName {      
	width: 62px;
    font-size: 8px;
	padding: 8px 1px 7px;
	letter-spacing: 0;
}
.feePopup .concInfo li .infoSub {
    width: calc(100% - 62px);
    font-size: 8px;
    letter-spacing: -0.4px;
}

.feePopup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 100;
    background: rgba(0, 0, 0, 0.3);
}
.feePopup .popupContainer {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}
.feePopup .popupContainer .popupContent {
    max-width: 1146px;
    width: 100%;
    margin: 60px 40px;
    background: #fff;
    border-radius: 16px;
    padding: 40px;
    max-height: 80vh;
    overflow-y: auto;
}
.feePopup .popupHeader {
    padding-left: 15px;
    padding-right: 15px;
}
.feePopup .popupHeader .popupCategory {
    display: block;
    font-size: 12px;
    font-weight: 400;
    margin-bottom: 10px;
    letter-spacing: 0;
}
.feePopup .popupHeader .popupName {
    margin-bottom: 15px;
    display: flex;
    flex-wrap: wrap;
}
.feePopup .popupHeader .popupName .popupTitle {
    font-size: 24px;
}
.feePopup .popupHeader .popupName .starReview {
    display: flex;
    align-items: center;
    margin-left: 25px;
    margin-right: 29px;
}
.feePopup .popupHeader .popupName .starReview .star {
    margin-top: 0;
}
.feePopup .starReview .star span.full {
    width: 116px;
}
.feePopup .starReview .star span.full .bgColor {
    height: 18px;
}
.feePopup .starReview .star span.full:after {
    background: url(../images/common/icon-star.svg) no-repeat top center / cover;
}
.feePopup .starReview .score_avg span {
    font-size: 24px;
    letter-spacing: 0.4px;
}
.feePopup .starReview .seeReview {
    color: #00afec;
    font-weight: bold;
    margin-left: 9px;
    transform: translateY(2px);
}
.feePopup .starReview .seeReview a {
    font-weight: bold;
    color: #00afec;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.feePopup .concInfo {
    width: 314px;
    transform: translateY(4px);
}
.feePopup .concInfo li {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    margin-bottom: 5px;
}
.feePopup .concInfo li .infoName {
    width: 62px;
    font-size: 8px;
    font-weight: bold;
    background-color: #f1faff;
    border: 1px solid #d7f5ff;
    padding: 8px 1px 7px;
    letter-spacing: 0;
    border-right-width: 0;
    text-align: center;
    margin-left: 0;
}
.feePopup .concInfo li .infoSub {
    display: flex;
    align-items: center;
    width: calc(100% - 62px);
    font-size: 8px;
    letter-spacing: -0.4px;
    border: 1px solid #f1faff;
    padding: 0px 8px;
    border-left-width: 0;
}
.feePopup .tablePriceWrap {
    background: #F1FAFF;
    padding: 40px 33px;
}
.feePopup .tablePriceWrap .listTab {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 9px;
    justify-content: unset;
    align-items: unset;
}
.feePopup .tablePriceWrap .listTab li {
    width: calc(100% / 6 - 5px);
    margin-right: 6px;
    margin-bottom: 6px;
}
.feePopup .tablePriceWrap .listTab li, .feePopup .tablePriceWrap .listTab li.active {
    border: none;
}
.feePopup .tablePriceWrap .listTab li a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #00AFEC;
    border: 2px solid #00AFEC;
    background: #fff;
    text-align: center;
    border-radius: 5px;
    font-weight: bold;
    padding: 7px;
    line-height: 1.2;
    height: 51px;
}
.feePopup .tablePriceWrap .listTab li.active a {
    background: #00AFEC;
    color: #fff;
}
.feePopup .tablePriceWrap .tabContent {
    max-height: 250px;
    overflow-y: auto;
}
.feePopup .tablePriceWrap .tabContent .tabBox {
    display: none;
}
.feePopup .tablePriceWrap .tabContent .tabBox.showTab {
    display: block;
}
.feePopup .tablePriceWrap .tabContent .tabBox .tableContent {
    padding: 0 1px;
}
.feePopup .tablePriceWrap .tabContent .tabBox .tableContent table {
    width: 100%;
}
.feePopup .tablePriceWrap .tabContent .tabBox .tableContent table tr th {
    background: #00AFEC;
    color: #fff;
    border: 1px solid #fff;
    border-bottom: 0;
    width: calc(100% / 3);
    padding: 14px 0 13px;
}
.feePopup .tablePriceWrap .tabContent .tabBox .tableContent table tr td {
    border: 1px solid #E0E0E0;
    background: #fff;
    font-size: 14px;
    font-weight: bold;
    text-align: center;
    padding: 14px 5px 13px;
}
.feePopup .feeClosePopup {
    margin-top: 20px;
    text-align: center;
}
.feePopup .feeClosePopup a {
    font-weight: 400;
    font-size: 16px;
}
@media (min-width: 769px) {
    .feePopup .starReview .seeReview a:hover {
        text-decoration: none;
    }
}
@media(max-width: 768px) {
	.feePopup.recommendTermRank .feePopup .boxWrap .boxInfo .starReview {
		width: auto;
		margin-left: 8px;
	}
	.feePopup .starReview .star {
    	margin-top: -3px;
        margin-right: 9px;
	}
	.feePopup .starReview .star span.full {
    	width: 112px;
        height: 17px;
		overflow: hidden;
	}
    .feePopup .starReview .star span.full:after {
        background-size: 100%;
    }
	.feePopup .starReview .star span.full .bgColor {
    	height: 18px;
	}
	.feePopup .starReview .score_avg span {
        font-size: 24px;
        letter-spacing: 0.4px;
        margin-right: 0;
	}
	.feePopup .starReview .seeReview {
		transform: translateY(3px);
		font-size: 15px;
        margin-left: 8px;
        letter-spacing: -0.9px;
	}


	.feePopup .popupContainer .popupContent {
        margin: 60px 10px;
        padding: 21px 22px;
    }
	.feePopup .popupHeader .popupCategory {
		font-size: 13px;
		letter-spacing: -0.3px;
	}
    .feePopup .popupHeader .popupName {
        flex-direction: column;
    }
	.feePopup .popupHeader .popupName .popupTitle {
        font-size: 22px;
		letter-spacing: 1.3px;
	}
	.feePopup .popupHeader .popupName .starReview {
		margin: 5px 0 14px;
	}
    .feePopup .popupHeader .popupName .starReview .star {
        margin-right: 12px;
    }
	.feePopup .popupHeader .popupName .starReview .star span.full {
        width: 95px;
        height: 15px;
		transform: translate(1px, 1px);
    }
	.feePopup .popupHeader .popupName .starReview .star span.full .bgColor {
        height: 15px;
    }
	.feePopup .popupHeader .popupName .starReview .score_avg span {
        font-size: 22px;
    }
	.feePopup .popupHeader .popupName .starReview .seeReview {
        font-size: 11px;
        transform: translateY(2px);
        margin-left: 4px;
        letter-spacing: -0.4px;
    }
    .feePopup .popupHeader .popupName .starReview .seeReview .score_avg {
        transform: translateY(-3px);
    }
    .feePopup .popupHeader .popupName .starReview .seeReview .score_avg span {
        margin-right: 0;
    }
    .feePopup .tablePriceWrap {
        padding: 27px 3.8% 27px;
    }
    .feePopup .tablePriceWrap .listTab {
        justify-content: flex-start;
        margin-bottom: 8px;
    }
    .feePopup .tablePriceWrap .listTab li {
        width: calc(100% / 3 - 7px);
        margin-right: 0;
        margin-bottom: 4px;
    }
    .feePopup .tablePriceWrap .listTab li:not(:nth-child(3n)) {
        margin-right: 9px;
    }
    .feePopup .tablePriceWrap .listTab li a {
        font-size: 11px;
        height: 49px;
    }
    .feePopup .tablePriceWrap .tabContent .tabBox .tableContent table tr th {
        font-size: 13px;
        width: 110px;
    }
    .feePopup .tablePriceWrap .tabContent .tabBox .tableContent table tr th:first-child {
        width: 162px;
    }
    .feePopup .tablePriceWrap .tabContent .tabBox .tableContent table tr td {
        font-size: 14px;
    }
    .feePopup .feeClosePopup {
        margin-top: 10px;
    }
	.feePopup .concInfo {
    	width: calc(100% + 24px);
    	margin-left: -12px;
    	transform: translateY(4px);
		margin-bottom: 2px;
	}
	.feePopup .concInfo li .infoName {
		width: 78px;
		font-size: 10px;
		padding: 9px 1px 11px;
		letter-spacing: 0;
	}
	.feePopup .concInfo li .infoSub {
		width: calc(100% - 78px);
		font-size: 10px;
		letter-spacing: 0px;
	}
}

/* .feePopup .starReview .star {
    margin-right: 7px;
}

.feePopup .starReview .star span.full {
    width: 89px;
}

.feePopup .starReview .star span.full .bgColor {
    height: 14px;
} */

@media (max-width: 768px) {
    .feePopup .starReview .star {
        margin-right: 5px;
    }
    .feePopup .starReview .star span.full {
        height: 14px;
    }

    .feePopup .starReview .score_avg span {
        font-size: 20px;
    }

    .feePopup .starReview .score_avg {
        transform: translateY(0);
    }

    .feePopup .starReview .seeReview {
        margin-left: 4px;
        transform: translateY(0px);
    }
    
}     
    .feePopup .popupContainer .popupContent .popupContentWrap {
        padding-bottom: 43.97px;
    }
    .feePopup .popupContainer .popupContent {
        max-height: unset;
        overflow-y: unset;
        position: relative;
    }
    .feePopup .popupContainer .popupContent .popupContentWrap {
        max-height: 80vh;
        overflow-y: auto;
    }
    .feePopup .feeClosePopup {
        width: fit-content;
        position: absolute;
        right: 14px;
        top: 2px;
        margin-top: 0;
    }
    .feePopup .feeClosePopup a {
        font-size: 40px;
        font-weight: 100    ;
    }
    .feePopup .popupContent .vendorContactSimpleCta {
        position: absolute;
        display: block;
        width: 100%;
        right: 0;
        bottom: 0;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap {
        background: white;  
        padding: 19px 40px 9px;
        display: flex;
        justify-content: center;
        align-items: center;
        column-gap: 34px;
        border-radius: 0 0 16px 16px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone {
        margin-left: 52px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a{
        font-size: 26.74px;
        font-weight: bold;
        color: #FF6E01;
        position: relative;
        padding-left: 36px;
        display: block;
        letter-spacing: 0.5348px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
        transform: translateY(-1px);
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
        display: block;
        content: "";
        position: absolute;
        background: url('../images/category/icon-contact-popup.svg') center no-repeat;
        background-size: 100%;
        width: 26px;
        height: 26px;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a {
        background: #EF4646;
        color: white;
        padding: 16.5px 13.5px 15.5px 42.5px;
        font-size: 22px;
        font-weight: bold;
        line-height: 1.09;
        position: relative;
        display: block;
        border-radius: 10px;
        transition: all 0.3s;
    }
    
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a::before {
        content: "";
        display: block;
        position: absolute;
        background: url('../images/common/icon-mail-new.svg') center no-repeat;
        background-size: 100%;
        width: 26px;
        height: 19px;
        left: 14px;
        top: 50%;
        transform: translateY(-50%);
    }
    @media (min-width: 769px) {
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a:hover {
            opacity: 0.7
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
            pointer-events: none;
        }
    }
    @media (max-width: 780px) {
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
            font-size: 24px;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
            width: 24px;
            height: 24px;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a {
            font-size: 20px;
        }

    }
    @media (max-width: 768px) {
        .feePopup .popupContainer .popupContent {
            margin: 60px 16px;
            border-radius: 8px;
        }
        .feePopup .feeClosePopup {
            right: 13px;
            top: 9px;
        }
        .feePopup .feeClosePopup a  {
            font-size: 27px;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap {
            padding: 20px 8px 10px;
            column-gap: 6px;
            justify-content: center;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone{
            margin-left: 0;
            max-width: 220px;
            width: 100%;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
            font-size: 18px;
            background: #FF6E01;
            color: white;
            padding: 14px 5.5px 13px 46.5px;
            border-radius: 10px;
            width: 100%;
            transform: translateY(0);
        }
        
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
            background: url('../images/category/icon-contact-popup-sp.svg') center no-repeat;
            background-size: 100%;
            width: 20px;
            height: 20px;
            top: 52%;
            left: 19px;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn {
            max-width: 220px;
            width: 100%;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a {
            font-size: 18px;
            padding: 16.5px 5.5px 16.2px 39.5px;
            width: 100%;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a:hover {
            opacity: 1;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a::before {
            width: 19.15px;
            height: 14px;
            left: 11.95px;
            top: 51%;
        }
        .feePopup .popupContainer .popupContent .popupContentWrap {
            padding-bottom: 31px;
        }
    }
    @media (max-width:560px) {
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone {
            max-width: 168px;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
            font-size: 14px;
            background: #FF6E01;
            color: white;
            padding: 14px 5.5px 13px 42.5px;
            border-radius: 10px;
            width: 100%;
            transform: translateY(0);
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
            background: url('../images/category/icon-contact-popup-sp.svg') center no-repeat;
            background-size: 100%;
            width: 20px;
            height: 20px;
            left: 19px;
            top: 50%;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn {
            max-width: 168px;
            width: 100%;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a {
            font-size: 14px;
            padding: 16.5px 5.5px 16.2px 35.5px;
            width: 100%;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a::before {
            width: 20.15px;
            height: 16px;
            left: 11.95px;
            top: 53%;
        }
    }
    @media (max-width: 385px) {
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
            padding: 14px 5.5px 13px 35.5px;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a {
            padding: 16.5px 2.5px 16.2px 29px;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
            left: 12px;
        }
        .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a::before {
            left: 8px;
            width: 17px;
            height: 14px;
        }
    }
.feePopup .popupHeader .popupName .popupTitle {
    font-weight: bold;
}
.feePopup .popupContainer .popupContent .popupContentWrap {
    padding-bottom: 110px;
}
.feePopup .popupContent .vendorContactSimpleCta .ctaNote {
    position: relative;
    font-size: 14px;
    line-height: 1.07;
    font-weight: bold;
    color: #fff;
    background-color: #00AFEC;
    border-radius: 9px;
    padding: 6px 28px 6px;
    letter-spacing: 0.4px;
    margin: 0 auto -2px;
    max-width: 100%;
    width: fit-content;
    text-align: center;
    letter-spacing: 0.36px;
}
.feePopup .popupContent .vendorContactSimpleCta .ctaNote::before {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 50.4%;
    transform: translateX(-50%);
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 6px solid #00AFEC;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap {
    flex-wrap: wrap;
    background: #FFF3EA;
    padding: 11px 40px 10px;
    column-gap: 29px;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp {
    padding: 13px 40px 10px;
    column-gap: 19px;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone {
    margin-left: 0;
    max-width: 398px;
    width: 100%;
} 
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone {
    max-width: unset;
    width: initial;
}  
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
    font-size: 40px;
    letter-spacing: 1.2px;
    padding-left: 38px;
    transform: translateY(-6px);
}

.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
    width: 33px;
    height: 33px;
    left: -1px;
    background: url('../images/common/icon-phone-orange.svg') center no-repeat;
    background-size: 100%;
    top: calc(50% - 11px);
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a .openTime {
    display: block;
    font-size: 16px;
    letter-spacing: 0;
    margin-left: -1px;
    transform: translateY(-5px);
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn {
    max-width: 400px;
    width: 100%;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a::before {
    display: none;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a {
    padding: 19.6px 0 23.4px 0;
    text-align: center;
    transform: translateY(-2px);
    letter-spacing: 1.1px;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn {
    max-width: 296px;
    margin-left: 10px;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a {
    text-align: center;
    padding: 22px 0 25.4px 0;
    transform: translateY(0);
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a .mailText {
    padding: 0 24px 0 46px;
    background: url('../images/index/icon-mail-propose.svg') no-repeat left 0 top 67% / 30px;
    position: relative;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a .mailText {
    padding: 0 24px 0 46px;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a .mailText::after {
    content: "";
    display: block;
    position: absolute;
    right: -2px;
    top: 50%;
    transform: translateY(-50%);
    width: 11px;
    aspect-ratio: 8 / 16;
    background: url('../images/common/icon-arrow-white.png') center no-repeat;
    background-size: 100%;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a {
    font-size: 18px;
    letter-spacing: 0.9px;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn {
    max-width: 292.66px;
    width: 100%;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a{
    position: relative;
    display: block;
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: 0.9px;
    text-align: center;
    background: #00AFEC;
    color: #fff;
    padding: 21.4px 13.5px 20.4px;
    border-radius: 10px;
    font-weight: 600;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a::before,
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a::after {
    content: "";
    display: block;
    position: absolute;
    top: 52%;
    transform: translateY(-50%);
    width: 32px;
    aspect-ratio: 1 / 1;
    background: url("../images/common/app-icon.png") center no-repeat;
    background-size: 100%;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a::before {
    left: 10px;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a::after {
    right: 10px;
    width: 24px;
    top: 51%;
    aspect-ratio: 20.4 / 23.3;
    background: url("../images/common/external-link-icon.svg") center no-repeat;
    background-size: 100%;
}
.feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a .btnAppText {
    padding-left: 6px;
}
.feePopup .tablePriceWrap {
    padding-bottom: 40px;
}
.feePopup .tablePriceWrap .listTab li a {
    min-height: 51px;
    height: 100%;
}
@media (max-width: 1140px) and (min-width: 769px) {
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp {
        padding: 13px 15px 10px;
    }
}
@media (max-width: 1090px) and (min-width: 769px)  {
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone {
        width: 100%;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
        width: fit-content;
        margin: 0 auto;
    }
    .feePopup .popupContainer .popupContent .popupContentWrap {
        padding-bottom: 170px;
    }
}
@media (max-width: 1050px) {
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap {
        column-gap: 19px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn {
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone {
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a .mailText {
        padding: 0 15px 0 35px;
        background-position: left 0 top 67%;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a .mailText::after {
        right: 0px;
        top: 53%;
    }
}
@media (max-width: 900px) {
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap {
        padding: 11px 15px 10px;
    }
}
@media (min-width: 769px) {
    .feePopup .starReview .seeReview a:hover,
    .feePopup .tablePriceWrap .listTab li a:hover,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a:hover {
        opacity: 0.6;
    }
}
@media (max-width: 768px) {
    .feePopup .popupContainer .popupContent {
        padding: 46px 21px;
    }
    .feePopup .popupHeader .popupName .starReview {
        margin: 3px 0 12px;
    }
    .feePopup .concInfo li .infoSub {
        padding: 0px 5px;
    }
    .feePopup .tablePriceWrap {
        padding: 24px 4.2% 27px;
    }
    .feePopup .tablePriceWrap .listTab li a {
        font-size: 10px;
        height: 47px;
    }
    .feePopup .popupContent .vendorContactSimpleCta {
        background: white;
        padding-top: 26px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .ctaNote {
        font-size: 10px;
        padding: 7px 5px 10px;
    }
    .feePopup .popupContainer .popupContent .popupContentWrap {
        padding-bottom: 79px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap {
        column-gap: 12px;
        flex-wrap: unset;
        padding: 13px 12.5px 15px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
        font-size: 16px;
        padding: 8.5px 23px 11.5px 53px;
        transform: translateY(0);
        letter-spacing: 0.8px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn {
        max-width: 160px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
        background: url(../images/common/icon-phone-white.svg) center no-repeat;
        background-size: 100%;
        aspect-ratio: 1 / 1;
        width: 24px;
        top: 50%;
        left: 24px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a {
        padding: 12.3px 0 14.3px 0;
        font-size: 16px;
        transform: translateY(0);
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a .mailText {
        padding: 0 9px 0 40px;
        background-position: left 16px top 67%;
        background-size: 24px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactMailBtn a .mailText::after {
        display: none;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp {
        padding: 13px 14.3px 15px 22px;
        column-gap: 12px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn  {
        max-width: 160px;
        width: 100%;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn {
        margin-left: 0;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone a,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a {
        padding: 38px 7px 5px;
        width: 100%;
        font-size: 12px;
        letter-spacing: 0.6px;
        text-align: center;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
        top: 34%;
        left: 50%;
        transform: translateX(-50%) translateY(-50%);
    }
    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap .contactPhone a:before {
        
        top: 50%;
        left: 34px;
    }
    
    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .contactPhone a:before {
        top: 36%;
        left: 50%;
    }
    
    .feePopup .popupContent .vendorContactSimpleCta.oneBtn .contactCtaWrap .contactPhone a:before {
        top: 50%;
        left: 34px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone a:before {
        top: 36%;
        left: 50%;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a {
        padding-top: 0;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a .mailText {
        padding: 40px 0 1px;
        background-position: center top 22%;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a {
        padding: 39px 7px 5px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a::before {
        left: 52%;
        top: 37%;
        width: 27px;
        transform: translateX(-50%) translateY(-50%);
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a::after {
        display: none;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a .btnAppText {
        padding-left: 0;
    }
    
}
@media (max-width: 389px) {
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap {
        padding: 13px 10.5px 15px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a {
        padding: 8.5px 14px 11.5px 49px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
        left: 16px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone a:before {
        left: 50%;
    }
}

@media (min-width: 769px) {
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap .contactPhone a:before {
        top: 33px;
    }
}

@media (max-width: 768px) {
    .feePopup .tablePriceWrap {
        padding-top: 25px;
        padding-bottom: 27px;
    }
    .feePopup .tablePriceWrap .listTab li a {
        min-height: 47px;
        height: 100%;
    }
    .feePopup .tablePriceWrap .tabContent .tabBox .tableContent table tr th {
        font-size: 12px;
        padding: 14px 0 13px;
    }
    .feePopup .tablePriceWrap .tabContent .tabBox .tableContent table tr td {
        padding: 13px 5px 11px;
    }
    .feePopup .popupContainer .popupContent .popupContentWrap {
        max-height: 81.1vh;
        padding-bottom: 84px;
    }
    .feePopup .popupContent .vendorContactSimpleCta {
        padding-top: 21px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .ctaNote {
        max-width: 96%;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp {
        padding: 12px 15.5px 15px;
        column-gap: 11px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone a,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a {
        font-size: 16px;
        padding: 8.5px 23px 11.5px 53px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a {
        padding: 8.5px 13px 11.5px 44px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone a:before,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a::before {
        top: 50%;
        left: 34px;
    }

    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a::before {
        left: 29px;
    }

    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a {
        padding: 12.3px 12px 14.3px 16px;
        font-size: 16px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a .mailText {
        padding: 0 0 0 26px;
        background-position: left center;
    }
    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .contactPhone a,
    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .contactMailBtn a,
    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .appBtn a {
        font-size: 14px;
        padding: 37px 7px 7px;
        height: 60px;
    }
    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .contactPhone a {
        padding-top: 36px;
    }
    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .contactPhone a:before,
    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .appBtn a::before {
        top: 36%;
        left: 50%;
    }

    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .contactMailBtn a {
        padding: 1px 7px 5px;
    }

    .feePopup .popupContent .vendorContactSimpleCta.twoBtn .contactCtaWrap.hasApp .contactMailBtn a .mailText {
        padding: 38px 0 1px;
        background-position: center top 22%;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn, 
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone, 
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn {
        max-width: 180px;
        width: 100%;
    }
}

@media (max-width: 375px) {
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactPhone a,
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .appBtn a {
        font-size: 14px;
    }
    .feePopup .popupContent .vendorContactSimpleCta .contactCtaWrap.hasApp .contactMailBtn a {
        font-size: 14px;
    }
}

/* ------------------------------------------------------------
   カテゴリータブのカルーセル化（2026-09-25 指示）

   既定は6列のグリッド（.listTab が flex-wrap: wrap）で、作業内容が多い事業者だと
   何段にも折り返してモーダルの上半分がタブで埋まる。横1列のスクロールに変える。

   矢印は assets-v2/js/ranking-v3.js が付ける（タブはJSが実行時に作るのでテンプレートに
   置けない）。スクロール位置に応じて矢印の表示を切り替えるため、両端の判定クラス
   （isAtStart / isAtEnd）もJSが付ける。

   **このファイルはランキングv3でしか読まれない。** 他ページの料金表モーダルは
   従来どおり折り返しのグリッドのまま。
   ------------------------------------------------------------ */
.feePopup .tablePriceWrap .listTabCarousel {
    position: relative;
}

.feePopup .tablePriceWrap .listTabCarousel .listTab {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-behavior: smooth;
    /* スクロールバーは出さない。矢印とドラッグで送る */
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.feePopup .tablePriceWrap .listTabCarousel .listTab::-webkit-scrollbar {
    display: none;
}

.feePopup .tablePriceWrap .listTabCarousel .listTab li {
    /* 折り返さないので幅は中身なり。潰れないよう下限だけ決める */
    width: auto;
    min-width: 132px;
    flex: 0 0 auto;
    margin-bottom: 0;
}

.feePopup .tablePriceWrap .listTabArrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #00AFEC;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.feePopup .tablePriceWrap .listTabArrow::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: 2px solid #00AFEC;
    border-right: 2px solid #00AFEC;
}

.feePopup .tablePriceWrap .listTabArrow--prev {
    left: -6px;
}

.feePopup .tablePriceWrap .listTabArrow--prev::before {
    transform: rotate(-135deg);
    margin-left: 3px;
}

.feePopup .tablePriceWrap .listTabArrow--next {
    right: -6px;
}

.feePopup .tablePriceWrap .listTabArrow--next::before {
    transform: rotate(45deg);
    margin-right: 3px;
}

/* 端まで送ったら、その向きの矢印は消す（押せるのに動かない状態を作らない） */
.feePopup .tablePriceWrap .listTabCarousel.isAtStart .listTabArrow--prev,
.feePopup .tablePriceWrap .listTabCarousel.isAtEnd .listTabArrow--next {
    display: none;
}

@media (max-width: 768px) {
    .feePopup .tablePriceWrap .listTabCarousel .listTab li {
        min-width: 120px;
    }
}
