/* 
=======================================================
GENERAL
=======================================================
*/

* {
    line-height: 1.5;
    box-sizing: border-box;
    border-collapse: collapse;
}

:root {
    /* カラー */
    /* ---------------------------------- */
    /* CTA */
    --cta: #DD4B1A;

    /* メイン */
    --skyblue: #8DD8F8;
    --pink: #f2a7c1;
    --orange: #ff6f41;
    --green: #298675;
    --yellow: #ffc759;
    --benesse: #1E5BAC;
    --kinder_logo: #e81829;

    /* SEASON: 秋 */
    --autumn_purple: #932E71;
    --autumn_chacol: #6C432D;
    --autumn_red: #96232E;

    /* 各色の濃淡 */
    --pale_skyblue: #D9F2FD;
    --deep_skyblue: #3FBDF3;

    --pale_pink: #FCEDF3;
    --deep_pink: #EA719B;
    --dark_pink: #C31D57;

    --pale_orange: #FFD1C2;
    --deep_orange: #8F2400;

    --pale_green: #EBFFFC;
    --deep_green: #005247;

    --pale_yellow: #FFF8EB;
    --middle_yellow: #FFDD99;
    --deep_yellow: #ffad0a;

    /* フォント */


    /* bg */

    /* 余白 */
    /* ---------------------------------- */
    /* セクション */
    --section_updown_pc: 3rem 0;
    --section_updown_sp: 1.5rem 0;

    /* タイトル */
    --title_bottom_pc: 1.5rem;
    --title_bottom_sp: 1rem;

    /* 要素の余白 */
    --padding_pc: 1rem;
    --padding_sp: 0.5rem;

    /* text */
    --text_padding_pc: 1.5rem 1rem;
    --text_padding_sp: 1rem;

    /* ボタン */
    --btn_padding_pc: 1rem 3rem 1rem 2rem;
    --btn_padding_sp: 0.5rem 1.5rem 1rem 0;
    --btn_radius: 12rem;
    --text_radius: 0.5rem;

    --margin_bottom_pc: 1rem;
    --margin_bottom_sp: 0.5rem;

    /* GAP */
    --section_gap_pc: 1.5rem;
    --section_gap_sp: 1rem;
    --gap_pc: 1rem;
    --gap_sp: 0.5rem;

    /* 幅 */
    /* ---------------------------------- */
    /* PC幅 */
    --width_pc: 1000px;
}

body {
    width: 100%;
    max-width: 100%;
    margin: auto;
    font-family: 'Zen Old Mincho', serif;
    font-family: "Noto Sans JP", sans-serif;
}

/* under 480 */
@media screen and (max-width: 480px) {
    body {
        font-size: 1rem;
    }
}

main {
    margin: 0;
}

h1 {
    font-size: 1.8rem;
}

@media screen and (max-width: 480px) {
    h1 {
        font-size: 1.5rem;
    }
}

h2 {
    font-size: 1.5rem;
    font-family: "Murecho", sans-serif;
}

@media screen and (max-width: 480px) {
    h2 {
        font-size: large;
    }
}


h3 {
    font-size: 1.3rem;
}

@media screen and (max-width: 480px) {
    h3 {
        font-size: 1rem;
    }
}

h4 {
    font-size: 1.1rem;
}

@media screen and (max-width: 480px) {
    h4 {
        font-size: 0.95rem;
    }
}

hr {
    border-bottom: 1px solid #000;
    padding: 0.25rem 0;
}

p,
a {
    font-style: normal;
    font-size: 1rem;
    /* margin-bottom: 0.3rem; */
}

p:last-child {
    margin-bottom: 0;
}

a {
    text-decoration: none;
}

ul,
ol {
    list-style: none;
}

span {
    display: inline;
}

sup {
    vertical-align: top;
    font-size: 0.4rem;
}

.redirect {
    margin: 0;
    padding: 0;
}

select {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
}

select::-ms-expand {
    display: none;
}

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

    select,
    label {
        font-size: smaller;
    }
}

/* テーブル内のイメージを左右中央寄せ */
table img {
    display: block;
    margin: 0 auto;
    width: 100px;
}

@media screen and (max-width: 480px) {
    table img {
        width: 80px;
    }
}

/*
PC、SPの改行
=======================================================
*/
.pc {
    display: block;
}

@media screen and (max-width:768px) {
    .pc {
        display: none;
    }
}

.sp {
    display: none;
}

@media screen and (max-width: 768px) {
    .sp {
        display: block;
    }
}

.annotation {
    line-height: 1;
    width: 100%;
    padding: 0 1rem;
    padding-bottom: 0.25rem;
}

/* 
=======================================================
強調デザイン
=======================================================
フォントサイズ
=======================================================
*/
.larger {
    font-size: larger;
}

.large {
    font-size: large;
}

.x-large {
    font-size: x-large;
    line-height: 1;
}

.largest {
    font-size: 3rem;
    line-height: 0.8;
}

@media screen and (max-width: 480px) {
    .largest {
        font-size: 1.8rem;
        line-height: 1;
    }
}

.smaller {
    font-size: smaller;
}

h2 .smaller {
    font-size: 1.1rem;
}

.small {
    font-size: small;
}

.x-small {
    font-size: x-small;
}

/* 
太さ
=======================================================
*/
.bold {
    font-weight: bold;
}

.bolder {
    font-weight: bolder;
}

/* 
フォント
=======================================================
*/
.murecho {
    font-family: "Murecho", sans-serif;
}

.shippori {
    font-family: 'Shippori Mincho', serif;
}


/* 
文字上ドット
=======================================================
*/
.dots {
    background-image: radial-gradient(circle at center,
            var(--yellow) 20%, transparent 20%);
    /* 点の色とサイズ調整 */
    background-position: top left;
    /* 点の位置 */
    background-repeat: repeat-x;
    /* 横方向に繰り返し */
    background-size: 1em 0.3em;
    /* 点の間隔とサイズ調整 */
    padding-top: 0.3rem;
    /* 縦方向の位置調整 */
}

/* 
カラー
=======================================================
*/
.skyblue {
    color: var(--skyblue);
}

.deep_skyblue {
    color: var(--deep_skyblue);
}

.bg_deep_skyblue {
    background: var(--deep_skyblue);
}

.pink {
    color: var(--pink);
}

.deep_pink {
    color: var(--deep_pink);
}

.bg_deep_pink {
    background: var(--deep_pink);
    padding: var(--padding_pc);
}

@media screen and (max-width:480px) {
    .bg_deep_pink {
        padding: var(--padding_sp);
    }
}

.orange {
    color: var(--orange);
}

.bg_orange {
    background: var(--orange);
    padding: var(--padding_pc);
}

@media screen and (max-width:480px) {
    .bg_orange {
        padding: var(--padding_sp);
    }
}

.green {
    color: var(--green);
}

.bg_green {
    background: var(--green);
    padding: var(--padding_pc);
}

@media screen and (max-width:480px) {
    .bg_green {
        padding: var(--padding_sp);
    }
}

.yellow {
    color: var(--yellow);
}

.deep_yellow {
    color: var(--deep_yellow);
}

.autumn_purple {
    color: var(--autumn_purple);
}

.autumn_chacol {
    color: var(--autumn_chacol);
}

.autumn_red {
    color: var(--autumn_red);
}

.benesse {
    color: var(--benesse);
}

/* こどもちゃれんじロゴ */
.kinder_logo {
    color: var(--kinder_logo);
}

.cta {
    color: var(--cta);
}

.bg_cta {
    background: var(--cta);
}

.white {
    color: white;
}

/* 
下線
=======================================================
*/
.underline {
    border-bottom: 1px solid;
}

.dotline {
    text-decoration: underline dotted;
}

.dashedline_white {
    padding-bottom: 0.1rem;
    border-bottom: dashed 2px white;
}

.dashedline_yellow {
    padding-bottom: 0.1rem;
    border-bottom: dashed 2px var(--yellow);
}

.dashedline_skyblue {
    padding-bottom: 0.1rem;
    border-bottom: dashed 2px var(--skyblue);
}

.dashedline_pink {
    padding-bottom: 0.1rem;
    border-bottom: dashed 2px var(--pink);
}

/* 
ハイライト
=======================================================
*/
.highlight_red_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    line-height: 1;
    background: linear-gradient(transparent 40%, rgba(255, 0, 0, 0.2) 40% 90%, transparent 90%);
}

.highlight_red_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, rgba(255, 0, 0, 0.2) 10% 90%, transparent 90%);
}

.highlight_pink_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 40%, rgba(255, 230, 238, 0.6) 40% 90%, transparent 90%);
}

.highlight_pink_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, rgba(255, 230, 238, 0.6) 10% 90%, transparent 90%);
}

.highlight_yellow_50 {
    display: inline;
    width: fit-content;
    line-height: 1;
    background: linear-gradient(transparent 40%, rgba(255, 240, 0, 0.4) 40% 90%, transparent 90%);
}

.highlight_yellow_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, rgba(255, 240, 0, 0.4) 10% 90%, transparent 90%);
}

.highlight_white_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 50%, rgba(255, 255, 255, 0.6) 50% 90%, transparent 90%);
    padding-bottom: 0.3rem;
}

.highlight_white_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, rgba(255, 255, 255, 0.6) 10% 90%, transparent 90%);
}

.highlight_green_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 40%, #b9e382 40% 90%, transparent 90%);
}

.highlight_green_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, #b9e382 10% 90%, transparent 90%);
}

.highlight_blue_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 40%, #79DFFF 40% 90%, transparent 90%);
}

.highlight_blue_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, #79DFFF 40% 90%, transparent 90%);
}

/* 
文字寄せ
=======================================================
*/
.right {
    text-align: right;
    margin-right: 1rem;
}

.left {
    text-align: left;
}

.separator {
    margin-bottom: 1.5rem;
}

/* 
=======================================================
Animationアニメーション
=======================================================
*/

/* アニメーション適用例 */
.fuwafuwa {
    -webkit-animation: fuwafuwa 2s infinite;
    -moz-animation: fuwafuwa 2s infinite;
    animation: fuwafuwa 2s infinite;
}

@keyframes shine {
    33% {
        left: 100%;
    }

    100% {
        left: 100%;
    }
}

@keyframes heartbeat {
    0% {
        transform: scale(1);
    }

    4% {
        transform: scale(1.02);
    }

    8% {
        transform: scale(1);
    }

    12% {
        transform: scale(1.02);
    }

    16% {
        transform: scale(1);
    }
}

