/* ==========================================================================
   1. ベース & 共通レイアウト
   ========================================================================== */

/* FV 全体ラッパー */
.gold-top-fv .gold-fv-wrap {
    position: relative !important;
    display: block;
    width: 100%;
}

.gold-top-fv .gold-fv-wrap img {
    width: 100%;
    height: auto;
    display: block;
}

.gold-top-fv .fv-main-text-wrap-wrapper {
    position: absolute;
    top: 30%;
    left: 3%;
}

.gold-top-fv .fv-main-text-wrap-wrapper .fv-main-text-wrap {
    position: relative;
    background: #fff;
    border: 4px solid #e60012;
    border-radius: 25px;
    box-shadow: 8px 8px 12px rgba(0, 0, 0, 0.75);
    height: 20vw;
    width: 95vw;
    overflow: hidden;
}

.gold-top-fv .fv-main-text-wrap-wrapper .fv-main-text-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    left: 80%;
    width: 30%;
    height: 100%;
    background-image: url(/gold/wp-content/themes/otakaraya/assets/img/common/gold_fv_circle.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* テキストエリア共通（絶対配置・中央揃え） */
.gold-top-fv .fv-noun-text-area {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

/* 2層レイヤー（フチ + 塗り）共通構造 */
.gold-top-fv .fv-noun-text-area .text-layer-wrapper {
    position: relative;
    display: inline-block;
}

.gold-top-fv .fv-noun-text-area .text-layer {
    font-weight: 900;
    line-height: 1;
    white-space: nowrap; /* ★ここを nowrap に戻す */
    display: flex;
    /* flex-wrap: wrap; はここでは削除（または書かない） */
    justify-content: center;
    gap: -0.05em;
    padding: 0.2em;
}

.gold-top-fv .fv-noun-text-area.pos-main .text-layer {
    white-space: normal; /* ここだけ改行許可 */
    flex-wrap: wrap; /* ここだけ折り返し許可 */
    line-height: 1.2; /* 行間を少し開ける */
    align-items: center; /* 縦方向の中央揃え */
}

/* 3. メインテキスト内の <br> を改行として機能させる設定 */
.gold-top-fv .fv-noun-text-area.pos-main .text-layer br {
    flex-basis: 100%;
    height: 0;
    width: 100%;
    content: "";
}

/* 4. 念のため金額エリア(.pos-price)は強制的に改行禁止を指定（安全策） */
.gold-top-fv .fv-noun-text-area.pos-price .text-layer {
    white-space: nowrap !important;
    flex-wrap: nowrap !important;
}
.gold-top-fv .fv-noun-text-area.pos-main.is-multiline .text-layer {
    font-size: 4vw;
}

.gold-top-fv .fv-noun-text-area .char-span {
    display: block;
}

.gold-top-fv .fv-noun-text-area .char-dot {
    margin-left: -0.1em;
    margin-right: -0.1em;
}

/* 背面レイヤー（共通フチ設定） */
.gold-top-fv .fv-noun-text-area .layer-stroke {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    color: var(--theme_color);
    -webkit-text-stroke: 1.2vw var(--theme_color);
    filter: drop-shadow(2px 4px 4px rgba(0, 0, 0, 0.3));
}

.gold-top-fv .fv-noun-text-area .layer-stroke.white {
    color: var(--color-white);
    -webkit-text-stroke: 1.2vw var(--color-white);
}

.gold-top-fv .fv-noun-text-area .layer-stroke .char-dot {
    -webkit-text-stroke: 1.2vw var(--theme_color);
}
/* 白フチ用のドット対応 */
.gold-top-fv .fv-noun-text-area .layer-stroke.white .char-dot {
    -webkit-text-stroke: 1.2vw var(--color-white);
}

/* 前面レイヤー（共通塗り設定） */
.gold-top-fv .fv-noun-text-area .layer-fill {
    position: relative;
    z-index: 2;
    background: linear-gradient(180deg, #ffffff 24%, #ffff00 99.27%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    pointer-events: none;
}

/* 前面レイヤー：色バリエーション */
.gold-top-fv .fv-noun-text-area .layer-fill.white {
    background: #fff;
    -webkit-background-clip: text;
    background-clip: text;
}

.gold-top-fv .fv-noun-text-area .layer-fill.red {
    background: var(--theme_color);
    -webkit-background-clip: text;
    background-clip: text;
}

/* シンプル赤文字用（フチ・グラデーション解除） */
.gold-top-fv .fv-noun-text-area.is-simple-red .text-layer,
.gold-top-fv .fv-noun-text-area.is-simple-red .layer-stroke,
.gold-top-fv .fv-noun-text-area.is-simple-red .layer-fill {
    color: var(--theme_color) !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    filter: none !important;
    -webkit-text-stroke: 0 !important;
}

/* ==========================================================================
   2. SP (Mobile) スタイル - 初期設定
   ========================================================================== */

/* --- キャッチコピー位置 --- */
.gold-top-fv .fv-noun-text-area.pos-main {
    left: 50%;
    top: 6%;
    transform: translate(-50%, -50%);
}
.gold-top-fv .fv-noun-text-area.pos-main .text-layer {
    font-size: 8vw;
}

.gold-top-fv .fv-noun-text-area.pos-sub {
    top: 8%;
    left: 4%;
}
.gold-top-fv .fv-noun-text-area.pos-sub .text-layer {
    font-size: 20vw;
    gap: 0.1em;
}
.gold-top-fv .fv-noun-text-area.pos-sub .layer-stroke {
    -webkit-text-stroke: 1.3vw var(--theme_color);
}

/* --- 世界店舗数エリア --- */
.gold-top-fv .fv-noun-text-area.pos-zenkoku {
    top: 77%;
    left: 7.9%;
    font-weight: 900;
}
.gold-top-fv .fv-noun-text-area.pos-zenkoku p {
    font-size: 4.3vw;
    margin: 0;

    paint-order: stroke fill;
    line-height: 1;
}
.gold-top-fv .fv-noun-text-area.pos-zenkoku .layer-fill {
    color: var(--color-black);
}

.gold-top-fv .common-style-wrap .dyn-number-store {
    position: absolute;
    top: 84.4%;
    left: 6.5%;
    z-index: 2;
    font-size: 10.5vw;
    font-weight: 900;
    color: var(--theme_color);
    letter-spacing: -1.1vw;
}
.gold-top-fv .common-style-wrap .dyn-number-store .num-item {
    position: relative;
    display: inline-block;
    z-index: 2;
}
.gold-top-fv .common-style-wrap .dyn-number-store .num-item::before {
    content: attr(data-char);
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    -webkit-text-stroke: 1vw var(--color-white);
    color: transparent;
}

/* 店舗・以上展開中 */
.gold-top-fv .fv-noun-text-area.pos-tenpo {
    top: 95%;
    left: 12%;
}
.gold-top-fv .pos-tenpo-speech {
    position: absolute;
    bottom: -190%;
    left: 50%;
    transform: translateX(-50%);
    background-color: #1d1808;
    color: #fffb50;
    font-size: 2.8vw;
    font-weight: 900;
    padding: 1vw 3vw;
    border-radius: 5vw;
    line-height: 1.1;
    margin-bottom: 1.5vw;
    white-space: nowrap;
}
.gold-top-fv .pos-tenpo-speech br {
    display: none;
}
.gold-top-fv .pos-tenpo-speech::after {
    content: "";
    position: absolute;
    top: 98%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 1.8vw 1.2vw 0 1.2vw;
    border-style: solid;
    border-color: #1d1808 transparent transparent transparent;
}
.gold-top-fv .fv-noun-text-area.pos-tenpo .text-layer {
    font-size: 4vw;
    line-height: 1.1;
}
.gold-top-fv .fv-noun-text-area.pos-tenpo .layer-stroke {
    color: var(--color-white);
    -webkit-text-stroke: 1.5vw var(--color-white);
    filter: none;
}
.gold-top-fv .fv-noun-text-area.pos-tenpo .layer-fill {
    color: var(--theme_color);
}

.gold-top-fv .fv-noun-text-area.pos-tenpo-ijou {
    top: 96%;
    left: 21.3%;
}
.gold-top-fv .fv-noun-text-area.pos-tenpo-ijou .text-layer {
    font-size: 3vw;
    color: var(--theme_color);
}
.gold-top-fv .fv-noun-text-area.pos-tenpo-ijou .layer-stroke {
    -webkit-text-stroke: 1.2vw var(--color-white);
    filter: none;
}

/* --- 口コミエリア --- */
.gold-top-fv .common-style-wrap .dyn-number-voice {
    position: absolute;
    top: 81%;
    left: 57%;
    z-index: 2;
    font-size: 9vw;
    font-weight: bold;
    color: var(--theme_color);
    letter-spacing: -1.1vw;
}
.gold-top-fv .common-style-wrap .dyn-number-voice::before {
    content: attr(data-text);
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    -webkit-text-stroke: 1.2vw var(--color-white);
}

/* --- 価格表示エリア --- */
.gold-top-fv .fv-noun-text-area.pos-price {
    font-size: 15vw;
    letter-spacing: 0.7vw;
    left: 48%;
    top: 37.7%;
    transform: translate(-50%, -50%);
}
.gold-top-fv .fv-noun-text-area.pos-price .text-layer {
    font-family: "Noto Sans JP";
}

.gold-top-fv .today-price-label {
    position: absolute;
    font-size: 3vw;
    color: var(--color-black);
    font-weight: 900;
    text-align: center;
    line-height: 1.2;
    left: 10%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
}

.gold-top-fv .ingot-label {
    position: absolute;
    font-size: 2.1vw;
    color: var(--color-black);
    font-weight: bold;
    text-align: center;
    left: 49.6%;
    top: 90%;
    transform: translate(-50%, -50%);
    width: 100%;
}
.gold-top-fv .price-unit-block {
    position: absolute;
    top: 37.3%;
    left: 77%;
    font-size: 7vw;
    font-weight: 900;
    color: var(--theme_color);
    left: 78%;
    top: 55.2%;

    transform: translate(-50%, -50%);
}

.gold-top-fv .diff-price::after {
    content: "円";
    position: absolute;
    font-size: 2.5vw;
    font-weight: 900;
    left: 95%;
    top: 54.4%;
    z-index: 100;
    color: var(--theme_color);
}

.gold-top-fv .diff-price.plus::after {
    color: var(--theme_color);
}
.gold-top-fv .diff-price.minus::after {
    color: #000;
}
.gold-top-fv .diff-price p {
    font-size: 3.5vw;
    color: var(--theme_color);
    font-weight: 900;
    text-align: center;
    position: absolute;
    left: 91%;
    top: 38%;
    transform: translate(-50%, -50%);
    width: 15%;
    z-index: 100;
}

.gold-top-fv .diff-price .diff-rate-plus {
    font-size: 4.5vw;
    color: var(--theme_color);
    position: absolute;
    font-weight: 900;
    text-align: center;
    left: 89%;
    top: 61%;
    transform: translate(-50%, -50%);
    width: 100%;
    z-index: 100;
}
.gold-top-fv .diff-price .diff-rate-minus {
    font-size: 3.6vw;
    color: #000;
    font-weight: 900;
    text-align: center;
    left: 89%;
    top: 61%;
    transform: translate(-50%, -50%);
    width: 100%;
    z-index: 100;
}

/* --- 注釈（※1, ※2...） --- */
.gold-top-fv .num-annotation {
    position: absolute;
    font-size: 2vw;
    font-weight: bold;
    line-height: 0;
    color: #000;
    z-index: 10;
    letter-spacing: 0;
}
.gold-top-fv .num-annotation.price {
    top: 37.6%;
    left: 74.7%;
}

.gold-top-fv .num-annotation.diff {
    top: 81%;
    right: 2%;
}

/* 店舗注釈のみ2層袋文字 */
.gold-top-fv .num-annotation.store {
    top: 607%;
    left: 87%;
}

/* 注釈リスト（下部） */
.gold-top-fv .annotation-list {
    padding: 2.5cqw 2.5cqw 0;
    font-size: 3vw;
}
.gold-top-fv .annotation-item {
    padding-left: 2em;
    text-indent: -2em;
    margin-bottom: 0.5em;
}

/* --- TV CM エリア --- */
.gold-top-fv .fv-text-tv-cm p {
    margin: 0;
    position: absolute;
    z-index: 2;
}
.gold-top-fv .tv-line-black {
    top: 81%;
    left: 17%;
    font-size: 4vw;
    font-weight: 700;
    color: var(--color-black);
}
.gold-top-fv .tv-line-red-big {
    top: 86%;
    left: 8%;
    font-size: 12vw;
    font-weight: 900;
    line-height: 0.9;
    color: var(--theme_color);
    z-index: 1;
}
.gold-top-fv .tv-line-red-small {
    top: 88.5%;
    left: 28%;
    font-size: 5vw;
    font-weight: 900;
    color: var(--theme_color);
}

.gold-top-fv .visit-line-black {
    top: 94.6%;
    left: 45.5%;
    font-size: 2.8vw;
    font-weight: bold;
    color: var(--color-black);
}
.gold-top-fv .visit-line-red-big {
    top: 93.4%;
    left: 76.7%;
    font-size: 4.7vw;
    font-weight: 900;
    color: var(--theme_color);
}
.gold-top-fv .cash-line-red-small {
    top: 94.5%;
    left: 3.5%;
    font-size: 3vw;
    font-weight: bold;
    color: var(--color-black);
}
.gold-top-fv .cash-line-black {
    top: 93.5%;
    left: 19.2%;
    font-size: 4.5vw;
    font-weight: 900;
    color: var(--theme_color);
}

/* --- キャンペーン画像＆テキストグループ --- */
.gold-top-fv .fv-campaign-group {
    position: absolute;
    bottom: 24%;
    left: 4%;
    display: flex;
    align-items: center;
    gap: 2vw;
    z-index: 15;
    pointer-events: none;
}
.gold-top-fv .fv-campaign-group .fv-202504-extra-img {
    width: 33vw;
}
.gold-top-fv .fv-noun-text-area.pos-campaign-text {
    top: 46.3%;
    left: 50%;
    transform: none;
}

.gold-top-fv .fv-noun-text-area.pos-campaign-text .text-layer {
    font-size: 5.8vw;
    line-height: 1.3;
    letter-spacing: 0.5vw;
    display: block;
    text-align: center;
}

.gold-top-fv .fv-noun-text-area.pos-campaign-text .text-white {
    font-size: 4.7vw;
}

/* 全体のグラデーションをリセットし、個々のspanに適用する */
.gold-top-fv .fv-noun-text-area.pos-campaign-text .layer-fill {
    background: none !important;
}

/* 白文字(白〜ごく薄いグレーのグラデーション) */
.gold-top-fv .fv-noun-text-area.pos-campaign-text .layer-fill .text-white {
    background: linear-gradient(180deg, #ffffff 0%, #e8e8e8 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-stroke: 0;
}

/* 黄色文字(高価買取と同じ白〜黄色のグラデーション) */
.gold-top-fv .fv-noun-text-area.pos-campaign-text .layer-fill .text-yellow {
    background: linear-gradient(180deg, #ffffff 24%, #ffff00 99.27%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-stroke: 0;
}

/* フチ用レイヤーの各文字色とフチ色 */
.gold-top-fv .fv-noun-text-area.pos-campaign-text .layer-stroke .text-white,
.gold-top-fv .fv-noun-text-area.pos-campaign-text .layer-stroke .text-yellow {
    background: none;
    -webkit-text-fill-color: initial;
    color: #e60012;
    -webkit-text-stroke: 1.2vw #e60012;
}

/* === 最高値(is-highest)専用スタイル === */
.gold-top-fv .fv-noun-text-area.pos-campaign-text.is-highest {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5vw;
    top: 46%;
    left: 40%;
    transform: none;
}
.gold-top-fv .highest-stamp-box {
    background-color: #fff;
    padding: 0.6vw;
    position: relative;
    border-radius: 0.5vw;
    box-shadow: 0.4vw 0.4vw 0 rgba(0, 0, 0, 0.3);
    z-index: 2;
    margin-right: -0.5vw; /* 吹き出しのしっぽ分だけ調整 */
    transform: rotate(-4deg);
    display: flex;
    flex-direction: column;
}
.gold-top-fv .highest-stamp-box::after {
    content: "";
    position: absolute;
    top: 60%;
    right: -1.4vw;
    transform: translateY(-50%) rotate(0deg);
    border-width: 1vw 0 1vw 1.6vw;
    border-style: solid;
    border-color: transparent transparent transparent #fff;
}
.gold-top-fv .highest-stamp-box .stamp-top {
    background-color: #e60012;
    color: #fff;
    font-size: 4.8vw;
    font-weight: 900;
    text-align: center;
    padding: 0.4vw 1.2vw;
    line-height: 1.1;
    letter-spacing: 0.5vw;
    text-indent: 0.5vw;
}
.gold-top-fv .highest-stamp-box .stamp-bottom {
    color: #e60012;
    font-size: 4vw;
    font-weight: 900;
    text-align: center;
    padding: 0.5vw 0 0;
    line-height: 1.1;
    letter-spacing: -0.1vw;
}
.gold-top-fv .fv-noun-text-area.pos-campaign-text.is-highest .text-layer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    white-space: nowrap;
    line-height: 1.3;
    letter-spacing: 0;
}
.gold-top-fv .fv-noun-text-area.pos-campaign-text.is-highest .highest-top {
    font-size: 3.5vw;
    margin-left: 5.6vw;
    margin-bottom: -1vw;
    letter-spacing: 0.5vw;
}
.gold-top-fv .fv-noun-text-area.pos-campaign-text.is-highest .highest-bottom {
    font-size: 8.5vw;
    display: flex;
    align-items: baseline;
    letter-spacing: 0.5vw;
}
.gold-top-fv
    .fv-noun-text-area.pos-campaign-text.is-highest
    .highest-bottom
    .text-s {
    font-size: 5vw;
    margin-left: 0.5vw;
}

/* 最高値表示時の調整 (SP) */
.gold-top-fv .highest-gold-area .fv-noun-text-area.pos-price {
    left: 45%;
    top: 40%;
    transform: translate(-50%, -50%);
}

.gold-top-fv .highest-gold-area .price-unit-block {
    left: 76%;
    top: 53%;
}
.gold-top-fv .highest-gold-area .num-annotation.price {
    left: 72.6%;
    top: 27%;
}
.gold-top-fv .highest-gold-area .highest-burst-area {
    left: 65%;
    top: 32%;
}

/* ==========================================================================
   3. PC Overrides (768px以上)
   ========================================================================== */
@media screen and (min-width: 768px) {
    /* キャッチコピー */
    .gold-top-fv .fv-noun-text-area.pos-main {
        left: 50%;
        top: 10%;
        transform: translate(-50%, -50%);
    }
    .gold-top-fv .fv-noun-text-area.pos-main .text-layer {
        font-size: 4.5vw;
    }

    .gold-top-fv .fv-noun-text-area.pos-sub {
        top: 15%;
        left: 28%;
    }
    .gold-top-fv .fv-noun-text-area.pos-sub .text-layer {
        font-size: 9vw;
    }

    .gold-top-fv .fv-main-text-wrap-wrapper {
        top: 50%;
        left: 27%;
    }

    .gold-top-fv .fv-main-text-wrap-wrapper .fv-main-text-wrap {
        height: 10vw;
        width: 44vw;
    }

    /* 共通フッチ太さ調整 - PC */
    .gold-top-fv .fv-noun-text-area .layer-stroke {
        -webkit-text-stroke: 0.8vw var(--theme_color);
    }

    /* 世界店舗数 */
    .gold-top-fv .fv-noun-text-area.pos-zenkoku {
        top: 74%;
        left: 8%;
    }
    .gold-top-fv .fv-noun-text-area.pos-zenkoku p {
        font-size: 1.6vw;
        -webkit-text-stroke: 0.6vw var(--color-white);
    }

    .gold-top-fv .common-style-wrap .dyn-number-store {
        top: 75%;
        left: 5.6%;
        font-size: 5.6vw;
        letter-spacing: -0.6vw;
    }
    .gold-top-fv .common-style-wrap .dyn-number-store .num-item::before {
        -webkit-text-stroke: 0.8vw var(--color-white);
    }

    .gold-top-fv .fv-noun-text-area.pos-tenpo {
        top: 82%;
        left: 20%;
    }
    .gold-top-fv .fv-noun-text-area.pos-tenpo .text-layer {
        font-size: 1.8vw;
    }
    .gold-top-fv .fv-noun-text-area.pos-tenpo .layer-stroke {
        -webkit-text-stroke: 0.6vw var(--color-white);
    }
    .gold-top-fv .pos-tenpo-speech {
        font-size: 1.4vw;
        line-height: 1.2;
        padding: 0.7vw 1.2vw 0.7vw 1.1vw;
        text-align: center;
        color: #ffea00;
        font-weight: bold;
        position: absolute;
        bottom: -490%;
        left: -54%;
        transform: translateY(-50%);
        z-index: 10;
        background-image: url(/gold/wp-content/themes/otakaraya/assets/img/common/bubble_black.webp);
        background-size: 100% 100%;
        background-repeat: no-repeat;
        background-color: transparent;
        filter: drop-shadow(0.3vw 0.3vw 0.2vw rgba(0, 0, 0, 0.3));
        border-radius: 0;
    }
    .gold-top-fv .pos-tenpo-speech br {
        display: block;
    }
    .gold-top-fv .pos-tenpo-speech::after {
        display: none;
    }
    .gold-top-fv .pos-tenpo-speech .gold-top-fv .today-price-label {
        font-size: 1.8vw;
        left: 9.4%;
    }
    .gold-top-fv .today-price-label {
        font-size: 1.7vw;
    }

    .gold-top-fv .fv-noun-text-area.pos-tenpo-ijou {
        top: 88.5%;
        left: 20%;
    }
    .gold-top-fv .fv-noun-text-area.pos-tenpo-ijou .text-layer {
        font-size: 1.3vw;
    }

    /* 口コミ */
    .gold-top-fv .common-style-wrap .dyn-number-voice {
        top: 82.8%;
        left: 73.1%;
        font-size: 2.7vw;
        letter-spacing: -0.2vw;
    }

    /* 価格エリア */
    .gold-top-fv .fv-noun-text-area.pos-price {
        font-size: 7vw;
        letter-spacing: 0.2vw;
        left: 48%;
        top: 68.5%;
    }
    .gold-top-fv .ingot-label {
        top: 88%;
        font-size: 1vw;
    }
    .gold-top-fv .price-unit-block {
        top: 73.5%;
        left: 62%;
        font-size: 2.5vw;
    }

    .gold-top-fv .fv-noun-text-area.pos-tenpo-ijou .layer-stroke {
        -webkit-text-stroke: 0.6vw var(--color-white);
    }

    /* 注釈 */
    .gold-top-fv .num-annotation {
        font-size: 1.1vw;
    }
    .gold-top-fv .num-annotation.price {
        top: 69%;
        left: 61%;
    }
    .gold-top-fv .num-annotation.store {
        top: 95%;
        left: 115%;
    }
    .gold-top-fv .num-annotation.store .layer-stroke {
        -webkit-text-stroke: 0.4vw var(--color-white);
        filter: none;
    }
    .gold-top-fv .num-annotation.voice {
        top: 29%;
        right: -20%;
        font-size: 0.5vw;
    }

    .gold-top-fv .annotation-list {
        width: 65%;
        margin: auto;
        padding: 0.5cqw 2.5cqw 0;
    }
    .gold-top-fv .annotation-item {
        font-size: max(16px);
    }

    /* TV CM */
    .gold-top-fv .tv-line-black {
        top: 63.6%;
        left: 10.5%;
        font-size: 2vw;
    }
    .gold-top-fv .tv-line-red-big {
        top: 69%;
        left: 2.6%;
        font-size: 5.5vw;
    }
    .gold-top-fv .tv-line-red-small {
        top: 69%;
        left: 11%;
        font-size: 3.4vw;
    }
    .gold-top-fv .visit-line-black {
        top: 89.8%;
        left: 47.5%;
        font-size: 1.2vw;
    }
    .gold-top-fv .visit-line-red-big {
        top: 88.5%;
        left: 61%;
        font-size: 1.8vw;
    }
    .gold-top-fv .cash-line-red-small {
        top: 89.6%;
        left: 30.3%;
        font-size: 1.3vw;
    }
    .gold-top-fv .cash-line-black {
        top: 88.5%;
        left: 37%;
        font-size: 1.8vw;
    }
    .gold-top-fv .common-style-wrap .dyn-number-voice::before {
        -webkit-text-stroke: 0.4vw var(--color-white);
    }
    /* キャンペーングループ (PC) */
    .gold-top-fv .fv-campaign-group {
        top: 3%;
        bottom: auto;
        left: 2%;
        gap: 1vw;
    }
    .gold-top-fv .fv-campaign-group .fv-202504-extra-img {
        width: 25vw;
    }
    .gold-top-fv .fv-noun-text-area.pos-campaign-text .text-layer {
        font-size: 3.5vw;
    }
    .gold-top-fv .fv-noun-text-area.pos-campaign-text .text-white {
        font-size: 3.3vw;
    }

    /* キャンペーングループ(is-highest) PC */
    .gold-top-fv .highest-stamp-box {
        padding: 0.4vw;
        border-radius: 0.3vw;
    }
    .gold-top-fv .highest-stamp-box::after {
        border-width: 0.6vw 0 0.6vw 1vw;
        right: -0.9vw;
    }
    .gold-top-fv .highest-stamp-box .stamp-top {
        font-size: 2.3vw;
        padding: 0.2vw 0.6vw;
    }

    .gold-top-fv .highest-stamp-box .stamp-bottom {
        font-size: 1.9vw;
        padding: 0.2vw 0 0;
    }
    .gold-top-fv .fv-noun-text-area.pos-campaign-text {
        top: 80%;
        left: 27%;
    }
    .gold-top-fv .fv-noun-text-area.pos-campaign-text.is-highest {
        gap: 1.5vw;
        top: 79%;
        left: 27%;
    }
    .gold-top-fv .fv-noun-text-area.pos-campaign-text.is-highest .text-layer {
        flex-direction: row;
        align-items: baseline;
        gap: 1%;
    }
    .gold-top-fv .fv-noun-text-area.pos-campaign-text.is-highest .highest-top {
        font-size: 3vw;
        margin-left: 0vw;
    }
    .gold-top-fv
        .fv-noun-text-area.pos-campaign-text.is-highest
        .highest-bottom {
        font-size: 4.5vw;
        gap: 1%;
    }
    .gold-top-fv
        .fv-noun-text-area.pos-campaign-text.is-highest
        .highest-bottom
        .text-s {
        font-size: 3vw;
        margin-left: 0;
    }

    /* 最高値表示時の調整 (PC) */
    .gold-top-fv .highest-gold-area .fv-noun-text-area.pos-price {
        left: 48%;
        top: 40%;
    }
    .gold-top-fv .highest-gold-area .price-unit-block {
        left: 78%;
        top: 59%;
    }
    .gold-top-fv .highest-gold-area .num-annotation.price {
        left: 75%;
        top: 37%;
    }
    .gold-top-fv .fv-noun-text-area.pos-campaign-text .layer-stroke .text-white,
    .gold-top-fv
        .fv-noun-text-area.pos-campaign-text
        .layer-stroke
        .text-yellow {
        -webkit-text-stroke: 0.8vw #e60012;
    }
    .gold-top-fv .fv-noun-text-area.pos-campaign-text .text-white {
    }
}
/* =========================================
   SP (～767px) 設定
   ========================================= */
.gold-top-fv .responsive-br {
    display: none !important;
}
.gold-top-fv .fv-noun-text-area.pos-main .text-layer {
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    font-size: calc(84vw / var(--char-count));
    font-size: clamp(3.5vw, 84vw / var(--char-count), 10vw);
    justify-content: center;
    width: 100%;
}
.gold-top-fv .fv-noun-text-area.pos-main .text-layer .char-span {
    display: inline-block !important;
}

/* =========================================
   PC (768px～) 設定
   ========================================= */
@media screen and (min-width: 768px) {
    /* 改行タグがあれば強制改行（1行の場合はタグが無いので無視されます） */
    .gold-top-fv .responsive-br {
        display: block !important;
        width: 100%;
        height: 0;
        content: "";
        margin: 0;
    }

    .gold-top-fv .fv-noun-text-area.pos-main .text-layer {
        white-space: normal !important;
        flex-wrap: wrap !important;
        line-height: 1.1 !important;
        justify-content: center;
        text-align: center;

        /* 文字数に応じたサイズ計算 */
        font-size: calc(50vw / var(--char-count-pc));
        font-size: clamp(2.5vw, 50vw / var(--char-count-pc), 3vw);
    }
    .gold-top-fv .fv-noun-text-area.pos-main.is-single-line .text-layer {
        /* 基準値を 55vw → 80vw にアップ（1行ならもっと横幅を使ってOK） */
        font-size: calc(80vw / var(--char-count-pc));

        /* 最大サイズも 9vw → 11vw に緩和（短い単語のときより大きく） */
        font-size: clamp(4.5vw, 80vw / var(--char-count-pc), 5vw);
    }
    .gold-top-fv .diff-price .diff-rate-plus {
        font-size: 1.8vw;
    }
    .gold-top-fv .diff-price .diff-rate-minus {
        font-size: 1.8vw;
    }
    .gold-top-fv .diff-price p {
        font-size: 1.6vw;
        left: 92%;
    }
    .gold-top-fv .diff-price::after {
        font-size: 1.5vw;
        left: 95.5%;
        top: 49.5%;
    }
}
.price-comma {
    font-size: 60%;
    margin: 9% 0% 0% 0%;
}
.gold-top-fv .common-style-wrap .dyn-number-store .num-item.price-comma {
    font-size: 80%;
    margin: 3% -3%;
}
