/* ==========================================================================
   ★フォント完全同期 ＆ リンク青変化防止 ＆ アニメーション完全撤廃（常時表示固定）
   ========================================================================== */
/* ページ内のすべてのフォントを公式ゴシック体系に100%固定 */
*, *::before, *::after, button, input, select, textarea, a, span, div, strong, h1, h2, h3, h4, h5, p, li {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif !important;
}

/* ボタンにリンク（href）を設置しても文字色が絶対に青く変わらないよう強制リセット */
a, a:link, a:visited, a:hover, a:active {
    color: inherit !important;
    text-decoration: none !important;
}

/* フェードイン（透明化・下へのズレ）の仕組みを完全に削除。最初から100%表示固定 */
.cms-top-hero-block,
.pc-top-btn-container,
.cms-campaign-block-v2,
.pc-mid-btn-area,
.cms-wchance-block,
.cms-footer-block {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
}

/* ==========================================================================
   【1/4】メインビジュアル（ヘッダー）エリア設定
   ========================================================================== */
.cms-top-hero-block {
    width: 100%;
    background-color: #00a0e9; /* チラシ基準の鮮やかな青色 */
    padding: 35px 20px 25px 20px;
    box-sizing: border-box;
    color: #ffffff;
}

.cms-top-hero-block .hero-inner-container {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}

/* 実施期間 */
.cms-top-hero-block .hero-period-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-bottom: 25px;
}

.cms-top-hero-block .period-title-box {
    text-align: right;
    line-height: 1.1;
}

.cms-top-hero-block .period-label-sub {
    display: block;
    font-size: 13pt;
    font-weight: bold;
    background-color: #ffffff;
    color: #00a0e9;
    padding: 1px 8px;
    border-radius: 3px;
    text-align: center;
    margin-bottom: 2px;
}

.cms-top-hero-block .period-year {
    font-size: 24pt;
    font-weight: bold;
    letter-spacing: 0.05em;
}

.cms-top-hero-block .period-dates-box {
    display: flex;
    align-items: flex-end;
    line-height: 1;
}

.cms-top-hero-block .date-main {
    font-size: 56pt;
    font-weight: bold;
    letter-spacing: -0.05em;
}

.cms-top-hero-block .date-day {
    font-size: 14pt;
    font-weight: bold;
    border: 2px solid #ffffff;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 4px;
    margin-bottom: 10px;
}

.cms-top-hero-block .date-arrow {
    font-size: 36pt;
    font-weight: bold;
    margin: 0 12px 6px 12px;
}

/* キャッチコピー */
.cms-top-hero-block .hero-catch-row {
    margin-bottom: 30px;
}

.cms-top-hero-block .catch-main-title {
    font-size: 21pt;
    font-weight: 900;
    color: #fff100;
    margin: 0 0 8px 0;
    letter-spacing: 0.03em;
}
.cms-top-hero-block .slash-deco {
    font-size: 24pt;
    margin: 0 5px;
    font-weight: bold;
}

.cms-top-hero-block .catch-sub-text {
    font-size: 11pt;
    font-weight: bold;
    margin: 0;
    letter-spacing: 0.05em;
}

/* プラン比較・金利カードレイアウト */
.cms-top-hero-block .hero-plans-container {
    display: flex;
    gap: 25px;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 25px;
}

.cms-top-hero-block .hero-plan-box {
    flex: 1;
    box-sizing: border-box;
}

.cms-top-hero-block .plan-title-wrapper {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 12px;
    margin-bottom: 15px;
    height: 75px;
}

.cms-top-hero-block .plan-character-img {
    height: 70px;
    display: flex;
    align-items: flex-end;
}
.cms-top-hero-block .plan-character-img img {
    max-height: 100%;
    width: auto;
}