@keyframes dokidoki {
    0% {
        transform: scale(1);
    }

    40% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.02);
    }

    60% {
        transform: scale(1);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes heartbeat {
    0% {
        transform: scale(1);
    }

    4% {
        transform: scale(1.02);
    }

    8% {
        transform: scale(1);
    }

    12% {
        transform: scale(1.02);
    }

    16% {
        transform: scale(1);
    }
}

@keyframes scaling {
    from {
        transform: scale(0.9, 0.9);
    }

    to {
        transform: scale(1, 1);
    }
}

@keyframes bggradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@-webkit-keyframes blink {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@-moz-keyframes blink {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes blink {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@-webkit-keyframes mochimochi {
    0% {
        transform: scale(1, 0.8);
    }

    20% {
        transform: scale(0.8, 1.1);
    }

    90% {
        transform: scale(1, 1);
    }

    100% {
        transform: scale(1, 0.8);
    }
}

@-moz-keyframes mochimochi {
    0% {
        transform: scale(1, 0.8);
    }

    20% {
        transform: scale(0.8, 1.1);
    }

    90% {
        transform: scale(1, 1);
    }

    100% {
        transform: scale(1, 0.8);
    }
}

@keyframes mochimochi {
    0% {
        transform: scale(1, 0.8);
    }

    20% {
        transform: scale(0.8, 1.1);
    }

    90% {
        transform: scale(1, 1);
    }

    100% {
        transform: scale(1, 0.8);
    }
}

@-webkit-keyframes fuwafuwa {
    0% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-0.5rem);
    }

    100% {
        transform: translateY(0px);
    }
}

@-moz-keyframes fuwafuwa {
    0% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-0.5rem);
    }

    100% {
        transform: translateY(0px);
    }
}

@keyframes fuwafuwa {
    0% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-0.5rem);
    }

    100% {
        transform: translateY(0px);
    }
}

@-webkit-keyframes pikopiko {
    0% {
        transform: rotate(20deg);
    }

    to {
        transform: rotate(-10deg);
    }
}

@-moz-keyframes pikopiko {
    0% {
        transform: rotate(20deg);
    }

    to {
        transform: rotate(-10deg);
    }
}

@keyframes pikopiko {
    0% {
        transform: rotate(20deg);
    }

    to {
        transform: rotate(-10deg);
    }
}

@keyframes fuwafuwa_updown {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(8px);
    }
}

/* 横のふわふわの動き */
@keyframes fuwafuwa_sideway {

    0%,
    100% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(5px);
    }
}

@keyframes rotation {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes kurukuru {
    0% {
        transform: rotateY(0);
    }

    100% {
        transform: rotateY(360deg);
    }
}

@keyframes moveRight {
    0% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(0.5rem);
    }

    100% {
        transform: translateX(0);
    }
}

@keyframes shine {
    20% {
        left: 150%;
    }

    100% {
        left: 150%;
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0;
        /* 透明 */
        transform: translateY(-10px);
        /* 上から表示 */
    }

    100% {
        opacity: 1;
        transform: none;
    }
}

/* 
=======================================================
COMMON
=======================================================
Width 設定：一律1000px
wrapは中の要素、wrap抜きのクラス名で全面背景色の設定可能
=======================================================
*/
.cta_wrap,
.slogan,
.intro_wrap,
.form_wrap,
.cta_block_wrap,
.penetration_wrap,
.prepare_wrap,
.diff_wrap,
.choose_wrap,
.point_wrap,
.compare_table_wrap,
.rank_wrap,
.result_wrap,
.menu_wrap {
    max-width: var(--width_pc);
    margin: 0 auto;
}

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

    .first_wrap,
    .image_wrap,
    .slogan,
    .intro_wrap,
    .form_wrap,
    .cta_block_wrap,
    .penetration_wrap,
    .prepare_wrap,
    .diff_wrap,
    .choose_wrap,
    .point_wrap,
    .compare_table_wrap,
    .reason_wrap,
    .rank_wrap,
    .result_wrap,
    .footer.menu_wrap {
        margin: 0 1rem;
    }
}


/* 
=======================================================
TRIANGLE ▶
=======================================================
*/
.triangle {
    display: inline-block;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    background-size: 200% 200%;
    animation: bggradient 1s ease infinite, moveRight 1s linear infinite;
}

/* 
=======================================================
BUTTON
=======================================================
*/

/* Default button background color is #EFEFEF, reset the color */
button {
    width: 100%;
    background-color: transparent;
}

.shiny_button {
    position: relative;
    overflow: hidden;
    display: flex;
    width: 60%;
    margin: 0 auto;
    justify-content: center;
    align-items: center;
    padding: 1rem;
    border-radius: var(--btn_radius);
}

.shiny_button p {
    font-size: 2rem;
    font-weight: bolder;
    color: white;
}


@media screen and (max-width: 480px) {
    .shiny_button {
        width: 80%;
    }

    .shiny_button p {
        font-size: 1.5rem;
    }
}

.shiny_button::after {
    position: absolute;
    content: '';
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .4) 100%);
    height: 100%;
    left: -100%;
    top: 0;
    transform: skewX(-25deg);
    width: 50%;
    animation: 2s 0s shine linear infinite;
}

/* 
=======================================================
FV
=======================================================
*/
.fv_wrap {
    width: 100%;
    height: 100%;
}

/* 背景画像 */
/* 小学校 */
.fv_img {
    position: relative;
    background-image: url(../img/background/primary_bg.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: var(--section_updown_pc);
}

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

    .fv_img {
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
    }
}

/* 幼児 */
.kinder .fv_img {
    background-image: url(../img/background/kindcer_bg.png);
}

/* 中学 */
.junior .fv_img {
    background-image: url(../img/background/junior_bg.png);
}

/* 2025年最新版 */
.fv_img::before {
    position: absolute;
    content: "";
    height: 4rem;
    width: 100%;
    background-image: url(../img/fv/fv_2025_latest.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    top: -1.75rem;
}

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

    /* 2025年最新版 */
    .fv_img::before {
        height: 2.5rem;
        width: 100%;
        top: -1.05rem;
    }
}

/* スローガン&画像囲み */
.image_wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

/* スローガン&画像囲み */
.slogan_wrap {
    position: relative;
    display: flex;
    justify-content: flex-start;
    width: 100%;
}

.slogan {
    width: 100%;
    background: white;
    height: fit-content;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--padding_pc);
    gap: var(--gap_sp);
    bottom: 3rem;
    left: 4rem;
    border-radius: 1.5rem;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
}

.slogan ul {
    display: flex;
    gap: var(--gap_pc);
}

.slogan ul li {
    display: flex;
    font-size: larger;
    text-align: center;
}

.slogan ul li a {
    color: white;
    animation: dokidoki 1s ease 1s infinite alternate;
}

.slogan p {
    font-size: x-large;
}

.img_slogn_wrap {
    width: 63%;
}

.img_slogn {
    padding: 1rem 0rem 1rem;
}

@media screen and (max-width: 1024px) {
    .slogan {
        width: fit-content;
        margin: 0;
    }

    .slogan h1 {
        font-size: medium;
        font-size: 1.2rem;
    }

    .slogan ul {
        gap: var(--gap_sp);
    }

    .slogan ul li {
        justify-content: center;
        align-items: center;
        font-size: medium;
        text-align: center;
    }

    .slogan_wrap {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        width: 100%;
    }

    .img_slogn {
        width: 75%;
    }

    .img_slogn_wrap {
        width: 80%;
    }

    .img_slogn_wrap {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin: 0 auto;
    }
}

@media screen and (max-width: 480px) {
    .slogan {
        margin: 1rem auto;
        padding: 1rem;
    }

    .slogan h1 {
        text-align: left;
        font-size: medium;
        font-size: 0.9rem;
    }

    .slogan ul li a {
        font-size: smaller;
        width: 100%;
        margin-bottom: 0;
    }

    .img_slogn_wrap {
        width: 100%;
        padding: 0.5rem;
    }
}

.fv img {
    max-height: 430px;
}

@media screen and (max-width:480px) {
    .fv img {
        max-height: 200px;
        object-fit: contain;
    }
}

/* 
=======================================================
FORM
=======================================================
FORM全体にかかる設定
-------------------------------------------------------
*/
.form {
    padding: var(--section_updown_pc);
}

@media screen and (max-width: 480px) {
    .form {
        padding: var(--section_updown_sp);
    }
}

/* 
FORM 診断部分
-------------------------------------------------------
*/
.form_wrap {
    display: flex;
    flex-direction: column;
    gap: var(--gap_pc);
}

/* 
FORM 診断部分見出し
-------------------------------------------------------
*/
.form_wrap h2 {
    text-align: center;
}

@media screen and (max-width: 480px) {
    .form_wrap h2 {
        margin: 0;
    }
}

.fv {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: 20px;
}

.question_wrap {
    display: flex;
    margin: 0 auto;
    flex-direction: column;
    width: 85%;
    gap: var(--gap_sp);
    background: var(--pale_yellow);
    padding: var(--padding_pc);
    border-radius: 3px;
    box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.35);
}

@media screen and (max-width:480px) {
    .question_wrap {
        width: 95%;
        padding: 0.5rem;
    }

}

/* 
FORM 各質問エリア
-------------------------------------------------------
*/
/* 小学校 */
.form .q_wrap {
    display: flex;
    width: 100%;
    border: 1px solid var(--orange);
}

/* 幼児 */
.kinder .q_wrap {
    border: 1px solid var(--pink);
}

/* 中学 */
.junior .form .q_wrap {
    border: 1px solid var(--green);
}


/* 
FORM タイトル
-------------------------------------------------------
*/
/* 小学校 */
.primary .question_wrap h3 {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--orange);
    color: white;
}

/* 幼児 */
.kinder .question_wrap h3 {
    background-color: var(--pink);
    display: flex;
    color: white;
    align-items: center;
    justify-content: center;
}

/* 中学 */
.junior .question_wrap h3 {
    background-color: var(--green);
    display: flex;
    color: white;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width: 480px) {
    .form h3 {
        text-align: center;
        padding: var(--padding_sp);
    }
}


/* 
FORM 選択肢エリア
-------------------------------------------------------
*/
.question {
    display: flex;
    flex-wrap: wrap;
    background: white;
    padding: var(--padding_pc);
    gap: var(--gap_pc);
}

.question--center {
    justify-content: center;
}

@media screen and (max-width: 480px) {
    .question {
        padding: 0.5rem;
        flex-wrap: nowrap;
        background-color: #fff;
    }

    .question.many_choice {
        flex-direction: column;
        justify-content: center;
        gap: var(--gap_sp);
    }
}


/* 
FORM　各選択肢
-------------------------------------------------------
*/
.form .options {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    width: calc((100% / 2) - 0.5rem);
}

@media screen and (max-width: 480px) {
    .form .options {
        width: calc((100% / 2) - 0.25rem);
    }

    .form .options.many {
        width: 100%;
    }
}

.form .options:nth-child(even) {
    margin-right: 0;
}

.form input {
    appearance: none;
}

.form select {
    width: 100%;
    background-image: url("../img/common/arrow.png");
    background-repeat: no-repeat;
    background-size: 24px auto;
    background-position: right center;
}

.question_wrap select {
    width: 100%;
    background-image: url(../img/common/arrow.png);
    background-repeat: no-repeat;
    background-size: 24px auto;
    background-position: right center;
}

