@charset "utf-8";

/* --- 基本設定 --- */
* {
    box-sizing: border-box;
}

body {
    margin: 0;
    padding: 0;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    background-color: #f8faf9;
    color: #333;
    line-height: 1.6;
    /* コンテンツが短い場合にフッターをページ最下部に固定する */
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
}

.common-width {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

/* --- ヘッダー --- */
.header {
    background: #fff;
    border-bottom: 3px solid #17A868;
    flex-shrink: 0;
}

.header_bg {
    background-color: #17A868;
    color: #fff;
    padding: 2px 0;
}

.header_box1 h1 {
    margin: 0;
    font-size: 14px;
    font-weight: normal;
}

.header_box2 {
    height: 64px;
    display: flex;
    align-items: center;
}

.logo img {
    height: 40px;
    width: auto;
}

/* --- メインコンテンツ --- */
.contents {
    padding: 40px 0 80px;
    /* コンテンツが短い場合にフッターをページ最下部に固定する */
    flex: 1;
}

.inner h2 {
    text-align: center;
    font-size: 28px;
    font-weight: bold;
    color: #17A868;
    position: relative;
    padding-bottom: 15px;
    margin: 20px 0 30px;
}

.inner h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background: #ffcc00;
}

.section {
    margin-bottom: 60px;
}

.section h3 {
    font-size: 18px;
    font-weight: bold;
    color: #333;
    border-left: 5px solid #17A868;
    padding: 8px 15px;
    margin-bottom: 25px;
    background: #f0f9f5;
}

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

    .section h3 {
        padding: 5px 10px;
    }

}
/* --- カードレイアウト --- */
.card-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.card-item {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid #e0e6e3;
    transition: transform 0.2s ease;
}

.card-item a {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 24px;
    text-decoration: none;
    color: #17A868;
}

.card-item:hover {
    transform: translateY(-3px);
    border-color: #17A868;
    cursor: pointer;
}

.card-ttl {
    font-weight: bold;
    font-size: 18px;
}

.card-ttl a {
    display: block;
    color: #17A868;
    text-decoration: none;
}

.card-body {
    margin-top: 10px;
}

    .card-body p {
        font-size: 14px;
        color: #555;
    }

/* --- トピックス --- */
.topics {
    margin-bottom: 40px;
}

.topics ul {
    background: #fff;
    padding-left: 20px;
}

.topics li {
    display: flex;
    align-items: center;
    padding: 10px 0;
    font-size: 16px;
    color: #333;
}

.topics li::before {
    content: "";
    width: 6px;
    height: 6px;
    background: #17A868;
    border-radius: 50%;
    margin-right: 12px;
}

.topics li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 15px;
    background: #17A868;
    color: #fff !important;
    font-size: 14px;
    font-weight: bold;
    border-radius: 4px;
    text-decoration: none !important;
    margin-left: 20px;
    transition: 0.2s;
    white-space: nowrap;
}

.topics li a:hover {
    opacity: 0.8;
}

.topics li.closed {
    color: #999;
}

.topics li.closed::before {
    background: #ccc;
}

.topics li.closed a {
    background: #bbb;
    cursor: default;
    pointer-events: none;
}
.topics li .new-badge {
    color: #e53935;
    font-size: 12px;
    padding: 2px 5px;
    border: 1px solid #e53935;
    border-radius: 3px;
    margin-right: 8px;
    line-height: 1.2;
}

/* --- 新着情報 --- */
/*.featured-video {
    max-width: 480px;
    margin: 0 0 35px 0;
}*/

.pickup-title {
    font-size: 15px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    font-weight: bold;
}

.pickup-title i {
    color: #f39c12;
    margin-right: 12px;
    font-size: 20px;
    margin-top: 2px;
    flex-shrink: 0;
}

.pickup-title a {
    color: #444 !important; /* 見出しらしい濃いグレー */
    text-decoration: none;
    transition: all 0.2s ease;
}

.pickup-title a:hover {
    color: #17A868 !important;
    text-decoration-color: #17A868 !important;
}

.video-wrap {
    position: relative;
    width: 100%;
    max-width: 640px;
    aspect-ratio: 16 / 9;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.video-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.video-wrap img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.support-news ul {
    margin-top: 20px;
}

.support-news li {
    display: flex;
    align-items: flex-start;
    padding: 8px 0;
    /*font-size: 16px;*/
}

.info-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: bold;
    padding: 3px;
    min-width: 100px;
    text-align: center;
    border-radius: 2px;
    margin-right: 18px;
    flex-shrink: 0;
    line-height: 1.2;
    margin-top: 4px;
    /* デフォルト（色未定義のカテゴリ用） */
    color: #666;
    border: 1px solid #aaa;
    background: #f5f5f5;
}

.info-badge.semi-ws {
    /* 青系：知的・信頼感。google-map の緑と明確に区別 */
    color: #4a72a8;
    background: #eef3fb;
    border-color: #b0c8e8;
}