.cms-top-hero-block .plan-name-badge {
    font-size: 28pt;
    font-weight: 900;
    color: #ffffff;
    padding: 2px 20px;
    border-radius: 8px;
    line-height: 1.2;
    position: relative;
    letter-spacing: 0.05em;
}
.cms-top-hero-block .shop-color-bg { background-color: #005bac; }
.cms-top-hero-block .app-color-bg { background-color: #e60012; }

.cms-top-hero-block .plan-sub-lbl {
    position: absolute;
    top: -14px;
    left: 10px;
    font-size: 8pt;
    font-weight: bold;
    color: #fff100;
    white-space: nowrap;
}
.cms-top-hero-block .app-lbl { color: #ffffff; }

.cms-top-hero-block .hero-rate-cards-row {
    display: flex;
    gap: 10px;
    width: 100%;
}

.cms-top-hero-block .hero-rate-card {
    flex: 1;
    background-color: #ffffff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 2px 2px 6px rgba(0,0,0,0.15);
    color: #005bac;
}

.cms-top-hero-block .rate-card-header {
    font-size: 9pt;
    font-weight: bold;
    color: #ffffff;
    padding: 5px 2px;
    text-align: center;
}
.cms-top-hero-block .shop-bar { background-color: #0756a0; }
.cms-top-hero-block .app-bar { background-color: #e60012; }

.cms-top-hero-block .card-year {
    font-size: 13pt;
    margin: 0 1px;
}

.cms-top-hero-block .rate-card-body {
    padding: 12px 2px;
    text-align: center;
    line-height: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: normal;
}
.cms-top-hero-block .red-text { color: #e60012; }

.cms-top-hero-block .rate-num-wrap {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin-bottom: 4px;
}

.cms-top-hero-block .rate-nen {
    font-size: 12pt;
    font-weight: bold;
    margin-right: 2px;
    padding-bottom: 4px;
}

.cms-top-hero-block .rate-num {
    font-size: 34pt;
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 0.9;
}

.cms-top-hero-block .rate-percent {
    font-size: 18pt;
    font-weight: 900;
    padding-bottom: 2px;
}

.cms-top-hero-block .rate-caption {
    font-size: 7pt;
    font-weight: normal;
    color: #666666;
    transform: scale(0.85);
    display: block;
}

.cms-top-hero-block .hero-bottom-caption {
    font-size: 9pt;
    font-weight: bold;
    margin: 10px 0 0 0;
    text-align: left;
    letter-spacing: 0.02em;
}
/* ==========================================================================
   【2/4】キャンペーン概要表エリア設定
   ========================================================================== */
.cms-campaign-block-TOP {
    width: 100%;
    background-color: #004094;
    padding: 40px 20px;
    box-sizing: border-box;
    font-size: 12pt;
    color: #000000;
}

.cms-campaign-block-v2 {
    width: 100%;
    background-color: #005bac;
    padding: 40px 20px;
    box-sizing: border-box;
    font-size: 12pt;
    color: #000000;
}

.cms-campaign-block-v2 .campaign-box {
    background-color: #ffffff;
    border: 1px solid #cccccc;
    box-sizing: border-box;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.cms-campaign-block-v2 .row-container {
    display: flex;
    border-bottom: 1px dashed #cccccc;
    width: 100%;
    box-sizing: border-box;
    background-color: #ffffff;
}
.cms-campaign-block-v2 .row-container:last-child {
    border-bottom: none;
}

.cms-campaign-block-v2 .left-label {
    width: 160px;
    min-width: 160px;
    background-color: #f2f5f8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 12pt;
    text-align: center;
    padding: 20px 10px;
    box-sizing: border-box;
    border-right: 1px dashed #cccccc;
}

.cms-campaign-block-v2 .right-content {
    flex: 1;
    padding: 20px;
    font-size: 12pt;
    line-height: 1.6;
    box-sizing: border-box;
}

.cms-campaign-block-v2 .center { text-align: center; }
.cms-campaign-block-v2 .font-left { text-align: left; }
.cms-campaign-block-v2 .bold-text { font-weight: bold; }
.cms-campaign-block-v2 .font-normal { font-weight: normal; }
.cms-campaign-block-v2 .font-large { font-size: 16pt; }
.cms-campaign-block-v2 .pink-text { color: #d65a7f; }
.cms-campaign-block-v2 .gray-text { color: #666666; }
.cms-campaign-block-v2 .small-text { font-size: 10pt; line-height: 1.5; }
.cms-campaign-block-v2 .padding-zero { padding: 0 !important; }

.cms-campaign-block-v2 .plan-table {
    width: 100%;
    border: 1px solid #000000;
    margin-top: 12px;
}
.cms-campaign-block-v2 .plan-row {
    display: flex;
}
.cms-campaign-block-v2 .plan-cell {
    flex: 1;
    padding: 10px;
    text-align: center;
    border-right: 1px solid #000000;
    box-sizing: border-box;
    font-size: 12pt;
}
.cms-campaign-block-v2 .plan-cell:last-child { border-right: none; }
.cms-campaign-block-v2 .plan-row:first-child .plan-cell {
    border-bottom: 1px solid #000000;
}
.cms-campaign-block-v2 .blue-bg { background-color: #e6f2ff; }
.cms-campaign-block-v2 .pink-bg { background-color: #ffe6eb; }
/* 概要表：利息エリア内部の区切り構成 */
.cms-campaign-block-v2 .interest-section {
    padding: 20px;
    box-sizing: border-box;
}
.cms-campaign-block-v2 .interest-section.border-top {
    border-top: 1px solid #000000;
}
.cms-campaign-block-v2 .interest-title {
    font-weight: bold;
    margin-bottom: 10px;
    text-align: left;
    font-size: 12pt;
}
.cms-campaign-block-v2 .interest-body {
    font-weight: bold;
    font-size: 12pt;
}

/* 利息項目：金利格子状テーブル（PC用） */
.cms-campaign-block-v2 .rate-table {
    width: 100%;
    border: 1px solid #000000;
    box-sizing: border-box;
}
.cms-campaign-block-v2 .rate-block-group {
    display: flex;
    gap: 15px;
    width: 100%;
    box-sizing: border-box;
}
.cms-campaign-block-v2 .rate-plan-block {
    flex: 1;
    border: 1px solid #000000;
    box-sizing: border-box;
}
.cms-campaign-block-v2 .rate-plan-title {
    text-align: center;
    padding: 6px;
    font-size: 11pt;
    border-bottom: 1px solid #000000;
}
.cms-campaign-block-v2 .rate-plan-row {
    display: flex;
    width: 100%;
}
.cms-campaign-block-v2 .rate-grid-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 2px;
    border-right: 1px solid #000000;
    box-sizing: border-box;
    text-align: center;
}
.cms-campaign-block-v2 .rate-grid-cell:last-child {
    border-right: none;
}
.cms-campaign-block-v2 .rate-grid-cell.year-cell {
    width: 15%;
    font-size: 11pt;
    font-weight: normal;
}
.cms-campaign-block-v2 .blue-tint { background-color: #e6f2ff; }
.cms-campaign-block-v2 .pink-tint { background-color: #ffe6eb; }

/* 金利数値セル */
.cms-campaign-block-v2 .rate-grid-cell.val-cell {
    width: 18.333%;
    background-color: #ffffff;
    font-size: 12pt;
    font-weight: normal;
}

/* 留意点のリストスタイル */
.cms-campaign-block-v2 .text-tight { line-height: 1.6; }
.cms-campaign-block-v2 .text-list ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.cms-campaign-block-v2 .text-list li {
    position: relative;
    padding-left: 15px;
    margin-bottom: 12px;
    font-size: 11pt;
}
.cms-campaign-block-v2 .text-list li:last-child { margin-bottom: 0; }
.cms-campaign-block-v2 .text-list li::before {
    content: "・";
    position: absolute;
    left: 0;
    top: 0;
    font-weight: bold;
}

/* ==========================================================================
   ★【修正対応】PC専用リンクボタン設定（TOPと概要の間 ＆ 2と3の間 共通）
   メインビジュアルの枠外へ完全に独立、左右端から端まで100%真っ白な背景を固定
   ========================================================================== */
.pc-top-btn-container,
.pc-mid-btn-area {
    width: 100% !important;
    background-color: #ffffff !important; /* 端から端まで白背景に設定 */
    padding: 25px 20px !important;
    box-sizing: border-box !important;
    display: block !important;
}

.pc-mid-btn-wrapper {
    display: flex;
    gap: 20px;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    box-sizing: border-box;
}

/* ボタンにURL（href）を貼っても白飛びせず、濃い青・緑の背景を完全に維持する強度設定 */
.pc-mid-btn-wrapper .mid-btn {
    flex: 1;
    border-radius: 6px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.12);
    text-decoration: none !important;
    box-sizing: border-box;
    height: 64px; /* 縦幅を完全固定 */
    border: none !important;
    
    /* 文字の偏りを完全に直し、上下・左右ともにボタンの真ん中（中央）に100%整列させるFlexbox命令 */
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    text-align: center !important;
}

/* Wチャンス用ボタン：チラシ基準の濃い青色 ＆ 文字はくっきり白固定 */
.pc-mid-btn-wrapper .w-chance-mid-btn,
.pc-mid-btn-wrapper .w-chance-mid-btn:link,
.pc-mid-btn-wrapper .w-chance-mid-btn:visited,
.pc-mid-btn-wrapper .w-chance-mid-btn:hover,
.pc-mid-btn-wrapper .w-chance-mid-btn:active {
    background-color: #005bac !important; /* 濃い青色 */
    color: #ffffff !important;            /* 文字色：白 */
    font-size: 13pt !important;
    font-weight: bold !important;
    line-height: 1.2 !important;
}

/* よかもーる用ボタン：鮮やかな緑色 ＆ 文字はくっきり白固定 */
.pc-mid-btn-wrapper .yoka-mid-btn,
.pc-mid-btn-wrapper .yoka-mid-btn:link,
.pc-mid-btn-wrapper .yoka-mid-btn:visited,
.pc-mid-btn-wrapper .yoka-mid-btn:hover,
.pc-mid-btn-wrapper .yoka-mid-btn:active {
    background-color: #4da523 !important; /* 緑色 */
    color: #ffffff !important;            /* 文字色：白 */
    font-size: 13pt !important;
    font-weight: bold !important;
    line-height: 1.2 !important;
}

/* よかもーるボタン内の黄色いサブタイトル文言 */
.pc-mid-btn-wrapper .mid-btn-sub {
    font-size: 9.5pt !important;
    color: #fff100 !important; /* 黄色固定 */
    font-weight: normal !important;
    margin-bottom: 2px !important;
    line-height: 1 !important;
}
/* ==========================================================================
   【3/4】Wチャンス賞品エリア設定
   ========================================================================== */
.cms-wchance-block {
    width: 100%;
    background-color: #00a0e9;
    padding: 40px 20px;
    box-sizing: border-box;
    color: #ffffff;
}

.cms-wchance-block .wchance-header {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto 30px auto;
    display: block;
}

.cms-wchance-block .header-top-row {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.cms-wchance-block .badge-w {
    color: #00a0e9;
    font-weight: 900;
    font-size: 20pt;
    padding: 0px 4px;
    font-style: italic;
    letter-spacing: -0.05em;
    display: inline-block;
    line-height: 1.2;
    text-shadow: 
        2px 2px 0 #fff100, -2px -2px 0 #fff100,
        2px -2px 0 #fff100, -2px 2px 0 #fff100,
        2px 0px 0 #fff100, -2px 0px 0 #fff100,
        0px 2px 0 #fff100, 0px -2px 0 #fff100,
        2px 2px 4px rgba(0, 0, 0, 0.3);
}

.cms-wchance-block .header-sub-text {
    font-size: 11pt;
    font-weight: bold;
    line-height: 1.4;
    color: #fff100;
    letter-spacing: 0.02em;
}

.cms-wchance-block .header-bottom-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 20px;
}

.cms-wchance-block .header-main-title {
    font-size: 20pt;
    font-weight: bold;
    line-height: 1.4;
    margin: 0;
}

.cms-wchance-block .lottery-info-box {
    display: flex;
    align-items: center;
    background-color: #003668;
    border: 2px solid #ffffff;
    padding: 6px 20px;
    border-radius: 30px;
    white-space: nowrap;
    box-sizing: border-box;
}

.cms-wchance-block .lottery-count-text {
    margin: 0;
    font-size: 11pt;
    font-weight: bold;
}

.cms-wchance-block .yellow-text {
    color: #fff600;
    font-size: 15pt;
}

.cms-wchance-block .lottery-deadline-text {
    margin: 0 0 0 12px;
    font-size: 10.5pt;
    font-weight: normal;
}

.cms-wchance-block .prize-container {
    display: flex;
    gap: 15px;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    box-sizing: border-box;
}

.cms-wchance-block .prize-card {
    flex: 1;
    background-color: #ffffff;
    border: 2px solid #ffffff;
    display: flex;
    height: 195px;
    box-sizing: border-box;
    overflow: hidden;
    box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.15);
}

.cms-wchance-block .prize-info-side {
    flex: 0.75;
    position: relative;
    padding: 45px 6px 10px 12px;
    box-sizing: border-box;
    color: #000000;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.cms-wchance-block .prize-image-side {
    flex: 1.25;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.cms-wchance-block .prize-image-side img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cms-wchance-block .badge-prize {
    position: absolute;
    top: 0;
    left: 0;
    width: 105px;
    height: 38px;
    color: #ffffff;
    font-weight: bold;
    padding: 2px 5px;
    box-sizing: border-box;
    font-size: 10pt;
    clip-path: polygon(0 0, 100% 0, 82% 100%, 0 100%);
}
.cms-wchance-block .gold-bg { background-color: #bfa054; }
.cms-wchance-block .blue-bg { background-color: #1a5192; }
.cms-wchance-block .yellow-bg { background-color: #cda200; }

.cms-wchance-block .prize-letter { font-size: 16pt; font-style: italic; margin-right: 2px; }
.cms-wchance-block .prize-count {
    position: absolute;
    right: 20px;
    top: 2px;
    font-size: 11pt;
    line-height: 1;
    text-align: center;
}
.cms-wchance-block .prize-count small { font-size: 7pt; }
.cms-wchance-block .prize-sub { font-size: 9pt; color: #555555; margin: 0; font-weight: bold; white-space: nowrap; }
.cms-wchance-block .prize-name { font-size: 11pt; font-weight: bold; line-height: 1.3; margin: 4px 0; }
.cms-wchance-block .prize-spec { font-size: 8pt; color: #666666; margin: 0; }
.cms-wchance-block .caption-text { font-size: 9px; color: #e0f4ff; margin-top: 15px; margin-bottom: 0; max-width: 1000px; margin-left: auto; margin-right: auto; }

/* ==========================================================================
   【4/4】規約文言エリア基本設定
   ========================================================================== */
.cms-footer-block {
    width: 100%;
    background-color: #ffffff;
    padding: 30px 25px;
    box-sizing: border-box;
    color: #000000;
    border-top: 2px solid #00a0e9;
}

.cms-footer-block .sp-only-btn-area { display: none; }

.cms-footer-block .pc-only-top-area {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto 35px auto;
    gap: 20px;
    border-bottom: 2px solid #000000;
    padding-bottom: 30px;
}

.cms-footer-block .qr-box { width: 75px; min-width: 75px; height: 75px; border: 1px solid #000000; overflow: hidden; }
.cms-footer-block .qr-box img { width: 100%; height: 100%; object-fit: cover; }
.cms-footer-block .pc-column-left { display: flex; align-items: center; gap: 10px; flex: 0.8; }
.cms-footer-block .w-btn-box {
    background-color: #00a0e9; color: #ffffff; font-size: 9.5pt; font-weight: bold; padding: 8px 10px; text-align: center; line-height: 1.4; border-radius: 4px; box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
}

.cms-footer-block .pc-column-center { flex: 1.6; display: flex; flex-direction: column; justify-content: center; }
.cms-footer-block .code-title { font-size: 11pt; font-weight: bold; margin: 0 0 10px 0; }
.cms-footer-block .code-title span { font-size: 8.5pt; font-weight: normal; color: #333333; }
.cms-footer-block .code-squares-group { display: flex; align-items: center; gap: 4px; width: 100%; }
.cms-footer-block .square-box { flex: 1; height: 44px; border: 1px solid #000000; background-color: #ffffff; }
.cms-footer-block .code-hyphen { font-size: 20pt; font-weight: bold; color: #000000; padding: 0 4px; line-height: 1; }

.cms-footer-block .pc-column-right { display: flex; align-items: center; gap: 12px; flex: 0.8; justify-content: flex-end; }
.cms-footer-block .yoka-logo-area { text-align: right; }
.cms-footer-block .yoka-sub { font-size: 7.5pt; color: #e60012; font-weight: bold; display: block; }
.cms-footer-block .yoka-main-logo { font-size: 18pt; font-weight: 900; color: #4da523; line-height: 1.1; margin: 2px 0; }
.cms-footer-block .yoka-btn { font-size: 8.5pt; font-weight: bold; color: #000000; }

.cms-footer-block .terms-conditions-container { width: 100%; max-width: 1000px; margin: 0 auto; font-size: 9.5pt; line-height: 1.6; text-align: left; }
.cms-footer-block .terms-heading { font-size: 10pt; font-weight: bold; margin: 0 0 8px 0; }
.cms-footer-block .terms-text-list { margin: 0 0 20px 0; padding: 0; list-style: none; }
.cms-footer-block .terms-text-list li { margin-bottom: 8px; font-weight: bold; }
.cms-footer-block .privacy-agreement-box { font-size: 7.5pt; color: #222222; line-height: 1.5; border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.cms-footer-block .privacy-title { font-size: 8pt; font-weight: bold; margin: 12px 0 4px 0; }
.cms-footer-block .privacy-agreement-box p { margin: 0 0 10px 0; }

/* -------------------------------------------
   【重要】モバイル対応（画面幅768px以下設定）
   ========================================== */
@media screen and (max-width: 768px) {
    /* リンク文字色青変化防止をスマホ用ボタン（aタグ）にも強制適用 */
    .cms-footer-block .sp-btn,
    .cms-footer-block .sp-btn:link,
    .cms-footer-block .sp-btn:visited {
        color: #ffffff !important;
    }

    /* 【1】トップビジュアル */
    .cms-top-hero-block { padding: 20px 8px; }
    .cms-top-hero-block .hero-period-row { gap: 4px; margin-bottom: 15px; flex-wrap: nowrap; width: 100%; justify-content: center; }
    .cms-top-hero-block .period-title-box { min-width: 45px; }
    .cms-top-hero-block .period-year { font-size: 12px; }
    .cms-top-hero-block .period-label-sub { font-size: 9px; padding: 1px 3px; }
    .cms-top-hero-block .date-main { font-size: 26px; }
    .cms-top-hero-block .date-day { font-size: 10px; width: 15px; height: 15px; border-width: 1px; margin-bottom: 3px; margin-left: 2px; }
    .cms-top-hero-block .date-arrow { font-size: 18px; margin: 0 4px 2px 4px; }
    .cms-top-hero-block .catch-main-title { font-size: 13px; line-height: 1.4; padding: 0 5px; }
    .cms-top-hero-block .slash-deco { font-size: 13px; }
    .cms-top-hero-block .catch-sub-text { font-size: 10px; line-height: 1.3; }
    
    /* スマホでのプランボックス・金利カード間の余白を最適化 */
    .cms-top-hero-block .hero-plans-container { display: block; margin-bottom: 15px; }
    .cms-top-hero-block .hero-plan-box { width: 100%; margin-bottom: 25px; }
    .cms-top-hero-block .hero-plan-box:last-child { margin-bottom: 10px; }
    
    .cms-top-hero-block .plan-title-wrapper { height: 50px; margin-bottom: 12px; align-items: center; display: flex; justify-content: center; gap: 8px; }
    .cms-top-hero-block .plan-character-img { height: 45px; flex-shrink: 0; }
    .cms-top-hero-block .plan-name-badge { font-size: 16px; padding: 18px 12px 6px 12px; letter-spacing: 0; line-height: 1.2; border-radius: 6px; display: block; width: 155px; box-sizing: border-box; }
    .cms-top-hero-block .plan-sub-lbl { position: absolute; top: 3px; left: 0; width: 100%; text-align: center; font-size: 8px; white-space: normal; line-height: 1.1; display: block; }
    .cms-top-hero-block .app-lbl { color: #ffffff; font-size: 9px; top: 4px; }
    .cms-top-hero-block .hero-rate-cards-row { gap: 4px; width: 100%; }
    .cms-top-hero-block .rate-card-header { font-size: 8px; padding: 4px 0; line-height: 1.2; }
    .cms-top-hero-block .card-year { font-size: 9px; }
    .cms-top-hero-block .rate-card-body { padding: 10px 0; }
    .cms-top-hero-block .rate-nen { font-size: 9px; padding-bottom: 1px; margin-right: 1px; }
    .cms-top-hero-block .rate-num { font-size: 19px; }
.cms-top-hero-block .rate-percent { font-size: 11px; padding-bottom: 1px; }.cms-top-hero-block .rate-caption { display: none; }/* ★ご指示の修正：スマホ表示時に金利カードと文字が被って重なるバグをクリアランス自動拡張で完全解消 */.cms-top-hero-block .hero-bottom-caption {font-size: 9.5px;line-height: 1.4;margin-top: 25px !important;padding-top: 5px;display: block;clear: both;}/* 新設した上部・中間ボタンエリアをスマホ表示（SP）のときは自動で完全に非表示にする命令 */.pc-top-btn-container,.pc-mid-btn-area {display: none !important;}/* 【2】概要表 */.cms-campaign-block-v2 { padding: 20px 10px; font-size: 13px; }.cms-campaign-block-v2 .row-container { display: block; border-bottom: 1px solid #cccccc; }.cms-campaign-block-v2 .left-label { width: 100% !important; min-width: 100% !important; border-right: none; border-bottom: 1px dashed #cccccc; padding: 10px; justify-content: flex-start; text-align: left; font-size: 13px; }.cms-campaign-block-v2 .right-content { width: 100% !important; padding: 12px 10px; font-size: 13px; }.cms-campaign-block-v2 .interest-title, .cms-campaign-block-v2 .interest-body, .cms-campaign-block-v2 .plan-cell { font-size: 13px; }.cms-campaign-block-v2 .font-large { font-size: 18px; }/* スマホ専用金利テーブル構造：格子状の横一列（ご提示画像通りに完全復元） */.cms-campaign-block-v2 .rate-block-group { display: block; }.cms-campaign-block-v2 .rate-plan-block { margin-bottom: 12px; }.cms-campaign-block-v2 .rate-plan-block:last-child { margin-bottom: 0; }.cms-campaign-block-v2 .rate-plan-title { font-size: 12px; padding: 5px; }.cms-campaign-block-v2 .rate-plan-row { display: flex; width: 100% !important; flex-wrap: nowrap !important; }.cms-campaign-block-v2 .rate-grid-cell { border-right: 1px solid #000000 !important; border-bottom: none !important; }.cms-campaign-block-v2 .rate-plan-row .rate-grid-cell:last-child { border-right: none !important; }.cms-campaign-block-v2 .rate-grid-cell.year-cell { width: 14% !important; font-size: 11px; padding: 6px 0; }.cms-campaign-block-v2 .rate-grid-cell.val-cell { width: 19.333% !important; font-size: 12px; font-weight: normal; padding: 6px 0; }.cms-campaign-block-v2 .text-list li { font-size: 11px; }/* 【3】Wチャンス */.cms-wchance-block { padding: 25px 12px 30px 12px; }.cms-wchance-block .wchance-header { margin-bottom: 20px; }.cms-wchance-block .header-top-row { display: block; margin-bottom: 10px; }.cms-wchance-block .badge-w { font-size: 16pt; margin-bottom: 8px; }.cms-wchance-block .header-sub-text { display: block; font-size: 12px; color: #fff100; }.cms-wchance-block .header-bottom-row { display: block; }.cms-wchance-block .header-main-title { font-size: 15pt; margin-bottom: 15px; }.cms-wchance-block .lottery-info-box { display: block; background-color: #003668; border: 2px solid #ffffff; padding: 8px 15px; border-radius: 8px; width: 100%; text-align: center; white-space: normal; }.cms-wchance-block .lottery-count-text { font-size: 13px; margin-bottom: 4px; }.cms-wchance-block .yellow-text { font-size: 15px; }.cms-wchance-block .lottery-deadline-text { font-size: 11px; margin-left: 0; display: block; }.cms-wchance-block .prize-container { display: block; }.cms-wchance-block .prize-card { width: 100%; margin-bottom: 15px; height: 165px; }.cms-wchance-block .prize-info-side { flex: 0.7; padding: 10px 6px 10px 10px !important; display: flex; flex-direction: column; justify-content: flex-start; gap: 6px; }.cms-wchance-block .prize-image-side { flex: 1.3; }.cms-wchance-block .badge-prize { position: relative !important; top: auto !important; left: auto !important; width: fit-content; height: auto; padding: 4px 10px; font-size: 11px; clip-path: none !important; border-radius: 3px; display: inline-block; }.cms-wchance-block .prize-letter { font-size: 13px; }.cms-wchance-block .prize-count { position: relative !important; right: auto !important; top: auto !important; display: inline !important; font-size: 11px; margin-left: 5px; }.cms-wchance-block .prize-count br { display: none; }.cms-wchance-block .prize-count small { font-size: 11px; margin-left: 2px; }.cms-wchance-block .prize-name { font-size: 13px; line-height: 1.2; }.cms-wchance-block .prize-sub, .cms-wchance-block .prize-spec { font-size: 10px; }/* 【4】フッターボタン＆規約 */.cms-footer-block { padding: 20px 12px; }.cms-footer-block .pc-only-top-area { display: none !important; }.cms-footer-block .sp-only-btn-area { display: block !important; width: 100%; margin-bottom: 25px; height: auto !important; }.cms-footer-block .sp-btn { display: block; width: 100%; text-align: center; box-sizing: border-box; text-decoration: none; font-weight: bold; border-radius: 6px; margin-bottom: 14px; box-shadow: 0 3px 6px rgba(0,0,0,0.16); height: auto !important; padding: 15px 10px !important; }.cms-footer-block .sp-btn-main { display: block !important; font-size: 13px !important; line-height: 1.4 !important; height: auto !important; margin: 0; padding: 0; }.cms-footer-block .sp-btn-sub { display: block !important; font-size: 11px !important; color: #fff100; font-weight: normal; line-height: 1.3 !important; margin-bottom: 4px; height: auto !important; }.cms-footer-block .w-chance-sp-btn { background-color: #00a0e9; color: #ffffff; border: 2px solid #ffffff; }.cms-footer-block .yoka-sp-btn { background-color: #4da523; color: #ffffff; border: 2px solid #ffffff; }.cms-footer-block .terms-conditions-container { font-size: 11px; }.cms-footer-block .terms-heading { font-size: 12px; }.cms-footer-block .privacy-agreement-box { font-size: 9px; }}