@media screen and (max-width:480px) {
    .form select {
        width: 100%;
        background-image: url("../img/common/arrow.png");
        background-repeat: no-repeat;
        background-size: 24px auto;
        background-position: right center;
        padding-left: 10px;
    }

    .question_wrap select {
        width: 100%;
        background-image: url(../img/common/arrow.png);
        background-repeat: no-repeat;
        background-size: 20px auto;
        background-position: right center;
    }
}

/* 
選択肢のチェックボックス
-------------------------------------------------------
*/
/* チェックボックスを非表示にする方法1: appearance */
.question_wrap input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    margin: 0;
    padding: 0;
}


.form input[type="checkbox"]+label {
    display: block;
    position: relative;
    padding-left: 2rem;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.question_wrap input[type="checkbox"]+label {
    display: inline-block;
    position: relative;
    padding-left: 2rem;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

@media screen and (max-width: 480px) {
    .form input[type="checkbox"]+label {
        padding-left: 1.5rem;
    }

    .question_wrap input[type="checkbox"]+label {
        padding-left: 1.5rem;
    }
}

.form input[type="checkbox"]+label:before {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--orange);
    position: absolute;
    top: 50%;
    left: 0%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    opacity: .6;
    -webkit-transition: all .12s, border-color .08s;
    transition: all .12s, border-color .08s;
}

.question_wrap input[type="checkbox"]+label:before {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--orange);
    position: absolute;
    top: 50%;
    left: 0%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    opacity: .6;
    -webkit-transition: all .12s, border-color .08s;
    transition: all .12s, border-color .08s;
}

/* 幼児 */
.kinder .question_wrap input[type="checkbox"]+label:before {
    border: 2px solid var(--pink);
}

/* 中学 */
.junior .form input[type="checkbox"]+label:before {
    border: 2px solid var(--green);
}

.form input[type="checkbox"]:checked+label:before {
    width: 8px;
    top: 20%;
    left: 0.5rem;
    border-radius: 0;
    opacity: 1;
    border-top-color: transparent;
    border-left-color: transparent;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.question_wrap input[type="checkbox"]:checked+label:before {
    width: 8px;
    top: 20%;
    left: 0.5rem;
    border-radius: 0;
    opacity: 1;
    border-top-color: transparent;
    border-left-color: transparent;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.form .checkbox.active,
.form .radio.active {
    color: var(--orange);
    background: var(--orange);
}

@media screen and (max-width:480px) {
    .form input[type="checkbox"]:checked+label:before {
        width: 8px;
        top: -26%;
        left: 0.5rem;
        border-radius: 0;
        opacity: 1;
        border-top-color: transparent;
        border-left-color: transparent;
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
    }

    .question_wrap input[type="checkbox"]:checked+label:before {
        width: 8px;
        top: -20%;
    }

}

/* 
選択肢のラジオボタン
-------------------------------------------------------
*/
.form input[type="radio"] {
    appearance: none;
}

.form input[type="radio"]+label {
    box-sizing: border-box;
    cursor: pointer;
    display: inline-block;
    padding-left: 2rem;
    position: relative;
    width: auto;
}

@media screen and (max-width: 480px) {
    .form input[type="radio"]+label {
        padding-left: 1.5rem;
    }
}

.form input[type="radio"]+label::before {
    border: 2px solid var(--orange);
    border-radius: 50%;
    content: '';
    display: block;
    height: 1.3rem;
    width: 1.3rem;
    left: 0px;
    margin-top: -12px;
    position: absolute;
    top: 50%;
}

/* 幼児 */
.kinder .form input[type="radio"]+label::before {
    border: 2px solid var(--pink);
}

/* 中学 */
.junior .form input[type="radio"]+label::before {
    border: 2px solid var(--green);
}

@media screen and (max-width: 480px) {
    .form input[type="radio"]+label::before {
        height: 20px;
        width: 20px;
        left: 0px;
        margin-top: -9px;
    }
}

/* 
ラジオボタン選択時のアニメーション
-------------------------------------------------------
*/
.form input[type="radio"]+label::after {
    background: var(--orange);
    border-radius: 50%;
    content: '';
    display: block;
    height: 14px;
    width: 13px;
    left: 4px;
    margin-top: -9px;
    opacity: 0;
    position: absolute;
    top: 50%;
    transform: scale3d(.3, .3, 1);
    transition: transform .2s ease-in-out, opacity .2s ease-in-out;
}

/* 幼児 */
.kinder .form input[type="radio"]+label::after {
    background: var(--pink);
}

/* 中学 */
.junior .form input[type="radio"]+label::after {
    background: var(--green);
}

@media screen and (max-width: 480px) {
    .form input[type="radio"]+label::after {
        height: 14px;
        width: 14px;
        left: 3px;
        margin-top: -6px;
    }
}

.form input[type="radio"]:checked+label:before {
    border-color: var(--orange);
}

/* 幼児 */
.kinder .form input[type="radio"]:checked+label:before {
    border-color: var(--pink);
}

/* 中学 */
.junior .form input[type="radio"]:checked+label:before {
    border-color: var(--green);
}

.form input[type="radio"]:checked+label::after {
    opacity: 1;
    transform: scale3d(1, 1, 1);
}

/* 
SUBMIT BUTTON
-------------------------------------------------------
*/
.submit_btn {
    width: 100%;
}

/* 
=======================================================
CTA BLOCK
=======================================================
cta block 全体にかかる設定
-------------------------------------------------------
*/
/* 背景 */
.cta_block {
    padding: var(--section_updown_pc);
    background: var(--pale_skyblue);
}

.kinder .cta_block {
    background: var(--pale_pink);
}

.junior .cta_block {
    background: var(--pale_green);
}

@media screen and (max-width: 480px) {
    .cta_block {
        padding: var(--section_updown_sp);
    }
}

.cta_block_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap_pc);
}

@media screen and (max-width: 480px) {
    .cta_block_wrap {
        gap: var(--gap_sp);
    }
}

/* cta タイトル */
.cta_block .title {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* cta 詳細まとめ */
.cta_block .detail {
    display: flex;
    align-items: center;
    height: 100%;
    background-color: white;
}

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

    /* cta 詳細まとめ */
    .cta_block .detail {
        display: flex;
        flex-direction: column;
    }
}

/* cta バナー */
.cta_block .icon {
    display: flex;
    width: 30%;
    height: 100%;
    margin-bottom: 0;
}

@media screen and (max-width: 480px) {
    .cta_block .icon {
        width: 100%;
    }
}

.cta_block .icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* cta 詳細文章 */
.cta_block .text {
    display: flex;
    width: 70%;
    height: fit-content;
    flex-direction: column;
    justify-content: center;
    padding: var(--padding_pc);
}

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

    /* cta 詳細文章 */
    .cta_block .text {
        width: 100%;
    }
}

/* 
=======================================================
penetration
=======================================================
penetration 背景部分の設定
-------------------------------------------------------
*/
/* penetration レイアウト */
.penetration_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap_pc);
    padding: var(--section_updown_pc);
    border-bottom: 1px solid var(--skyblue);
}

@media screen and (max-width: 480px) {
    .penetration_wrap {
        padding: var(--section_updown_sp);
        gap: var(--gap_sp);
    }
}

/* penetration タイトル */
.penetration h2 {
    padding: var(--padding_pc);
    background: var(--deep_pink);
    color: white;
    text-align: center;
}

@media screen and (max-width: 480px) {
    .penetration h2 {
        padding: var(--padding_sp);
    }
}

/* cta 詳細まとめ */
.penetration .detail {
    display: flex;
    height: 100%;
}

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

    /* cta 詳細まとめ */
    .penetration .detail {
        display: flex;
        flex-direction: column;
    }
}

/* cta バナー */
.penetration .icon {
    display: flex;
    flex: 1;
    margin-bottom: 0;
}

.penetration .icon img {
    width: 100%;
    height: 100%;
}

/* cta 詳細文章 */
.penetration .text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: fit-content;
    padding: var(--padding_pc);
    background: #FFF8EB;
}

/* 
幼児向け
-------------------------------------------------------
*/
/* 理由全体 */
.kinder .penetration .detail {
    flex-direction: column;
    gap: var(--gap_pc);
    width: 100%;
}

/* 理由1, 理由2 */
.kinder .penetration .item {
    display: flex;
    flex-direction: column;
    gap: var(--gap_pc);
}

@media screen and (max-width: 480px) {
    .kinder .penetration .item {
        gap: var(--gap_sp);
    }
}

/* 理由タイトル */
.kinder .penetration .title {
    display: flex;
    gap: var(--gap_pc);
    align-items: center;
}

/* 装飾 */
.kinder .penetration .title h3 {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 128rem;
    background: var(--deep_pink);
    height: 100%;
    aspect-ratio: 1/1;
    color: white;
}

.kinder .penetration .title p {
    font-size: x-large;
    font-weight: bold;
    color: #C31D57;
}

@media screen and (max-width: 480px) {
    .kinder .penetration .title p {
        font-size: medium;
        line-height: normal;
    }
}

@media screen and (max-width: 480px) {
    .kinder .penetration .title {
        gap: var(--gap_sp);
    }
}

/* コンテンツ */
.kinder .penetration .content {
    display: flex;
}

@media screen and (max-width: 480px) {
    .kinder .penetration .content {
        flex-direction: column;
    }
}

.kinder .penetration figcaption {
    font-size: x-small;
}


/* 
=======================================================
prepare
=======================================================
penetration 背景部分の設定
-------------------------------------------------------
*/
/* prepare レイアウト */
.prepare_wrap,
.diagram_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap_pc);
    padding: var(--section_updown_pc);
    border-bottom: 1px solid var(--skyblue);
}

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

    .prepare_wrap,
    .diagram_wrap {
        padding: var(--section_updown_sp);
        gap: var(--gap_sp);
    }
}

.diagram_wrap {
    padding: 1rem 0;
    border-bottom: none;
}

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

    .diagram_wrap {
        padding: 0.5rem 0;
    }
}

/* prepare タイトル */
.prepare h2 {
    padding: var(--padding_pc);
    background: var(--deep_pink);
    color: white;
    text-align: center;
}

@media screen and (max-width: 480px) {
    .prepare h2 {
        padding: var(--padding_sp);
    }
}

/* cta 詳細まとめ */
.prepare .detail {
    display: flex;
    height: 100%;
    align-items: center;
    gap: var(--gap_pc);
}

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

    /* cta 詳細まとめ */
    .prepare .detail {
        display: flex;
        flex-direction: column-reverse;
        gap: var(--gap_sp);
    }
}

.prepare .diagram {
    width: 30%;
    min-width: 240px;
}

.prepare .diagram img {
    width: 100%;
    height: 100%;
}

/* cta 詳細文章 */
.prepare .detail .text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: fit-content;
    padding: var(--padding_pc);
    background: #FFF8EB;
}