.info-badge.notice {
    /* グレー系：最も目立たせない。一般的なお知らせ */
    color: #777;
    background: #f5f5f5;
    border-color: #c8c8c8;
}

.info-badge.attention {
    /* 赤系：注意喚起しつつ柔らかく */
    color: #a05050;
    background: #fdf2f2;
    border-color: #d4a0a0;
}

.info-badge.campaign {
    /* オレンジ系：暖色で少し目立つ */
    color: #b06020;
    background: #fdf6ee;
    border-color: #e0b878;
}

.info-badge.google-map {
    /* 緑系：ナビ・安心感。semi-ws の青と明確に区別 */
    color: #3d7d5a;
    background: #eef7f1;
    border-color: #96c8ac;
}

.support-news li a {
    display: inline;
    font-size: 16px;
    font-weight: 500;
    
    text-decoration: underline !important;
    text-decoration-color: #ccc !important; /* 初期状態は薄いグレー */
    text-underline-offset: 4px;             /* 文字と線の隙間 */
    text-decoration-thickness: 1px;
    transition: all 0.2s ease;
}

.support-news li a:hover {
    color: #17A868 !important;              /* ホバーで文字が緑に */
    text-decoration-color: #17A868 !important; /* 下線も緑に */
}

/*.support-news li a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background: #17A868;
    transition: width 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}*/

.support-news li a:hover::after {
    width: 100%;
}

@media screen and (max-width: 480px) {
    .support-news li {
        flex-direction: column;
    }
    .info-badge {
        margin-bottom: 8px;
        min-width: 80px;
    }
}

/* --- 一覧を見る --- */
.support-news-more {
	width: 100%;
    text-align: left;
    margin-top: 20px;
}

.support-news-more a {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    background-color: transparent;
    color: #359179;
    line-height: 1;
    padding: 6px 25px 6px 0;
    transition: all 0.2s ease;
}

.support-news-more a::after {
    content: "";
    position: absolute;
    right: 5px;
    width: 6px;
    height: 6px;
    border-right: 2px solid #359179;
    border-bottom: 2px solid #359179;
    border-radius: 2px;
    transform: rotate(-45deg);
}

.support-news-more a:hover {
    opacity: 0.8;
    text-decoration: underline;
}

/* --- 修正依頼フォーム --- */
.plan-comparison-container {
    display: flex;
    border: 2px solid #17A868;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    margin-bottom: 30px;
}

