html,
body {
    overflow-x: clip;
}
.preline {
    white-space: pre-line;
} /* \n を 改行として表示 */
.card-img-frame {
    width: 100%;
    aspect-ratio: 21/9; /* 必要なら 16/9 に */
    background: #f8f9fa;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.card-img-frame img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block; /* ← 余白対策 */
}

@media (max-width: 576px) {
    .card-img-frame {
        aspect-ratio: 16/9;
    }
}

/* メリットのアイコン：切り抜かない */
.benefit-icon {
    width: 56px;
    height: 56px;
    object-fit: contain;
    border-radius: 8px;
    display: block;
}

/* 種目画像を小さく＆ノークロップ */
.exercise-img {
    width: 100%;
    max-height: 220px; /* お好みで 160〜260px に */
    object-fit: contain; /* 切り抜かない */
    background: #fff;
    padding: 8px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    display: block; /* 余白対策 */
}
.screenshot {
    max-width: 500px; /* 最大幅を指定（スマホや記事幅に合わせ調整） */
    width: 100%; /* 画面幅が狭いときは縮小される */
    height: auto; /* アスペクト比を保つ */
    display: block;
    margin: 15px auto; /* 中央寄せ＆上下余白 */
    border: 1px solid #ddd;
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.article-figure {
    max-width: 380px; /* PC時の最大幅 */
    width: 100%; /* スマホでは親幅にフィット */
    height: auto;
    border: 1px solid #ddd;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    margin: 8px auto; /* スマホ縦並び時の中央寄せ */
}
/* 脱スマホ依存症アフェリエイトCSS、PCでは横並び＆cover、スマホでは縦積み＆contain */

.aff-card .product-img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

/* ★スマホのときだけカード幅を細くして中央寄せ */
@media (max-width: 575.98px) {
    .aff-card {
        max-width: 300px; /* 好みで 300〜360px に */
    }
    .aff-card .card-body {
        padding: 10px;
    }
    .aff-card .btn {
        padding: 0.5rem 0.75rem;
    }
}

/* アフェリエイト商品画像ボックス（少し小さめに） */
.product-card {
    max-width: 260px; /* カードの最大幅を固定 */
    margin: 0 auto; /* 中央寄せ */
}
.product-img-box {
    aspect-ratio: 3 / 4;
    width: 70%; /* カード幅の80%で画像表示 */
    margin: 0 auto;
    display: grid;
    place-items: center;
    border: 2px solid #dfe6ed;
    border-radius: 12px;
    background: #fff;
}
.product-img-box img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