.prepare .column {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 0, 5rem;
    padding: 1rem;
    border-radius: 0.25rem;
    background-color: var(--pale_pink);
    border: dashed var(--pink) 1px;
}

@media screen and (max-width: 480px) {
    .prepare .column {
        gap: 0.25rem;
    }
}

.prepare .column h3 {
    background: var(--deep_pink);
    color: white;
    padding: 0.5rem;
    text-align: center;
}

/* 
=======================================================
DIFF
=======================================================
diff 背景部分の設定
-------------------------------------------------------
*/
.diff_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap_pc);
    padding: var(--section_updown_pc);
    border-bottom: 1px solid var(--skyblue);
}

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

    .diff_wrap {
        gap: var(--gap_sp);
        padding: var(--section_updown_sp);
    }
}

.diff h2 {
    padding: var(--padding_pc);
    background: var(--orange);
    color: white;
    text-align: center;
}

.diff .text {
    background: var(--pale_yellow);
    padding: var(--padding_pc);
}

/* テーブル */
.diff table {
    width: 100%;
    table-layout: auto;
    border-collapse: separate;
    border-spacing: 2px 0;
}

.diff th,
.diff td {
    padding: var(--padding_pc);
    vertical-align: middle;
    background: var(--pale_pink);
}

.diff td {
    text-align: left;
    width: 50%;
}

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

    .diff th,
    .diff td {
        padding: var(--padding_sp);
        font-size: smaller;
    }
}

@media screen and (max-width: 480px) {
    .diff tbody th {
        width: 0;
        text-orientation: mixed;
        white-space: wrap;
        /* テキストが折り返されないようにする */
    }
}

.diff thead tr:first-child th:first-child {
    background: white;
}

.diff tr:nth-child(even) th,
.diff tr:nth-child(even) td {
    background: var(--pale_green);
}

.diff thead th {
    border-radius: 6px 6px 0 0;
    color: #fff;
}

.diff thead th:nth-child(2) {
    background: var(--deep_pink);
}

.diff thead th:nth-child(3) {
    background: var(--deep_orange)
}

.diff tbody tr:first-child th {
    border-radius: 6px 6px 0 0;
}

.diff tbody tr:last-child th,
.diff tbody tr:last-child td {
    border-radius: 0 0 6px 6px;
}

.diff_wrap_02 h2 {
    background: #1E5BAC
}

.diff .text {
    background: var(--pale_yellow);
    padding: var(--padding_pc);
}

/* テーブル */
.diff_wrap_02 table {
    width: 100%;
    table-layout: auto;
    border-collapse: separate;
    border-spacing: 2px 0;
}

.diff_wrap_02 th,
.diff_wrap_02 td {
    padding: var(--padding_pc);
    vertical-align: middle;
    background: #ffe7df;
    border: 1px solid #cccccc;
}


.diff thead tr:first-child th:first-child {
    background: white;
}

.diff tr:nth-child(even) th,
.diff tr:nth-child(even) td {
    background: var(--pale_green);
    border: 1px solid #cccccc;
}

.diff thead th {
    border-radius: 6px 6px 0 0;
    color: #fff;
    border: 1px solid #cccccc;
}

.diff_wrap_02 thead th:nth-child(2) {
    background: #f8531c;
}

.diff_wrap_02 thead th:nth-child(3) {
    background: var(--deep_orange)
}

.diff tbody tr:first-child th {
    border-radius: 6px 6px 0 0;
}

.diff_wrap_02 thead th:nth-child(2) {
    border-top: none;
    border-left: none;
    border-right: none;
}


.merit_flex {
    display: flex;
    margin-bottom: 10px;
}

.merit_flex img {
    max-width: 24px;
    height: 24px;
    margin: 0 10px 0 0;
}

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

    .diff_wrap_02 th,
    .diff_wrap_02 td {
        padding: var(--padding_sp);
        vertical-align: middle;
        background: #ffe7df;
    }
}

/* 
幼児/中学向け
-------------------------------------------------------
*/
.kinder .diff table,
.junior .diff table {
    border-spacing: 2px;
}

.junior .diff table {
    text-align: center;
}

.kinder .diff tr:nth-child(1),
.kinder .diff tr:nth-child(2) {
    text-align: center;
    font-weight: bold;
}

.kinder .diff tr td:nth-child(odd),
.junior .diff tr td:nth-child(odd) {
    background: var(--pale_pink);
}

.kinder .diff tr td:nth-child(even),
.junior .diff tr td:nth-child(even) {
    background: var(--pale_yellow);
}

.kinder .diff thead tr:first-child th:first-child,
.junior .diff thead tr:first-child th:first-child {
    font-weight: bold;
    background-color: var(--pale_orange);
    color: #000;
    font-size: medium;
}

.kinder .diff thead th:nth-child(2),
.junior .diff thead th:nth-child(2) {
    border: none;
}


.kinder .diff td,
.junior .diff td {
    text-align: left;
    width: auto !important;
}

.kinder .diff tbody td:nth-child(2) {
    border: none;
}

.kinder .diff tbody tr:last-child td:nth-child(2) {
    border: none;
}

.junior .diff td.none {
    background: none !important;
}

.junior .diff thead th:nth-child(2) {
    border-top: solid 4px var(--deep_pink);
    border-left: solid 4px var(--deep_pink);
    border-right: solid 4px var(--deep_pink);
}

.junior .diff tbody td:nth-child(2) {
    border-left: solid 4px var(--deep_pink);
    border-right: solid 4px var(--deep_pink);
}

.junior .diff tbody tr:first-child td:nth-child(2) {
    border-top: solid 4px var(--deep_pink);
}

.junior .diff tbody tr:last-child td:nth-child(2) {
    border-bottom: solid 3px var(--deep_pink);
}

/* 
=======================================================
CHOOSE
=======================================================
choose 背景部分の設定
-------------------------------------------------------
*/
.choose_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap_pc);
    padding: var(--section_updown_pc);
    border-bottom: 1px solid var(--skyblue);
}

@media screen and (max-width: 480px) {
    .choose_wrap {
        gap: var(--gap_sp);
        padding: var(--section_updown_sp);
    }
}

/* 
choose タイトル
-------------------------------------------------------
*/
.choose h2 {
    padding: var(--padding_pc);
    background: var(--green);
    color: white;
}

/* オススメ理由 */
.choose ul {
    display: flex;
    gap: var(--gap_pc);
    width: 100%;
    counter-reset: li;
}

@media screen and (max-width: 480px) {
    .choose ul {
        flex-direction: column;
        gap: var(--gap_sp);
    }
}

/* 各おすすめ */
.choose ul li {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    background: white;
    border: solid 0.25rem var(--skyblue);
    border-radius: 0.5rem;
}

@media screen and (max-width: 480px) {
    .choose ul li {
        width: 100%;
    }
}

.choose ul li::before {
    position: absolute;
    counter-increment: li;
    content: counter(li) "";
    display: flex;
    align-items: center;
    justify-content: center;
    left: -1rem;
    top: -1.25rem;
    color: white;
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.5rem;
    border-radius: 100%;
    box-sizing: border-box;
    font-weight: bold;
    line-height: 0.9;
    background: var(--yellow);
}

@media screen and (max-width: 480px) {
    .choose ul li::before {
        top: 0.5rem;
        left: 0.5rem;
    }
}

/* 各おすすめタイトル */
.choose ul li div.title {
    display: flex;
    justify-content: center;
    background-color: var(--deep_skyblue);
    padding: var(--padding_pc);
    color: white;
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
    font-size: large;
    font-weight: bold;
}

@media screen and (max-width: 480px) {
    .choose ul li div.title {
        padding: 1rem 0.5rem;
        align-items: center;
    }
}

/* 各おすすめアイコン */
.choose ul li div.icon {
    padding: var(--padding_pc);
}

@media screen and (max-width: 480px) {
    .choose ul li div.icon {
        padding: var(--padding_sp);
    }
}

/* 
=======================================================
POINT
=======================================================
point 背景部分の設定
-------------------------------------------------------
*/
.point_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap_pc);
    padding: var(--section_updown_pc);
}

@media screen and (max-width: 480px) {
    .point_wrap {
        padding: var(--section_updown_sp);
    }
}

/* 
point タイトル
-------------------------------------------------------
*/
.point h2 {
    padding: var(--padding_pc);
    background: var(--green);
    color: white;
    text-align: center;
}

/* 
point アイテム
-------------------------------------------------------
*/
.point .point_item {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    gap: var(--gap_pc);
}

.point .item {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
}

@media screen and (max-width: 480px) {
    .point .item {
        gap: var(--gap_sp);
    }
}

/* 理由タイトル */
.point .title {
    display: flex;
    gap: var(--gap_pc);
    align-items: center;
}

/* 装飾 */
.point .title h3 {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 128rem;
    background: var(--deep_green);
    height: 100%;
    aspect-ratio: 1/1;
    color: white;
}

.point .title p {
    font-size: x-large;
    font-weight: bold;
    color: var(--deep_green);
}

@media screen and (max-width: 480px) {
    .point .title p {
        font-size: medium;
        line-height: normal;
    }
}

@media screen and (max-width: 480px) {
    .point .title {
        gap: var(--gap_sp);
    }
}

/* cta 詳細文章 */
.point .text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: fit-content;
    padding: var(--padding_pc);
    background: #FFF8EB;
}

/* テーブル（幼児） */
.point table {
    width: 100%;
    table-layout: auto;
    border-collapse: separate;
    border-spacing: 2px 0;
}

.point th,
.point td {
    padding: var(--padding_pc);
    vertical-align: middle;
    background: var(--pale_pink);
}

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

    .point th,
    .point td {
        padding: var(--padding_sp);
        font-size: smaller;
    }
}

@media screen and (max-width: 480px) {
    .point tbody th {
        width: 0;
        text-orientation: mixed;
        white-space: wrap;
        /* テキストが折り返されないようにする */
    }
}

.point thead tr:first-child th:first-child {
    background: white;
}

.point tr:nth-child(even) th,
.point tr:nth-child(even) td {
    background: var(--pale_green);
}

.point thead th {
    border-radius: 6px 6px 0 0;
    color: #fff;
}

.point thead th:nth-child(2) {
    background: var(--deep_pink);
}

.point thead th:nth-child(3) {
    background: var(--deep_orange)
}

.point tbody tr:first-child th {
    border-radius: 6px 6px 0 0;
}

.point tbody tr:last-child th,
.point tbody tr:last-child td {
    border-radius: 0 0 6px 6px;
}

.point thead th:nth-child(2) {
    border-top: solid 4px var(--deep_pink);
    border-left: solid 4px var(--deep_pink);
    border-right: solid 4px var(--deep_pink);
}

.point tbody td:nth-child(2) {
    border-left: solid 4px var(--deep_pink);
    border-right: solid 4px var(--deep_pink);
}

.point tbody tr:last-child td:nth-child(2) {
    border-bottom: solid 3px var(--deep_pink);
}

