/*==============================================================

共通設定

==============================================================*/

.js-scrollable {
    overflow-x: auto;
    white-space: nowrap;
}

body {
    position: relative;
    background-color: #ffff;
    color: #4e4e4e;
    font-family: 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', 'メイリオ', sans-serif;
}

.content {
    margin: 0 auto;
    max-width: 750px;
}

.section {
    line-height: 1.6;
}

.header__menu svg path {
    stroke: var(--color-purple);
}

:root {
    --color-main: #ff7ca7;
    /* メインカラー */
    --color-sub: #f20f5b;
    /* サブカラー */
    --color-point: #fcff00;
    /* ポイントカラー */
    --color-point--sec: #f1dc23;
    /* ポイントカラー */
    --color-green: #4CAF50;
    /* グリーン */
    --color-white: #FFFF;
    /* ホワイト */
    --color-black: #372E41;
    /* ブラック */
    --color-purple: #7947a4;
    /* パープル */
    --color-blue: #0073aa;
    /* ブルー */
    --color-gray: #ccc;
    /* グレー */
    --color-light-gray: #f8f8f8;
    /* ライトグレー */
    --color-dark-gray: #666;
    /* ダークグレー */
}

.wd-750 {
    width: 750px;
}

.bg-purple{
    background-color:#f8f6ff ;
}

/*==============================================================

header設定

==============================================================*/

header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    background-color: var(--color-light-gray);
}

.header-logo img {
    max-height: 70px;
    /* ロゴの高さを制限 */
    height: auto;
    flex: 1;
    /* ロゴ部分を左端に固定 */
}

.header__menu {
    cursor: pointer;
    /* メニューボタンをクリック可能にする */
}

/* ヘッダーロゴ内のリンク全体をピンクに */
.header-logo a {
    text-decoration: none;
    /* 下線を消す */
    color: var(--color-purple);
    /* リンクの文字色をピンクに */
}

/* 訪問後のリンク色も同じく */
.header-logo a:visited {
    color: var(--color-purple);
}


/* もし p.c-text--pink がまだ必要なら、念のためもっと強く */
.header-logo a .c-text--pink {
    color: var(--color-purple) !important;
}


/*==============================================================

テキスト設定

==============================================================*/

.text-b {
    font-weight: bold;
}

.ft-15 {
    font-size: 15px;
}



.ft-sp-20 {
    font-size: 26px;
}

.ft-SP20 {
    font-size: 26px;
}

.ft-30 {
    font-size: 30px;
}

.ft-40 {
    font-size: 40px;
}

.c-text--main {
    color: var(--color-main);
    font-weight: bold;
}

.c-text--yellow {
    color: var(--color-point);
}

.c-text--yellow-deep {
    color: var(--color-point--sec);
}


.c-text--white {
    color: var(--color-white);
}

.c-text--pink {
    color: var(--color-sub);
}

.c-text--purple {
    color: var(--color-purple);
}

.c-text--dark-gray {
    color: var(--color-dark-gray);
}

.text-linear {
    background: linear-gradient(transparent 40%, #fffd81 60%);
}

/*==============================================================

マージン設定

==============================================================*/
.mt-3 {
    margin-top: 3%;
}

.mt-4 {
    margin-top: 4%;
}

.mt-5 {
    margin-top: 5%;
}

.mt-7 {
    margin-top: 7%;
}

.mt-15 {
    margin-top: 15%;
}

.mb-2 {
    margin-bottom: 2%;
}

.mb-3 {
    margin-bottom: 3%;
}

.mb-5 {
    margin-bottom: 5%;
}

.mb-4 {
    margin-bottom: 4%;
}

.mb-7 {
    margin-bottom: 7%;
}

.ml-3 {
    margin-left: 3%;
}

.br-sp {
    display: none;
}


/*==============================================================

アコーディオン設定

==============================================================*/
/* ──────────── ポイントセクション ──────────── */
.points-section {
    position: relative;
    border: 3px solid var(--color-main);
    border-radius: 20px;
    padding: 40px 20px 20px;
    background: #fff;
    margin-bottom: 2rem;
}

.points-section__header {
    position: absolute;
    top: -1.5em;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-main);
    /* padding: 0.5rem 1.5rem; */
    border-radius: 77px;
    font-size: 20px;

}

/* アコーディオン本体 */
.points-accordion .points-item+.points-item {
    margin-top: 2rem;
}

.points-header {
    display: flex;
    align-items: center;
}

.points-number {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    line-height: 2rem;
    text-align: center;
    border-radius: 50%;
    background: var(--color-main);
    color: var(--color-white);
    font-weight: bold;
    margin-right: 0.75rem;
    flex-shrink: 0;
}