.plan-column {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.plan-name {
    display: block;
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 5px;
    letter-spacing: 0.05em;
}

/*.plan-price {
    display: block;
    font-size: 12px;
    font-weight: normal;
}*/

.plan-column.standard {
    border-right: 2px solid #17A868;
}

.plan-header {
    padding: 15px;
    text-align: center;
    border-bottom: 1px solid #17A868;
}

.plan-column.standard .plan-header {
    background: #17A868;
    color: #fff;
}

.plan-column.light .plan-header {
    background: #d1e9db;
    color: #17A868;
}

.plan-body {
    padding: 25px 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

button {
    display: block;
    width: 100%; 
    height: 48px;
    margin-bottom: 12px;
    background: #f2f2f2;
    border: 1px solid #888;
    border-radius: 6px;
    color: #555;
    font-size: 16px;
    font-weight: bold;
    line-height: 1;
    transition: 0.2s;
    cursor: pointer;
}

.plan-body button:last-of-type {
    margin-bottom: 20px; 
}

button:hover {
    background: #e8e8e8;
    opacity: 0.9;
}

.plan-note {
    font-size: 12px;
    color: #888;
    text-align: center;
}

.button-tel {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 48px;
    background: #546e7a;
    color: #fff;
    border-radius: 6px;
    text-decoration: none;
    font-size: 15px;
    font-weight: bold;
    transition: 0.2s;
    margin-top: auto; 
}

.button-tel i {
    margin-right: 8px;
    font-size: 18px;
}

.button-tel:hover {
    background: #455a64;
    opacity: 1;
}

.basic-change .sml {
    margin-bottom: 10px;
    display: block;
}

.basic-change button {
    width: auto;
    min-width: 320px;
}

.plan-footer-links {
    display: flex;
    gap: 15px;
    margin-top: 20px;
}

.plan-lp-link {
    margin-top: 0;
}

.plan-lp-link a {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    background: #fff;
    color: #17A868;
    border: 1.5px solid #17A868;
    border-radius: 4px;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    transition: all 0.3s ease;
}

.plan-lp-link a i {
    margin-right: 8px;
    font-size: 15px;
}

.plan-lp-link a:hover {
    background: #f0f9f5;
    box-shadow: 0 2px 8px rgba(23, 168, 104, 0.15);
}

@media screen and (max-width: 480px) {
    .basic-change button {
        min-width: 100%;
    }
}
@media screen and (max-width: 768px) {
    .plan-body {
        flex: none;
    }
    .button-tel {
        margin-top: 20px; 
    }
    .plan-comparison-container {
        flex-direction: column;
    }
    
    .plan-column.standard {
        border-right: none;
        border-bottom: 2px solid #17A868;
    }
    
    button {
        height: 52px;
    }
    .plan-footer-links {
        flex-direction: column;
    }
    .plan-lp-link a {
        width: 100%;
        justify-content: center;
    }
}

/* --- フッター --- */
.pagetop {
	display: none;
	position: fixed;
	z-index: 100;
}
.pagetop a {
	background-color: #fff;
	border: 3px solid #359179;
	border-radius: 50%;
	bottom: 30px;
	height: 52px;
	transition: all .2s ease-out;
	right: 50px;
	width: 52px;
	position: fixed;
	z-index: 100;
	-webkit-tap-highlight-color:rgba(0,0,0,0);
	cursor: pointer;
}

.pagetop a::after {
	border-right: 3px solid #359179;
	border-top: 3px solid #359179;
	border-radius: 1px;
	content: "";
	display: block;
	height: 8px;
	left: 52%;
	margin: -3px 0 0 -6px;
	position: absolute;
	top: 50%;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	vertical-align: middle;
	width: 8px;
}

.footer_bg2 {
	background-color: #17A868;
}

.footer_bg2 .inner {
	height: 55px;
}

.footer_bg2 .copy {
	color: #fff;
	font-size: 12px;
	bottom: 5px;
	right: 0;
}

@media screen and (max-width: 768px) {
    .card-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .pagetop a {
        right: 20px;
        bottom: 10px;
    }

    .footer_bg2 .inner {
        height: auto;
        padding: 5px;
    }

}

@media screen and (max-width: 480px) {
    .card-list {
        grid-template-columns: 1fr;
    }

    .inner h2 {
        font-size: 22px;
    }

    .topics li a {
        margin-left: auto;
        min-width: 80px;
        padding: 5px 10px;
    }

}

/* --- よくある質問 --- */
.qa_sec {
    max-width: 800px;
    margin: 0 auto;
}

.qa_sec li {
    margin-bottom: 15px;
    background: #fff;
    border: 1px solid #e0e6e3;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.qa_sec dt {
    position: relative;
    padding: 18px 50px 18px 55px;
    font-size: 16px;
    font-weight: bold;
    color: #333;
    cursor: pointer;
    transition: background-color 0.2s ease;
    border-left: 5px solid #17A868;
}

.qa_sec dt::before {
    content: "Q";
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #17A868;
    font-size: 20px;
    font-family: "Arial Black", sans-serif;
}

.qa_sec dt::after {
    content: '\f078';
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: #ccc;
    font-size: 14px;
    transition: transform 0.3s ease;
}

.qa_sec dt.on {
    background-color: #f0f9f5;
}

.qa_sec dt.on::after {
    transform: translateY(-50%) rotate(180deg);
    color: #17A868;
}

.qa_sec dt:hover {
    background-color: #f9f9f9;
}

.qa_sec dd {
    padding: 20px 20px 25px 55px;
    border-top: 1px solid #f0f0f0;
    position: relative;
    font-size: 15px;
    line-height: 1.8;
    color: #555;
    background: #fff;
}

.qa_sec dd::before {
    content: "A";
    position: absolute;
    left: 15px;
    top: 20px;
    color: #ffcc00;
    font-size: 20px;
    font-family: "Arial Black", sans-serif;
}

@media screen and (max-width: 480px) {
    .qa_sec dt {
        font-size: 15px;
        padding: 15px 45px 15px 45px;
    }
    .qa_sec dt::before,
    .qa_sec dd::before {
        left: 12px;
        font-size: 18px;
    }
    .qa_sec dd {
        padding: 15px 15px 20px 45px;
        font-size: 14px;
    }
}

/* --- 注意事項ページ --- */
.notes_sec {
    max-width: 900px;
    margin: 0 auto;
}

.notes_sec .section {
    margin-bottom: 40px;
}

.notes_read {
    background: #fff;
    border: 1px solid #e0e6e3;
    border-radius: 8px;
    padding: 30px;
    font-size: 15px;
    line-height: 1.8;
    color: #444;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03);
}

@media screen and (max-width: 768px) {
    .notes_read {
        padding: 20px;
    }
}

/* --- 定期オンラインセミナー --- */
.seminar-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 20px;
}

.seminar-container .featured-video {
    flex: 0 0 calc(33.333% - 14px);
    margin-bottom: 30px;
}

.seminar-container .pickup-title {
	min-height: 68px;
    font-size: 15px;
    line-height: 1.5;
    margin-bottom: 15px;
}

@media screen and (max-width: 767px) {
    .seminar-container .featured-video {
        flex: 0 0 100%;
    }
	.seminar-container .pickup-title {
		min-height: 50px;
	}
}