.point .column {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 0.5rem;
    padding: 1rem;
    border-radius: 0.25rem;
    background-color: var(--pale_green);
    border: dashed var(--green) 1px;
}

@media screen and (max-width: 480px) {
    .point .column {
        gap: 0.25rem;
    }
}

.point .column h3 {
    background: var(--deep_green);
    color: white;
    padding: 0.5rem;
    text-align: center;
}

.point .column .detail {
    display: flex;
    align-items: center;
    gap: var(--gap_pc);
}

@media screen and (max-width: 480px) {
    .point .column .detail {
        flex-direction: column;
        gap: var(--gap_sp);
    }
}

.point .column .detail .text {
    background: none;
    padding: 0;
}



/* 
=======================================================
COMPARE
=======================================================
compare 背景部分の設定
-------------------------------------------------------
*/
.compare_table {
    padding: var(--section_updown_pc);
    background-color: var(--pale_yellow);
}

@media screen and (max-width: 480px) {
    .compare_table {
        padding: var(--section_updown_sp);
    }
}

/*
compare table 中身のレイアウト
-------------------------------------------------------
*/
.compare_table_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap_pc);
}

@media screen and (max-width: 480px) {
    .compare_table_wrap {
        gap: var(--gap_sp);
        margin: 0.5rem;
    }
}

/* compare table タイトル */
.compare_table h2 {
    text-align: center;
}

/*
テーブル　商品イメージ後ろの背景色
-------------------------------------------------------
*/
.scroll_x .fields td {
    background-color: var(--skyblue);
}

.scroll_x .fields img {
    height: 150px;
    width: 200px;
    object-fit: contain;
    padding-top: var(--padding_pc);
}


.scroll_x .fields .no1,
.scroll_x .fields .no2,
.scroll_x .fields .no3 {
    position: relative;
}

.scroll_x .fields .no1::before,
.scroll_x .fields .no2::before,
.scroll_x .fields .no3::before {
    content: "";
    position: absolute;
    width: 50px;
    height: 50px;
    top: 5%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

.scroll_x .fields .no1::before {
    background-image: url(../img/compare_table/rank_1st.webp);
    background-size: contain;
    background-repeat: no-repeat;
}

.scroll_x .fields .no2::before {
    background-image: url(../img/compare_table/rank_2nd.webp);
    background-size: contain;
    background-repeat: no-repeat;
}

.scroll_x .fields .no3::before {
    background-image: url(../img/compare_table/rank_3rd.webp);
    background-size: contain;
    background-repeat: no-repeat;
}

.tbl_circle {
    font-size: xx-large;
    color: pink;
}

.tbl_batsu {
    font-size: xx-large;
    color: paleturquoise;
}

/*
テーブル　周りの設定
-------------------------------------------------------
*/
.scroll_x {
    overflow: scroll;
    margin: var(--box_marging_bottom_pc) auto;
    margin-top: 0;
    width: 100%;
}

@media screen and (max-width: 480px) {
    .scroll_x {
        margin: 0 auto;
    }
}

/*
テーブル　全体の設定
-------------------------------------------------------
*/
.scroll_x table {
    width: 100%;
    text-align: center;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--pale_yellow);
}

/*
テーブル　最初の1行
-------------------------------------------------------
/*
テーブル　最初の1行を縦書き
-------------------------------------------------------*/
.scroll_x table th:first-child.vertical {
    text-orientation: mixed;
    white-space: wrap;
    /* テキストが折り返されないようにする */
}

/*
テーブル　最初の1行を固定
-------------------------------------------------------
*/
.scroll_x table .sticky_1 {
    position: sticky;
    left: 0;
    z-index: 1;
}

/*
テーブル　ヘッダー(th) とセル（td）の全体設定
-------------------------------------------------------
*/
.scroll_x table th,
.scroll_x table td {
    border: 1px solid var(--pale_yellow);
    vertical-align: middle;
    word-wrap: break-word;
    white-space: wrap;
    padding: var(--padding_pc);
}

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

    .scroll_x table th,
    .scroll_x table td {
        padding: var(--padding_sp);
    }
}

.scroll_x table td {
    min-width: 180px;
}

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

    .scroll_x table td {
        min-width: 90px;
        font-size: smaller;
    }
}

/* 金額の期間 */
.scroll_x table td.yearly {
    background: var(--deep_yellow);
}

.scroll_x table td.half_year {
    background: var(--yellow);
}

.scroll_x table td.monthly {
    background: var(--middle_yellow);
}

/*
テーブル　ヘッダー(th: 項目名）の設定
-------------------------------------------------------
*/
.scroll_x table th {
    white-space: nowrap;
    color: white;
    background-color: var(--green);
}

/*
テーブル　セル（td: 各データ）の全体設定
-------------------------------------------------------
*/
.scroll_x td {
    white-space: wrap;
    border-right: 1px solid var(--deep_orange);
    border-bottom: 1px solid var(--autumn_chacol);
    background: #FFF;
}

@media screen and (max-width: 480px) {
    .scroll_x td {
        padding: var(--padding_sp);
        width: 100%;
    }
}

.scroll_x td.simulation {
    text-align: left;
}

.scroll_x td.tbl_ul {
    text-align: left;
}

.scroll_x td.tbl_ul ul {
    list-style-type: none !important;
}

.scroll_x td.tbl_ul ul li {
    position: relative;
    padding-left: 1.5rem;
}

.scroll_x td.tbl_ul ul li:last-child {
    margin-bottom: 0;
}

.scroll_x td.tbl_ul ul>li::before {
    position: absolute;
    content: "";
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    color: var(--main_maize);
    width: 1rem;
    height: 1rem;
    line-height: 1rem;
    text-align: center;
    font-weight: bold;
}

/* ★ */
.scroll_x td.tbl_ul ul>li.star::before {
    content: "★";
    color: var(--deep_yellow);
}

/* ✓ */
.scroll_x td.tbl_ul ul>li.doc::before {
    content: "✓";
}

/* ➿ */
.scroll_x td.tbl_ul ul>li.proc::before {
    content: "☎";
}

/* 
COMPARE TABLE 装飾部分
=======================================================
公式サイトへのボタン
-------------------------------------------------------
*/
.button_offical {
    background: var(--cta);
    color: white;
    border-radius: 0.25rem;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--padding_pc);
    margin: 0 auto;
    transition: 0.3s ease-in-out;
    font-weight: 500;
    animation: scaling 0.5s ease 0s infinite alternate;
}

@media screen and (max-width: 480px) {
    .button_offical {
        padding: var(--padding_sp);
    }
}

.button_offical:hover {
    background: var(--yellow);
    color: black;
}

/*
テーブル　各装飾
-------------------------------------------------------
*/
/* （）部分 */
.price_tag {
    font-size: x-small;
    line-height: 0.9;
}

/* 
=======================================================
RANKING DETAIL
=======================================================
rank 背景部分の設定
-------------------------------------------------------
*/
.rank {
    padding: var(--section_updown_pc);
}

@media screen and (max-width: 480px) {
    .rank {
        padding: 1.5rem 0;
    }
}

/* 
rank 見出し
-------------------------------------------------------
*/
.rank h2 {
    padding: var(--padding_pc);
    background-color: var(--deep_skyblue);
    color: white;
    text-align: center;
}

/*
rank レイアウト
=======================================================
rank 全体の設定
-------------------------------------------------------
*/
.rank_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap_pc);
}

@media screen and (max-width: 480px) {
    .rank .rank_wrap {
        gap: var(--gap_sp);
    }
}

/*
rank 各商品全部のwrap
-------------------------------------------------------
*/
.rank .item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    background: var(--pale_yellow);
    border-radius: 1rem;
}

.rank .item:last-of-type {
    margin-bottom: 0;
}

/* 
rank 商品名見出し
-------------------------------------------------------
*/
.rank .item .headline {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    border-top-right-radius: 1rem;
    border-top-left-radius: 1rem;
}

.rank .item .headline.no1 {
    background:
        /* 1枚目の背景画像のパス */
        url(../img/ranking/left_no1.webp),
        /* 2枚目の背景画像のパス */
        url(../img/ranking/right_no1.webp),
        /* 背景のゴールド */
        linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);

    background-position:
        /* 1枚目の背景画像の表示位置 */
        left 35% center,
        /* 2枚目の背景画像の表示位置 */
        right 35% center,
        100%;

    background-repeat:
        /* 1枚目の背景画像の設定 */
        no-repeat,
        /* 2枚目の背景画像の設定 */
        no-repeat;
    background-size: 50px, 50px, 100%;
    padding-top: 1rem;
}

.rank .item .headline.no2 {
    background-image:
        /* 1枚目の背景画像のパス */
        url(../img/ranking/left_no2.webp),
        /* 2枚目の背景画像のパス */
        url(../img/ranking/right_no2.webp),
        linear-gradient(45deg, #757575 0%, #9E9E9E 45%, #E8E8E8 70%, #9E9E9E 85%, #757575 90% 100%);

    background-position:
        /* 1枚目の背景画像の表示位置 */
        left 35% center,
        /* 2枚目の背景画像の表示位置 */
        right 35% center,
        100%;

    background-repeat:
        /* 1枚目の背景画像の設定 */
        no-repeat,
        /* 2枚目の背景画像の設定 */
        no-repeat;
    background-size: 50px, 50px, 100%;
    padding-top: 1rem;
}

.rank .item .headline.no3 {
    background-image:
        /* 1枚目の背景画像のパス */
        url(../img/ranking/left_no3.webp),
        /* 2枚目の背景画像のパス */
        url(../img/ranking/right_no3.webp),
        linear-gradient(45deg, #a57e65 0%, #a57e65 45%, #f3cfb8 70%, #a57e65 85%, #a57e65 90% 100%);

    background-position:
        /* 1枚目の背景画像の表示位置 */
        left 35% center,
        /* 2枚目の背景画像の表示位置 */
        right 35% center,
        100%;

    background-repeat:
        /* 1枚目の背景画像の設定 */
        no-repeat,
        /* 2枚目の背景画像の設定 */
        no-repeat;
    background-size: 50px, 50px, 100%;
    padding-top: 1rem;
}

.spBr {
    display: none;
}

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

    .rank .item .headline.no1,
    .rank .item .headline.no2,
    .rank .item .headline.no3 {
        background-position:
            /* 1枚目の背景画像の表示位置 */
            left 20% center,
            /* 2枚目の背景画像の表示位置 */
            right 20% center;
        background-size: 30px, 30px, 100%;
        padding-top: 0.5rem;
    }

    .spBr {
        display: block;
    }
}



/* 
rank 王冠
-------------------------------------------------------
*/
.rank .item .headline img {
    width: 60px;
    margin-bottom: 0.5rem;
}

@media screen and (max-width: 480px) {
    .rank .item .headline img {
        width: 50px;
        margin-bottom: 0.25rem;
    }
}

/* 
rank 見出し文字部分
-------------------------------------------------------
*/
.rank .item .headline h3 {
    width: 100%;
    padding-bottom: var(--padding_pc);
}

@media screen and (max-width: 480px) {
    .rank .item .headline h3 {
        padding-bottom: var(--padding_sp);
    }
}

.rank .item .headline h3 img {
    margin: 0 auto;
    height: 2rem;
    width: 100%;
    object-fit: contain;
}

@media screen and (max-width: 480px) {
    .rank .item .headline h3 img {
        height: 1.5rem;
    }
}

/* 
Rank Header
=======================================================
見出し下全体の設定
*/
.rank .item .header {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    padding: var(--padding_pc);
    gap: var(--padding_sp);
}

@media screen and (max-width: 480px) {
    .rank .item .header {
        padding: var(--padding_sp);
        align-items: center;
    }
}

.rank .item .header .top {
    display: flex;
    flex-direction: row;
    width: 100%;
    gap: var(--gap_pc);
}

@media screen and (max-width: 480px) {
    .rank .item .header .top {
        flex-direction: column;
        align-items: center;
        gap: var(--gap_sp);
    }
}


/* 
rank 商品画像（左）
-------------------------------------------------------
*/
.rank .item .header .product_img {
    display: flex;
    width: 40%;
    margin: 0 auto;
}

@media screen and (max-width: 480px) {
    .rank .item .header .product_img {
        width: 100%;
        justify-content: center;
    }
}

.rank .item .header .product_img:hover {
    filter: opacity(70%);
}

.rank .item .header .product_img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding-left: 1rem;
}