.points-title {
    color: var(--color-main);
    font-size: 1.25rem;
    font-weight: bold;
}

.points-desc {
    margin: 1rem 0;
    line-height: 1.6;
}

/* 「続きを読む」＋矢印 */
.read-more {
    cursor: pointer;
    text-align: center;
    color: var(--color-main);
    font-weight: bold;
}

.read-more-arrow {
    display: block;
    width: 0;
    height: 0;
    margin: 0.25rem auto 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 7px solid var(--color-main);
    transition: transform 0.3s;
}

/* 隠しコンテンツ */
.points-more-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

/* 開いたとき */
.points-item.active .read-more-arrow {
    transform: rotate(180deg);
}

.points-item.active .points-more-content {
    /* 高さは十分に大きめに */
    max-height: 500px;
}

/* 開いた（active）ら続きを読むボタンを非表示に */
.points-item.active .read-more {
    display: none;
}


/*==============================================================

　ランキング表設定

==============================================================*/

.scroll-hint-icon{
	z-index:999;
}
/* ヒント要素を正しく絶対配置するために必須 */
.js-scrollable {
    position: relative;
}


/* テーブル全体を横スクロール可能にするコンテナ */
.site-table-container {
    overflow-x: auto;
    white-space: nowrap;
    margin: 0 auto;
    max-width: 100%;
    position: relative;
  z-index: 1000; /* お好みの値 */
}

/* テーブルスタイル */
.site-table-ranking-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 800px;
    /* スクロールを誘発する最低幅 */
    background-color: #fff;
    border: 1px solid #e5e5e5;
    margin: 0 auto;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    margin-bottom: 3%;
}

.site-table-ranking-table th,
.site-table-ranking-table td {
    padding: 10px;
    border: 1px solid #ddd;
    vertical-align: middle;
    font-size: 14px;
    line-height: 1;
}

.site-table-ranking-table th {
    background-color: #f9f9f9;
    font-weight: bold;
}

.site-table-ranking-table td a.btn {
    display: inline-block;
    background-color: #a790dd;
    color: #fff;
    text-decoration: none;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.site-table-ranking-table td a.btn:hover {
    background-color: #665393;

}

.highlight-circle {
    position: relative;
    text-align: center;
    /* テキストを中央揃え */
}

.highlight-circle span {
    position: relative;
    /* テキストを二重丸の上に表示 */
    z-index: 1;
    /* テキストを前面に表示 */
}

.highlight-circle::before,
.highlight-circle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border: 4px solid #e9e3fe;
    /* 赤い枠線 */
    border-radius: 50%;
    /* 丸にする */
    z-index: 0;
    /* 二重丸を背景に表示 */
}

.highlight-circle::before {
    width: 30px;
    /* 外側の丸の幅 */
    height: 30px;
    /* 外側の丸の高さ */
}

.highlight-circle::after {
    width: 10px;
    /* 内側の丸の幅 */
    height: 10px;
    /* 内側の丸の高さ */
}

.highlight-circle-one {
    position: relative;
    text-align: center;
    /* テキストを中央揃え */
}

.highlight-circle-one span {
    position: relative;
    z-index: 1;
    /* テキストを丸の上に表示 */
}

.highlight-circle-one::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    /* 円の幅 */
    height: 30px;
    /* 円の高さ */
    border: 4px solid #e9e3fe;
    /* 赤い枠線 */
    border-radius: 50%;
    /* 丸にする */
    z-index: 0;
    /* 背景に配置 */
}

td {
    overflow: hidden;
}


/*==============================================================

h設定

==============================================================*/

h2 {
    padding: 1rem 1rem;
    border-bottom: 3px solid var(--color-gray);
    ;
    background: var(--color-purple);
    text-align: center;
    font-size: 20px;
}

h4 {
    padding: 5px;
    background: transparent;
    /*背景透明に*/
    border-left: solid 5px var(--color-purple);
}

h5 {
    padding: 0.4em 0.5em;
    /*文字の上下 左右の余白*/
    color: #494949;
    /*文字色*/
    background: #f4f4f4;
    /*背景色*/
    border-left: solid 5px #c485e3;
    /*左線*/
    border-bottom: solid 3px #d7d7d7;
    /*下線*/
}

/*==============================================================

ランキングの続きはこちら/btn

==============================================================*/

.ranking-button-wrapper {
    text-align: center;
    margin: 40px 0;
}

.ranking-button {
    background-color: #fff;
    border: 3px solid var(--color-purple);
    ;
    color: var(--color-purple);
    ;
    font-weight: bold;
    font-size: 20px;
    padding: 20px 40px;
    border-radius: 10px;
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s;
}

