*{
    margin: 0; padding: 0; box-sizing: border-box;
}
body{
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #f9f9f9;
    -webkit-text-size-adjust: 100%;
}
a{
    color: #0066cc; text-decoration: none;
}
a:hover{
    text-decoration: underline;
}
ul, ol{
    list-style: none;
}
img{
    max-width: 100%; height: auto; vertical-align: middle; border: 0;
}

#wrapper{
    max-width: 1000px; margin: 0 auto; background: #fff; box-shadow: 0 0 10px rgba(0,0,0,0.1);
}

.header{
    padding: 20px; border-bottom: 2px solid #eee;
}
.g_navi_top{
    display: flex; flex-wrap: wrap; justify-content: flex-end; font-size: 12px; margin-bottom: 10px; list-style: none;
}
.g_navi_top li{
    border-left: 1px solid #ccc; padding: 0 10px; line-height: 1;
}
.g_navi_top li:first-child{
    border-left: none;
}

.header_main {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 15px;
}
.logo{
    flex: 1; min-width: 300px;
}
.header_info{
    text-align: right;
}
.tel{
    font-size: 32px; color: #ff0000; font-weight: bold; font-family: "HG丸ｺﾞｼｯｸM-PRO", sans-serif;
}
.tel a{
    color: #ff0000; text-decoration: none;
}
.mail_info{
    font-weight: bold; margin-top: 5px;
}
.top_banner{
    margin-top: 15px; text-align: center;
}

#cont{
    display: flex; padding: 20px; gap: 20px;
}

.main_cont{
    flex: 1; order: 2; min-width: 0;
}
.main_title{
    font-size: 16px; background: #079b08; color: #fff; padding: 8px 12px; margin-bottom: 15px; line-height: 1.4; font-weight: bold;
}
.main_txt{
    font-size: 14px; margin-bottom: 25px; line-height: 1.6;
}

.section_block{
    border-top: 1px solid #9A9A9A; padding: 25px 0; overflow: hidden;
}
.cont_title{
    font-size: 15px; font-weight: bold; margin-bottom: 15px; color: #079b08; border-bottom: 1px solid #079b08; padding-bottom: 5px;
}
.cont_inner{
    padding: 0 5px;
}

.recommend_list{
    display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 15px;
}
.recommend_list li{
    text-align: center;
}

.flex_row {
    display: flex; gap: 20px; flex-wrap: wrap;
}
.flex_left{
    flex: 1; min-width: 280px;
}
.flex_right{
    width: 160px; display: flex; flex-direction: column; gap: 10px;
}

.cont_list li{
    margin-bottom: 12px;
}
.cont_list_title{
    font-weight: bold; display: block; margin-bottom: 8px;
}
.bold{
    font-weight: bold;
}
.red{
    color: #ff0000;
}
.medium{
    font-size: 1.1em;
}

.ai_highlight_box{
    background: #f0f7f0; border: 1px solid #079b08; padding: 20px; margin-bottom: 25px; border-radius: 5px;
}
.ai_highlight_box h2{
    font-size: 16px; margin-bottom: 10px; color: #079b08;
}
.rating_box{
    background: #fffde7; border: 1px solid #fbc02d; padding: 15px; margin-bottom: 20px; display: flex; align-items: center; gap: 15px; border-radius: 5px;
}
.faq_rich{
    margin-bottom: 20px; padding: 15px; background: #fff; border: 1px solid #eee;
}
.faq_q{
    font-weight: bold; color: #079b08; border-left: 4px solid #079b08; padding-left: 10px; margin-bottom: 8px;
}
.faq_a{
    margin-bottom: 15px; padding-left: 14px; font-size: 14px;
}

.topic_inner{
    padding: 0 5px;
}
.topic_entry{
    margin-bottom: 20px;
}
.topic_entry:last-child{
    margin-bottom: 0;
}
.horizon{
    font-size: 13px; color: #666; margin-bottom: 8px; font-weight: bold;
}
.topic_dd{
    font-size: 14px; line-height: 1.7;
}
.topic_dd p{
    margin-bottom: 6px;
}
.topic_separator{
    border: none; border-top: 1px solid #ddd; margin: 15px 0;
}

.side_cont{
    width: 180px; order: 1; flex-shrink: 0;
}
.side_nav{
    font-size: 13px;
}
.side_nav > li{
    border-top: 1px solid #9A9A9A; padding: 10px 0;
}
.side_nav a{
    font-weight: bold; color: #333; display: flex; align-items: flex-start;
}
.side_nav .sub_menu{
    margin-top: 8px; padding-left: 10px;
}
.footer{
    clear: both; border-top: 1px solid #9A9A9A; padding: 30px 20px; text-align: center;
}
.footer_nav{
    margin: 15px 0; font-size: 14px; line-height: 2.2;
}
.footer2{
    background: #f0f0f0; padding: 25px; text-align: center; font-size: 13px; border-top: 1px solid #ddd;
}

@media screen and (max-width: 768px) {
    #cont { flex-direction: column; }
    .side_cont{
        order: 2; width: 100%;
    }
    .main_cont { order: 1; }
    .header_main{
        flex-direction: column; text-align: center;
    }
    .header_info{
        text-align: center;
    }
}