@media screen and (max-width: 480px) {
    .rank .item .header .product_img img {
        padding-left: 0;
    }
}

/* 
rank 商品詳細（右）
-------------------------------------------------------
*/
.rank .item .header .product_detail {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--gap_pc);
    width: 70%;
    margin: 0 auto;
    padding: 1.5rem 2rem;
    padding-right: 1.5rem;
    background-color: white;
}

@media screen and (max-width: 480px) {
    .rank .item .header .product_detail {
        width: 100%;
        padding: var(--padding_sp);
        padding-left: 1.5rem;
    }
}

/* 
rank 商品詳細（右）見出し
-------------------------------------------------------
*/
.rank .item .header .product_detail h4 {
    position: relative;
    display: inline-block;
    width: 80%;
    margin: 0 auto;
    text-align: center;
    font-size: 1.8rem;
}

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

    .rank .item .header .product_detail h4 {
        width: 100%;
        font-size: 1.3rem;
    }
}

/* .rank .item .header .product_detail h4::before,
.rank .item .header .product_detail h4::after {
    position: absolute;
    top: calc(50% - 3px);
    width: 50px;
    height: 6px;
    content: '';
}

.rank .item .header .product_detail h4::before,
.rank .item .header .product_detail h4::after {
    border-top: solid 2px var(--orange);
    border-bottom: solid 2px var(--orange);
}

.rank .item .header .product_detail h4::before {
    left: 0;
}

.rank .item .header .product_detail h4::after {
    right: 0;
} */

/* 
rank 商品詳細（右）リスト
-------------------------------------------------------
*/

.product_detail ol {
    counter-reset: li;
    position: relative;
    list-style: none;
    font-weight: bold;
    width: 100%;
}

.product_detail ol li {
    position: relative;
    margin: 1rem 0 0 2rem;
    padding: 0;
    line-height: 1.5;
    font-size: 1.2rem;
}

.product_detail--recommend ol li {
    margin: 0;
}

@media screen and (max-width:480px) {
    .product_detail ol li {
        font-size: 1rem;
    }
}

.product_detail ol li:first-child {
    margin-top: 0;
}


.product_detail ol>li:before {
    position: absolute;
    font-weight: bold;
    counter-increment: li;
    content: counter(li) "";
    left: -45px;
    top: 0;
    color: white;
    width: 35px;
    height: 35px;
    font-size: 1.4rem;
    text-align: center;
    border-radius: 100%;
    box-sizing: border-box;
    font-weight: bold;
    line-height: 1;
    background: var(--deep_yellow);
    padding: 6px 0;
}

.product_detail--recommend ol>li:before {
    display: none;
}

/* 
rank 商品詳細（右）公式サイトボタン
-------------------------------------------------------
*/
.cta_area {
    display: flex;
    gap: var(--gap_pc);
    width: 100%;
}

@media screen and (max-width:480px) {
    .cta_area {
        gap: var(--gap_sp);
    }
}

.cta_area a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: larger;
    font-weight: bold;
    width: 100%;
    padding: var(--padding_pc);
    background: var(--cta);
    color: white;
    border-radius: 10px;
    animation: heartbeat 2s linear infinite;
}

@media screen and (max-width:480px) {
    .cta_area a {
        font-size: medium;
        padding: var(--padding_sp);
    }
}

/* 
Rank table
=======================================================
*/
.rank_table {
    width: 100%;
}

.rank_table ul {
    display: flex;
    width: 100%;
    height: 100%;
    border-collapse: collapse;
    gap: 0;
    padding: var(--padding_pc);
}

@media screen and (max-width:480px) {
    .rank_table ul {
        flex-wrap: wrap;
        padding: var(--padding_sp);
    }
}

.rank_table ul li.card {
    display: flex;
    flex-direction: column;
    width: 100%;
    border: 1px solid var(--deep_green);
}

@media screen and (max-width:480px) {
    .rank_table ul li.card {
        width: 50%;
    }
}

.rank_table ul li .title {
    text-align: center;
    padding: var(--padding_pc);
    background-color: var(--green);
    color: white;
}

.rank_table ul li .detail {
    display: flex;
    flex-direction: column;
    background-color: white;
    height: 100%;
    justify-content: center;
    text-align: start;
    /* gap: var(--gap_sp); */
    padding: var(--padding_pc);
}

@media screen and (max-width:480px) {
    .rank_table ul li .detail {
        padding: var(--padding_sp);
        font-size: small;
    }
}

.rank_table ul li .detail img {
    height: 2rem;
    object-fit: contain;
}

/* 
Rank Comment
=======================================================
*/
.rank .item .comment {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-end;
    width: 100%;
    margin-top: 1rem;
}

@media screen and (max-width:480px) {
    .rank .item .comment {
        margin-top: 0;
        flex-direction: column;
    }
}

/* 
rank comment 編集者画像
-------------------------------------------------------
*/
.rank .item .comment .editor {
    display: flex;
    margin-right: 1rem;
    object-fit: contain;
    width: 20%;
    height: 200px;
    margin-left: 1rem;
}

@media screen and (max-width:480px) {
    .rank .item .comment .editor {
        display: none;
    }
}

/* 
rank comment 編集者テキスト
-------------------------------------------------------
*/
.comment .text {
    position: relative;
    background: white;
    padding: var(--padding_pc);
    padding-top: 2rem;
    margin-top: 1.5rem;
    border: 0.25rem solid var(--yellow);
    border-radius: 1rem;
    -webkit-border-radius: 1rem;
    -moz-border-radius: 1rem;
    margin-bottom: 1rem;
    margin-right: 1rem;
}

@media screen and (max-width:480px) {
    /* .comment .text {
        margin: 1rem;
    } */
}

.comment .text::after,
.comment .text::before {
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    pointer-events: none;
    position: absolute;
    right: 100%;
    top: 50%;
}

.comment .text::after {
    border-color: rgba(247, 221, 51, 0);
    border-top-width: 9px;
    border-bottom-width: 9px;
    border-left-width: 11px;
    border-right-width: 11px;
    margin-top: -9px;
    border-right-color: white;
}

.comment .text::before {
    border-color: rgba(30, 144, 255, 0);
    border-top-width: 13px;
    border-bottom-width: 13px;
    border-left-width: 16px;
    border-right-width: 16px;
    margin-top: -13px;
    margin-right: 0.25rem;
    border-right-color: var(--yellow);
}

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

    .comment .text::after,
    .comment .text::before {
        display: none;
    }
}

.rank .item .comment .text h4 {
    position: absolute;
    padding: 0.25rem 3rem;
    background: var(--yellow);
    color: white;
    font-size: 1.5rem;
    top: -1.75rem;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 128rem;
}

@media screen and (max-width:480px) {
    .rank .item .comment .text h4 {
        font-size: 1.25rem;
        width: max-content;
        top: -1.25rem;
    }
}

/* 
=======================================================
Highly recommend
=======================================================
*/
/* Wrapping all of ranking components */
.highly_recommend {
    margin: 1rem auto;
}

.highly_recommend .wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    background-color: #fff;
    border-radius: 10px;
    padding: 1rem;
}