.ranking-button:hover {
    background-color: var(--color-purple);
    ;
    color: #fff;
}


/*==============================================================

先生の名前＋1位アイコン設定

==============================================================*/


.teacher-ranking__area-container {
    display: flex;
    justify-content: center;
    /* 水平方向に中央揃え */
    align-items: center;
    /* 垂直方向に中央揃え */
    margin-top: 2%;

}

.teacher-ranking__area-center-text {
    display: flex;
    align-items: center;
    /* 垂直方向に中央揃え */
    gap: 10px;
    /* アイコンとテキストの間隔 */
    justify-content: center;
        
}


.teacher-ranking__area-ranking-icon {
    width: 12%;
}

.teacher-ranking__area-ranking-icon-text {
    font-size: 25px;
    color: #654ca4;
    font-weight: bold;
}


.site-icon {
    width: 50%;
    margin: 0 auto;
    display: block;
    margin-bottom: 9%;
}

.profile__ranking-icon {
    width: 20%;
}

.profile>p {
    font-size: 18px;
    font-weight: bold;
    color: #665393;
    line-height: 1.2;
}


.teacher-icon {
    display: block;
    /* ブロック要素に変更 */
    position: relative;
    /* absoluteからrelativeに変更 */
    width: 300px;
    margin: 0 auto;
}


.teacher-icon__graph {
    display: block;
    /* ブロック要素に変更 */
    position: relative;
    /* absoluteからrelativeに変更 */
    width: 300px;
    margin: 0 auto;
}


.site__banner__img {
    width: 80%;
    margin: 0 auto;
    display: block;
}


/*==============================================================

ランキンググラフ

==============================================================*/


.rating-table {
    margin: 1% 16%;
    /* 上下 3%・左右自動で中央寄せ */
    border-collapse: collapse;
    font-family: Arial, sans-serif;
    padding: 3%;
    /* お好みで調整 */
}


.rating-table th,
.rating-table td {
    border: 1px solid #ddd;
    padding: 10px;
    text-align: left;
    vertical-align: middle;
    line-height: 1.5;
}

.rating-table th {
    background-color: #f9f9f9;
    /* 背景色を薄いグレーに */
    font-weight: normal;
    width: 20%;
    /* 見出しの幅を固定 */
}

.rating-table td {
    width: 80%;
    background-color: #fff;
}

.rating-table a {
    color: #EF618D;
    /* キャンペーンリンクの色 */
    text-decoration: none;
    font-weight: bold;
}

.rating-table a:hover {
    text-decoration: underline;
}



/*==============================================================

あたる電話占いランキング設定

==============================================================*/

.section-title {
    width: 90%;
    padding: 20px;
}

/* ヘッダー部分 */
.section-title__text {
    text-align: left;
    margin-bottom: 20px;
}


.section-title__date {
    font-size: 14px;
    font-weight: bold;
    color: #666;
    border-left: 4px solid #7e57c2;
    padding-left: 8px;
    margin-bottom: 10px;
}

.section-title__date1 {
    font-size: 14px;
    font-weight: bold;
    color: #666;
    border-left: 4px solid #7e57c2;
    padding-left: 8px;
    margin-bottom: 10px;
}

.section-title__sentence {
    font-size: 18px;
    font-weight: bold;
    color: #333;
}

/* ハイライトボックス */
.section-sub-title {
    background-color: #e9e3fe;
    color: #654ca4;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    padding: 10px 0;
    margin-bottom: 20px;
    border-radius: 4px;
}

/* 説明部分 */
.section-sub-title__text {
    font-size: 14px;
    line-height: 1.8;
    color: #555;
    text-align: justify;
    padding: 0% 3%;
}


・section-sub-title__container>ul :marker {
    padding: 3px;
}

/*==============================================================

ボタン設定

==============================================================*/
.btn {
    display: inline-block; /* インラインブロックでボタンの形状を維持 */
    width: 150px; /* ボタンの横幅を統一 */
    text-align: center; /* テキストを中央揃え */
    padding: 10px 0; /* 上下の余白を追加 */
    background-color: #6a1b9a; /* ボタンの背景色 */
    color: #fff; /* テキストの色 */
    border-radius: 5px; /* 角を丸くする */
    text-decoration: none; /* 下線を削除 */
}

.btn:hover {
    background-color: #8e24aa; /* ホバー時の背景色 */
}

.btn__text {
    text-align: center;
    margin-bottom: -30px;
    font-weight: bold;


}