.highly_recommend .wrap .text {
    background-color: #f9f3e7;
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 1.5rem;
    background-image:
        linear-gradient(to right, #8C602A 2px, transparent 2px),
        linear-gradient(to bottom, #8C602A 2px, transparent 2px),
        linear-gradient(to left, #8C602A 2px, transparent 2px),
        linear-gradient(to top, #8C602A 2px, transparent 2px);
    background-size: 10px 2px, 2px 10px, 10px 2px, 2px 10px;
    background-repeat: repeat-x, repeat-y, repeat-x, repeat-y;
    background-position: left top, right bottom, right bottom, left top;
}

.highly_recommend .static {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    margin: 2rem auto;
    margin-bottom: 0;
}

.highly_recommend .static img {
    box-sizing: border-box;
    padding: 0 1rem;
    width: 50%;
}

.highly_recommend .wrap .all_dog {
    height: 200px;
    object-fit: contain;
}


@media screen and (max-width: 480px) {
    .highly_recommend .static {
        margin-bottom: 1rem;
    }

    .highly_recommend .wrap .all_dog {
        height: auto;
        width: 100%;
    }
}

/* 
=======================================================
SEARCH RESULT
=======================================================
*/
.result {
    padding: var(--section_updown_pc);
    background-color: var(--yellow);
}

@media screen and (max-width: 480px) {
    .result {
        padding: var(--section_updown_sp);
    }
}

.result_wrap {
    display: flex;
    flex-direction: column;
    gap: var(--gap_pc);
    justify-content: center;
    align-items: center;
}

.result h1 {
    color: var(--benesse);
    text-align: center;
    width: 100%;
}

.result .content {
    display: flex;
    width: 100%;
    background-color: white;
}

@media screen and (max-width: 480px) {
    .result .content {
        flex-direction: column;
        align-items: center;
        padding: var(--padding_sp);
    }
}

.result .content .text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0 auto;
}

.result .content img {
    display: flex;
    width: 30%;
    padding: 1rem;
    padding-bottom: 0;
    object-fit: contain;
}

@media screen and (max-width: 480px) {
    .result .content img {
        height: 100%;
        padding: 0;
    }
}

.result .cta {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: white;
    font-size: xx-large;
    padding: 0.5rem 1rem;
    border-radius: 0.25rem;
}

@media screen and (max-width: 480px) {
    .result .cta {
        font-size: large;
    }
}

/*比較表
-------------------------------------------------*/

.no1,
.no2,
.no3 {
    width: 100%;
}

.no4,
.no5,
.no6,
.no7,
.no8 {
    display: none;
}

.button_top {
    font-size: 18px;
    color: #2C786F;
    margin: auto;
    margin-bottom: -10px;
}

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

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

.text {
    width: 100%;
    margin: 0 auto;
    padding: 0 5px 0 5px;
}

.text_amazon {
    font-size: 13px;
}

.frame_text {
    font-size: 12px;
    text-decoration: underline;
    margin: 10px auto 0;
    font-weight: bolder;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width: 480px) {
    .frame_text {
        font-size: 10px;
        text-decoration: underline;
        margin: 10px auto 0;
        font-weight: bolder;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

.frame_text4 {
    font-size: 12px;
}

.frame_text_reg {
    font-size: 13px;
    text-decoration: underline;
    margin: 10px auto 0;
}

/*========= 比較表のタブ ===============*/

.tab-wrap {
    display: flex;
    flex-wrap: wrap;
    margin: 20px 0 0;
}

.tab-wrap:after {
    content: '';
    width: 100%;
    height: 10px;
    background: #2C786F;
    display: block;
    order: -1;
}

.tab-label {
    color: white;
    background: gray;
    font-weight: bold;
    white-space: nowrap;
    text-align: center;
    padding: 10px .5em;
    order: -1;
    position: relative;
    z-index: 1;
    cursor: pointer;
    border-radius: 5px 5px 0 0;
    flex: 1;
    margin: 0px;
}

.tab-label:not(:last-of-type) {
    margin-right: 5px;
}

.tab-content {
    width: 100%;
    height: 0;
    overflow: hidden;
    opacity: 0;
    background-color: white;
}

.tab-switch:checked+.tab-label {
    background: #2C786F;
    color: #FAE6B4;
}

.tab-switch:checked+.tab-label+.tab-content {
    height: auto;
    padding: 5px;
    opacity: 1;
    transition: .5s opacity;
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
}

.tab-switch {
    display: none;
}

/*----テーブル----*/

table {
    text-align: center;
    clear: both;
    width: 100%;
    margin: 13px auto;
    /*10px auto 15px*/
    border-collapse: collapse;
}

th.table_button {
    background-color: white;
    border: 1px solid #cccccc;
}

@media screen and (max-width: 767px) {
    th.table_button {
        background-color: white;
        border: 1px solid #cccccc;
    }
}

@media screen and (max-width: 479px) {
    th.table_button {
        background-color: white;
        border: 1px solid #cccccc;
        padding: 5px;
    }
}

.table_hikaku table {
    display: block;
    width: 100%;
    overflow-x: scroll;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
}


.ranking_content_02 table {
    margin: 0;
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #808080;
}

.btn {
    border: 1px solid #000;
}

thead {
    position: sticky;
    z-index: 10;
    top: 0;
}

th {
    background-color: #eef2f1;
    border: 1px solid #e4dfdf;
    text-align: center;
    font-size: 14px;
    padding: 2px 2px 2px 2px;
    color: #094234;
    vertical-align: middle;
}

.basic_info th {
    font-size: 12px;
}

@media screen and (max-width: 767px) {
    th {
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 14px;
        padding: 2px 2px 2px 2px;
    }

    .thtd_sp_hidden {
        display: none;
    }
}

@media screen and (max-width: 479px) {
    th {
        background-color: #eef2f1;
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 14px;
        padding: 2px 2px 2px 2px;
        vertical-align: middle;
    }
}

.th_hikaku {
    background-color: #eef2f1;
    border: 1px solid #cccccc;
    text-align: center;
    font-size: 14px;
    padding: 2px 2px 2px 2px;
}

@media screen and (max-width: 767px) {
    .th_hikaku {
        background-color: #eef2f1;
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 14px;
        padding: 2px 2px 2px 2px;
    }
}

@media screen and (max-width: 479px) {
    .th_hikaku {
        background-color: #eef2f1;
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 14px;
        padding: 2px 2px 2px 2px;
        vertical-align: middle;
    }
}

.th_hikaku2 {
    box-sizing: content-box;
    background-color: white;
    align-items: center;
    display: flex;
    justify-content: center;
    font-size: 14px;
    width: 100%;
    height: 130px;
}

.th_hikaku3 {
    background-color: white;
    color: black;
    font-size: 10px;
    text-decoration: underline red;
}

@media screen and (max-width: 767px) {
    .th_hikaku2 {
        background-color: white;
        text-align: center;
        font-size: 14px;
        padding: 2px 2px 2px 2px;
        width: auto;
    }

    .th_hikaku3 {
        background-color: white;
        color: black;
        font-size: 8px;
        font-weight: 100;
        text-decoration: underline red;
    }

}




.right_table th {
    background-color: #dcdcdc;
    border: 1px solid #cccccc;
    text-align: center;
    font-size: 12px;
    padding: 0;
}

@media screen and (max-width: 767px) {
    .right_table th {
        background-color: #dcdcdc;
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 12px;
        padding: 0;
    }

    .thtd_sp_hidden {
        display: none;
    }
}

@media screen and (max-width: 479px) {
    .right_table th {
        background-color: #dcdcdc;
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 12px;
        padding: 0;
    }
}

.img_waku {
    width: 95%;
    max-width: 200px;
    max-height: 80px;
    object-fit: contain;
}

.button_text2 {
    margin-bottom: 0;
}

.button_effect {
    background: var(--cta);
    color: white;
    border-radius: 0.25rem;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.5rem;
    margin: 0 auto;
    position: relative;
    width: 90%;
}

.button_effect::after {
    position: absolute;
    content: '';
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .4) 100%);
    height: 100%;
    left: -100%;
    top: 0;
    transform: skewX(-25deg);
    width: 50%;
    animation: 2s 0s shine linear infinite;
}

@media screen and (max-width: 479px) {
    .img_waku {
        width: 95%;
    }
}

td {
    background-color: white;
    border: 1px solid #cccccc;
    text-align: center;
    font-size: 14px;
    padding: 1px 1px 2px;
}

.td_main {
    border: 1px solid #cccccc;
    vertical-align: middle;
}

.td_sub {
    background-color: white;
    border: 1px solid #cccccc;
    text-align: center;
    font-size: 14px;
    padding: 1px 1px 2px;
    vertical-align: middle;
}

.td_sub2 {
    background-color: white;
    border: 1px solid #cccccc;
    text-align: center;
    font-size: 14px;
    padding: 5px;
    text-align: left;
    font-weight: bolder;
}

.td_sub3 {

    background-color: white;
    border: 1px solid #cccccc;
    text-align: center;
    font-size: 14px;
    padding: 5px;
    font-weight: bolder;
}

.sub3_tag {
    box-sizing: border-box;
    width: auto;
    height: 20px;
    padding: 0 10px;
    margin: 0 5px 5px 0;
    border-radius: 20px;
    background-color: #997D11;
    font-size: 0.9em;
    font-weight: bolder;
    line-height: 20px;
    letter-spacing: normal;
    text-align: center;
    color: #fff;
}

.td_sub4 {

    background-color: white;
    border: 1px solid #cccccc;
    text-align: left;
    font-size: 14px;
    padding: 5px;
    font-weight: bolder;
}


.sub_in {
    display: inline-block;
    text-align: left;
    width: auto;
    vertical-align: middle;
}

/* .sub_img {
    width: 60%;
    max-width: 100px;
} */



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

    .td_sub {
        background-color: white;
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 10px;
        padding: 1px 1px 2px;
        vertical-align: middle;
    }

    .td_sub2 {
        background-color: white;
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 10px;
        padding: 5px;
        text-align: left;
        font-weight: bolder;
    }

    .td_sub3 {

        background-color: white;
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 12px;
        padding: 5px;
        font-weight: bolder;
    }

    .td_sub4 {

        background-color: white;
        border: 1px solid #cccccc;
        text-align: left;
        font-size: 12px;
        padding: 5px;
        font-weight: bolder;
    }

    .sub_in {

        display: inline-block;
        text-align: left;
        width: auto;
        vertical-align: middle;

    }

    .sub_img {
        width: 100%;
    }

}

.right_table td {
    border: 1px solid #cccccc;
    text-align: center;
    font-size: 12px;
    padding: 0 0 1px;
}

@media screen and (max-width: 767px) {
    .right_table td {
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 12px;
        padding: 0 0 1px;
    }

    .thtd_sp_hidden {
        display: none;
    }
}

@media screen and (max-width: 479px) {
    .right_table td {
        border: 1px solid #cccccc;
        text-align: center;
        font-size: 12px;
        padding: 0 0 1px;
    }
}

.contents {
    background-color: #ebebeb;

}

.content {
    background-color: #ffffff;
    margin: 0 12px 20px;
    padding: 17.5px 15px 16px;
    border: solid 1px #000000;
    /*線*/
    border-radius: 10px;
    /*角の丸み*/

}

.box {
    padding: 0.5em 1em;
    margin: 16px 0;
    border: double 5px #cccccc;
}

.box p {
    margin: 0;
    padding: 0;
}

.box02 {
    padding: 0.5em 1em;
    margin: 8px 0;
    font-weight: bold;
    border: solid 3px #b8ff4d;
}

.box02 p {
    margin: 0;
    padding: 0;
}

.combination {
    margin: 5px 0;
    align: center;
    width: 33%;
    float: left;

}

.combination p {
    text-align: center;
}

.combination img {
    align: center;
}

.campaign {
    position: relative;
    margin: 10px 0;
    padding: 0 5px 5px 5px;
    border: solid 3px #1aff1a;

}

.campaign .box-title {
    position: absolute;
    display: inline-block;
    top: -27px;
    left: -3px;
    padding: 0 9px;
    height: 25px;
    line-height: 25px;
    font-size: 17px;
    background: #ffaf1a;
    color: #ffffff;
    font-weight: bold;
    border-radius: 5px 5px 0 0;


    /* font-size: 1.2em;
    background: #ffaf1a;
    padding: 2px;
    color: #FFF;
    font-weight: bold;
    letter-spacing: 0.05em;*/
}

.campaign p {
    padding: 10px 20px;
    margin: 0;

}

.points {
    padding: 0.5em 1em;
    margin: 2em 0;
    border: solid 1px #000000;
}

.points li {
    margin: 0;
    padding: 0;
}

.flex-box {
    display: flex;
    flex-wrap: wrap;
}

.flex-box img {
    vertical-align: top;
    horizontal-align: left;
}

.flex-box02 {
    display: flex;
    flex-wrap: wrap;
}

.thumnail-box {
    margin: 0;
    padding: 0;
    list-style: none;
}

.thumnail-box li {
    width: 33%;
    margin: 0 0 0 auto;
}

.thumnail-box li img {
    width: 100%;
    margin: 0 0 auto;
    padding: 20px 20px;
    border: 1px solid #ccc;
}

.thumnail-box li p {
    text-align: center;
    width: 100%;
    margin: 0 0 2px auto;
    background-color: #faebd7;
    border: 1px solid #ccc;
}

/*注釈*/
.annotation_gray {
    /*背景色（灰色）*/
    padding: 10px;
    font-size: 14px !important;
    background: #f1f1f1;
    border: 1px solid #e1e1e1;
    border-radius: 4px;
}

.best_01 {
    position: relative;
    border-color: #2c786f;
    border-style: solid;
    border-width: 8px;
    margin: 15px 0;
    padding: 0 10px 10px 10px;
    width: auto
}

.best_01:not(.agent_detail) .link {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 90%;
}

.best_02 {
    position: relative;
    border-color: #2c786f;
    border-style: solid;
    border-width: 8px;
    margin: 15px 0;
    padding: 0 10px 10px 10px;
}

.best_02 .link {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 90%;
}

.best_03 {
    position: relative;
    border-color: #2c786f;
    border-style: solid;
    border-width: 8px;
    margin: 15px 0;
    padding: 0 10px 10px 10px;
}

.best_03 .link {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 90%;
}

.best_04,
.best_05,
.best_06,
.best_07,
.best_08,
.best_09 {
    position: relative;
    border-color: #2c786f;
    border-style: solid;
    border-width: 8px;
    margin: 15px 0;
    padding: 0 10px 10px 10px;
}

.best_10,
.best_11,
.best_99 {
    position: relative;
    border-color: #90EE90;
    border-style: solid;
    border-width: 8px;
    margin: 15px 0;
    padding: 0 10px 10px 10px;
}

.best_04 .link {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 90%;
}

.best_05 .link {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 90%;
}

.open {
    display: none;
}

.ranking_top {
    width: 100%;
    display: flex;
    margin: 5px 0 13px;
    text-align: center;
}

.ranking_content_01 {
    width: 60%;
    text-align: center;
    margin: 0 8px;
    padding: 1px 0 0 0;
}

.ranking_content_02 {
    text-align: center;
    width: 40%;
    margin: 0 8px;
}

.ranking_content_03 {
    width: 33%;
    text-align: center;
}

.container {
    max-width: var(--width_pc);
    margin: 2rem auto;
    padding: 0 1rem;
}

/* カードスタイル */
.card {
    background: white;
    overflow: hidden;
}

.card-title {
    padding: var(--padding_pc);
    background: var(--green);
    color: white;
    text-align: center;
    width: fit-content;
    margin: 0 auto;
}

/* HTML: <div class="triangle"></div> */
.rank_triangle {
    max-height: 128px;
    aspect-ratio: 4;
    clip-path: polygon(50% 100%, 100% 0, 0 0);
    background-color: #3FBDF3;
    text-align: center;
    max-width: 450px;
    margin: 0 auto;
    border-radius: 5px;
}

.font_white {
    color: #fff;
    font-weight: bold;
    font-size: 1.3rem;
}

/* テーブルスタイル */
.table-container {
    overflow-x: auto;
    margin-bottom: 0rem;
}

.card_table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #e2e8f0;
}

.card-subtitle {
    text-align: center;
}

.card-subtitle p {
    font-size: 1.1rem;
}

.card_th,
.card_td {
    padding: 1rem;
    border: 1px solid #e2e8f0;
    text-align: center;
    width: 50%;
}

.card_th {
    background-color: #f7fafc;
    font-weight: 600;
    color: #4a5568;
    font-size: 1.2rem;
}

.card_td:nth-child(1) {
    background-color: #fffef8;
}

.card_img img {
    width: 75px;
}

.caution p {
    font-size: 0.8rem;
}

.bg-alt {
    background-color: #f7fafc;
}

.text-center {
    text-align: center;
}

.reccomend {
    background-color: #3FBDF3;
}

/* アイコンスタイル */
.icon_check {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    margin-right: 0.75rem;
}

.icon-x {
    color: #f56565;
}

/* 特徴セクション */
.features {
    margin-top: 2rem;
}

.features h2 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    color: #2d3748;
}

.features-container {
    background-color: #ebf8ff;
    padding: 1.5rem;
    border-radius: 8px;
}

.feature-list {
    list-style: none;
}

.feature-list li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.icon-feature {
    color: #4299e1;
    margin-right: 0.75rem;
    flex-shrink: 0;
}

/* 結論セクション */
.conclusion {
    margin-top: 1rem;
}

.conclusion h2 {
    font-size: 1.25rem;
    color: #2d3748;
}

.conclusion-list {
    list-style: none;
    background-color: #f0fff4;
    padding: 1.5rem;
    border-radius: 8px;
}

.conclusion-list li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.icon-conclusion {
    margin-right: 0.75rem;
    flex-shrink: 0;
}

.rank--reccomend {
    padding-top: 1rem;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .container {
        margin: 1rem auto;
    }

    .card_td,
    .card_th {
        padding: 0.5rem;
    }

    .features-container,
    .conclusion-list {
        padding: 1rem;
    }

    .card_img img {
        width: 50px;
    }

    .rank_triangle {
        max-height: 128px;
        aspect-ratio: 4;
        clip-path: polygon(50% 100%, 100% 0, 0 0);
        background-color: #3FBDF3;
        text-align: center;
        max-width: 360px;
        margin: 0 auto;
    }

    .font_white {
        color: #fff;
        font-weight: bold;
        font-size: 1rem;
    }

    .rank--reccomend {
        padding-top: 0.5rem;
    }
}

/* ポップアップの初期状態は非表示 */
#popup {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 400px;
    background-color: white;
    padding: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    z-index: 1000;
}

#overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 999;
}

.popup_img img {
    width: 100%;
}

@media screen and (max-width:480px) {
    #popup {
        max-width: 300px;
        padding: 10px;
    }
}

.choose_list {
    counter-reset: details;
}

.choose_list details {
    position: relative;
    border: solid 0.25rem var(--skyblue);
    border-radius: 0.5rem;
}

.choose_list details::before {
    position: absolute;
    counter-increment: details;
    content: counter(details) "";
    display: flex;
    align-items: center;
    justify-content: center;
    left: -1rem;
    top: -1.25rem;
    color: white;
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.5rem;
    border-radius: 100%;
    box-sizing: border-box;
    font-weight: bold;
    line-height: 0.9;
    background: var(--yellow);
    z-index: 2;
}

.choose_list {
    display: flex;
    width: 100%;
    justify-content: center;
    gap: 2%;
}

.choose_list details {
    width: 30%;
    justify-content: space-between;
}

.choose summary {
    display: flex;
    justify-content: center;
    background-color: var(--deep_skyblue);
    padding: var(--padding_pc);
    color: white;
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
    font-size: large;
    font-weight: bold;
}

.choose_list .icon {
    padding: var(--padding_pc);
    display: flex;
    flex-direction: column;
    width: 100%;
    background: white;
    border-top: none;
    border-radius: 0.5rem;
}

/* リセット用のスタイル */
.choose summary {
    display: flex;
    /* list-itemではなくflexを使用 */
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 15px;
    cursor: pointer;
    font-weight: bold;
    list-style: none;
    position: relative;
    /* 位置関連の制御のため追加 */
}

/* ブラウザデフォルトのマーカーを完全に無効化 */
.choose summary::-webkit-details-marker,
.choose summary::marker {
    display: none;
    content: "";
}

.choose details[open] .choose summary::after {
    content: '-';
}

@media screen and (max-width: 480px) {
    .choose_list {
        flex-direction: column;
    }

    .choose_list details {
        width: 100%;
        justify-content: space-between;
    }

    .choose_list {
        display: flex;
        width: 100%;
        justify-content: center;
        gap: 20px;
    }
}

.intro-text {
    margin-top: 1rem;
    text-align: center;
}

.preschool-guide {
    padding: var(--section_updown_pc);
}

.guide-header p {
    text-align: center;
}

.guide-header h2 {
    background-color: #1E5BAC;
    width: fit-content;
    margin: 0 auto;
}

.preschool-guide {
    max-width: var(--width_pc);
    margin: 0 auto;
}

.ranking-box {
    background: #ffffff;
    border-radius: 8px;
    margin-top: 1rem;
}

.ranking-title {
    font-size: 1.2rem;
    font-weight: bold;
    padding: 10px;
    background: #2E7D32;
    color: white;
    text-align: center;
}

.ranking-item {
    display: flex;
    align-items: center;
    padding: 10px 15px;
    border-bottom: 1px solid #e0e0e0;
    background: #f9f9f9;
}

.rank-crown {
    width: 40px;
    height: 40px;
    background: #2E7D32;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    margin-right: 15px;
}

.rank1 .rank-crown {
    background: #4CAF50;
}

.rank2 .rank-crown {
    background: #388E3C;
}

.rank3 .rank-crown,
.rank3-tie .rank-crown {
    background: #2E7D32;
}

.rank-info {
    flex: 1;
    display: flex;
    align-items: center;
}

.rank-change {
    width: 60px;
    font-size: 0.9rem;
    color: #666;
}

.rank-change.up {
    color: #F44336;
}

.rank-change.down {
    color: #2196F3;
}

.rank-name {
    flex: 1;
    font-weight: bold;
}

.rank-percentage {
    font-weight: bold;
    font-size: 1.1rem;
    color: #2E7D32;
    margin-left: 15px;
}

.footer-message {
    text-align: center;
    margin-top: 1rem;
}

@media (max-width: 768px) {
    .ranking-item {
        padding: 10px 5px;
    }

    .rank-crown {
        width: 30px;
        height: 30px;
        font-size: 0.9rem;
    }

    .rank-change {
        width: 50px;
        font-size: 0.8rem;
    }

    .rank-name {
        font-size: 0.9rem;
    }

    .rank-percentage {
        font-size: 1rem;
    }

    .preschool-guide {
        padding: 1rem;
    }

    .intro-text {
        margin-top: 1rem;
        text-align: left;
    }
}

.study-point {
    margin-top: 1rem;
}

.features-box {
    border-radius: 8px;
    margin: 30px 0;
}

.features-list {
    background: var(--pale_yellow);
    padding: var(--padding_pc);
}

.features-list li {
    position: relative;
    padding-left: 25px;
    margin: 15px 0;
}

.features-title {
    padding: var(--padding_pc);
    background: var(--orange);
    color: white;
    text-align: center;
}

.features-list li::before {
    content: "";
    background-image: url(../img/ranking/check.png);
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    top: 2px;
    left: 0;
}

.campaign-box {
    border: 2px solid #ff6b00;
    padding: 20px;
    border-radius: 8px;
    margin: 30px 0;
}

.benefit-list {
    display: flex;
    gap: 5%;
}

.cta-button {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: larger;
    font-weight: bold;
    width: 100%;
    padding: var(--padding_pc);
    background: var(--cta);
    color: white;
    border-radius: 10px;
    animation: heartbeat 2s linear infinite;
}

@media (max-width: 768px) {

    .ranking-box,
    .features-box,
    .campaign-box {
        margin: 15px 0;
    }

    .footer-message {
        text-align: left;
    }
}