button {
    text-shadow: 2px 2px 4px rgba(73, 43, 4, 0.8);
    padding: 20px 75px;
    text-align: center;
    text-decoration: none;
    font-size: 22px;
    cursor: pointer;
    border: none;
    border-radius: 50px;
    text-align: center;
    margin-top: 5%;
    margin-bottom: 5%;
    color: #ffff;

}

@keyframes shimmer {
    0% {
        left: -150%;
    }

    100% {
        left: 150%;
    }
}


.official__btn {
    font-weight: bold;
    text-shadow: 2px 2px 4px rgba(73, 43, 4, 0.8);
    padding: 20px 107px;
    text-decoration: none;
    font-size: 22px;
    cursor: pointer;
    border: none;
    border-radius: 10px;
    background: #6ef6d5;
    border: 5px outset #6ef6d5;
    position: relative;
    overflow: hidden;
}

/* 🌟 ずっと光るキラーンエフェクト */
.official__btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -150%;
    width: 100%;
    height: 100%;
    background: linear-gradient(120deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0) 70%);
    animation: shimmer 2s infinite linear;
    /* ずっと光る */
}



.official__btn_container {
    text-align: center;
    margin-top: 5%;
    margin-bottom: 5%;
}

/*==============================================================

　 運営会社ページ設定/management_information

==============================================================*/

.operating-info__table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    font-size: 16px;
}

.operating-info__table td {
    padding: 12px;
    border: 1px solid var(--color-dark-gray);
}

.operating-info__table tr:nth-child(even) {
    background-color: var(--color-light-gray);
}

.operating-info__table tr:nth-child(odd) {
    background-color: #e8d8f0;
}

.operating-info__table td:first-child {
    font-weight: bold;

}

/*==============================================================

　 フッター設定

==============================================================*/
.footer {
    background-color: var(--color-light-gray);
    color: var(--color-purple);
    padding: 20px 0;
    text-align: center;
    font-weight: bold;
    margin-top: 50px;
}

.footer__info {
    padding: 10px 20px;
    display: inline-block;
}


@media only screen and (max-width: 750px) {

    .content {
        max-width: 100%;
        margin: 0 auto;
    }

    .main-visual__img {
        max-width: 100%;
    }

    .section {
        line-height: 2.0;
    }

    .article {
        padding: 3%;
    }

    /*==============================================================

アコーディオン設定


==============================================================*/
    /* pill 見出し部分全体 */
    .points-section__header {
        /* フォントサイズを小さく */
        padding: 0.4rem 1rem;
        font-size: 0.875rem;
        top: -1.2em;
    }

    /* 日本語の自動改行を抑制 */
    .points-section__header .text-break {
        white-space: nowrap;
        /* もし word-break をガッツリ指定しているなら上書き */
        word-break: keep-all;
    }

    .points-number {
        width: 24px;
        height: 24px;
        line-height: 24px;
        font-size: 0.75rem;
        /* 12px 相当 */
        margin-right: 0.4rem;
    }

    .points-title {
        font-size: 14px;
        font-weight: bold;
    }

    .points-section {
        margin: 33px 1rem;
        /* 内側のパディングも調整したい場合は下記を追加 */
        padding: 20px 1rem 20px;
        /* もし枠線がはみ出すようであれば box-sizing を調整 */
        box-sizing: border-box;
    }

    .points-desc {
        margin: 0.5rem;
        line-height: 1.6;
    }

    /* 続きを読むボタン全体を小さく */
    .points-accordion .read-more {
        font-size: 0.75rem;
        /* 12px 相当 */
        margin: 0.5rem 0;
        /* 上下の余白を少し狭く */
    }

    /* テキスト部分をさらに小さく */
    .points-accordion .read-more .read-more-text {
        display: block;
        line-height: 1.2;
        margin-bottom: 0.2rem;
    }

    /* 矢印サイズも小さく */
    .points-accordion .read-more .read-more-arrow {
        width: 0;
        height: 0;
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-top: 5px solid var(--color-main);
        transition: none;
    }



    /*==============================================================

　テキスト設定

==============================================================*/

    .ft-15 {
        font-size: 15px;
    }


    .ft-30 {
        font-size: 20px;
    }

    .ft-sp-16 {
        font-size: 16px;
    }

    .ft-20 {
        font-size: 17px;
    }

    .ft-sp-20 {
        font-size: 13px;
    }

    .rs-ft-13 {
        font-size: 13px;
    }

    .text-break {
        display: block;
    }

    .h4-text {
        padding: 0.3rem;
    }

    /*==============================================================

ランキングの続きはこちら/ボタン

==============================================================*/

    .ranking-button {
        font-size: 14px;
    }


    /*==============================================================

サイトランキング設定

==============================================================*/

    .site-introduction__center {
        display: flex;
        justify-content: center;
        /* 水平方向に中央揃え */
        align-items: center;
        /* 垂直方向に中央揃え */
        margin-top: 2%;
    }

    .site-introduction__center-text {
        display: flex;
        align-items: center;
        /* 垂直方向に中央揃え */
        gap: 10px;
        /* アイコンとテキストの間隔 */
    }


    .site-introduction__ranking-icon {
        width: 30%;
    }

    .site-introduction__ranking-icon-text {
        font-size: 30px;
        color: #654ca4;
        font-weight: bold;
    }


    .site-img {
        display: block;
        margin: 0 auto;
        padding-bottom: 4%;
        padding-top: 4%;
    }

    .site-table-ranking-table__ranking-icon {
        width: 40px;
    }

    .th img {
        width: 50%
    }

    /*==============================================================

各占いサイト紹介設定

==============================================================*/
    .badge-green {
        font-size: 16px;
        padding: 7px 6px;
        margin-left: 3%;
    }

    .card-image {
        width: 25%;
        margin-left: 3%;
    }

    /* 各サイトのサムネバナー */
    .card-site-image {
        width: 25%;
        margin-left: 3%;
        margin-top: 7%;
        height: 100%;
    }


    .description {
        padding-right: 18px;
        line-height: 1.5;
    }

    .card-body::after {
        font-size: 12px;
        right: 2px;
        top: 50%;
        transform: translateY(-50%);
    }

    .card-header {
        margin-top: 6%;
    }

    /*==============================================================
　　　　ボタン設定

==============================================================*/
    .btn {
        display: block;
        text-align: center;
    }

    .official__btn {
        padding: 14px 11px;
        font-size: 17px;
        font-weight: bold;
    }

    .btn__main {
        margin-top: 9%;
    }

    .link-container {
        font-size: 14px;
    }

    .site-table-ranking-table {
        margin-top: 8%;
    }

    .btn__main-purple {
        margin-top: 10%;
    }


    .site-table-container {
        margin-bottom: 8%;
    }

    .btn__text {
        text-align: center;
        margin-bottom: -30px;
        font-weight: bold;
        margin-bottom: -4%;
        font-size: 13px;
    }

    /*==============================================================

ランキンググラフ

==============================================================*/



    .rating-table {
        margin: 1% 3%;
        /* 上下 3%・左右自動で中央寄せ */
        border-collapse: collapse;
        font-family: Arial, sans-serif;
        padding: 3%;
        /* お好みで調整 */
    }

    .rating-table th,
    .rating-table td {
        font-size: 13px;
        /* ほか本文と同じなら 13px に */
        line-height: 1.6;
        /* 必要なら行間も調整 */
    }

    .teacher-icon {
        width: 212px;
        margin-bottom: 3%;
    }

    .teacher-icon__graph{
        width: 120px;
    }

    /*==============================================================
　　　　運営者情報　設定

==============================================================*/

    .operating-info__table {
        margin: 0 auto;
        /* 画面中央寄せ */
        width: 95%;
        /* テーブルの横幅を画面の95%に */
        max-width: 500px;
        /* 必要に応じて最大幅を設定 */
        table-layout: fixed;
        /* 固定レイアウトでセル幅調整 */
        border-collapse: collapse;
        overflow-x: auto;
        /* はみ出る場合は横スクロール */
        word-wrap: break-word;
        /* 長いテキストがある場合に折り返し */
    }

    /* セル内テキストの折り返しをより確実にするため */
    .operating-info__table td {
        white-space: normal;
        /* テキストを折り返し可能に */
        font-size: 14px;
        /* モバイルで見やすい程度にフォント調整 */
    }

    h5 {
        width: 90%;
        margin: 0 auto;
    }


    /*==============================================================
　　　　h設定

==============================================================*/
    h4 {
        padding: 3px;
        border-left: solid 3px var(--color-purple);
        padding-left: 0.5em;
    }





}

/*==============================================================

ボタン設定

==============================================================*/
.btn-wrapper {
    display: flex; /* 横並びにする */
    flex-wrap: wrap; /* 幅が足りない場合に折り返し */
    justify-content: center; /* 中央揃え */
    align-items: center; /* 縦方向の中央揃え */
    gap: 20px; /* ボタン間の隙間 */
    max-width: 750px; /* 横幅を750pxに制限 */
    margin: 0 auto; /* 中央寄せ */
}

.btn_main {
    display: flex; /* フレックスボックスで配置 */
    justify-content: center; /* 横方向の中央揃え */
    align-items: center; /* 縦方向の中央揃え */
}