/* タブ表示制御 */
.tab-content { display: none; }
.tab-content.active-content { display: block; }
.hidden { display: none; }

/* アニメーション */
@keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.animate-fadeIn { animation: fadeIn 0.8s ease-out forwards; }

/* PC用ナビタブ */
.tab-button { position: relative; padding-bottom: 4px; border-bottom: 2px solid transparent; cursor: pointer; color: #9ca3af; transition: all 0.3s; }
.tab-button:hover { color: #1a365d; }
.tab-button.active { color: #1a365d; border-bottom: 2px solid #1a365d; }

/* モバイル用リンク */
.mobile-link { color: #9ca3af; cursor: pointer; transition: color 0.3s; }
.mobile-link:hover { color: #1a365d; }
.mobile-link.active { color: #1a365d; }

/* お知らせ */
.news-date { font-weight: 700; color: #b48f48; width: 110px; flex-shrink: 0; font-size: 0.9rem; }

/* デザインボックス共通 */
.history-box { background: #fcfcfc; padding: 2.5rem; border: 1px solid #eef2f6; border-radius: 4px; height: 100%; }
.history-title { font-size: 1.25rem; font-weight: bold; color: #1a365d; margin-bottom: 2rem; padding-left: 1rem; border-left: 3px solid #b48f48; }
.history-list div { display: flex; padding: 0.8rem 0; border-bottom: 1px solid #f1f5f9; align-items: flex-start; }
.history-list dt { width: 110px; flex-shrink: 0; font-weight: 600; color: #64748b; font-size: 0.85rem; }
.history-list dd { color: #1e293b; font-size: 0.95rem; line-height: 1.6; flex: 1; }

/* 料金カード */
.price-card { border: 1px solid #e2e8f0; padding: 30px; border-radius: 4px; background: #fff; text-align: center; }
.price-card h3 { color: #1a365d; font-size: 1.1rem; margin-top: 0; font-weight: bold; border-bottom: 1px solid #f8fafc; padding-bottom: 10px; }
.price-value { color: #b48f48; font-weight: bold; font-size: 1.4rem; margin: 15px 0; }
.price-note { font-size: 0.8rem; color: #64748b; line-height: 1.5; }

/* 事務所案内・お問い合わせ テーブル */
.info-table { width: 100%; border-collapse: collapse; border: 1px solid #e2e8f0; }
.info-table th, .info-table td { padding: 20px; border: 1px solid #e2e8f0; text-align: left; }
.info-table th { width: 120px; background: #f8fafc; color: #1a365d; font-size: 0.9rem; font-weight: bold; }
@media (min-width: 768px) { .info-table th { width: 180px; } }
.info-table td { color: #1e293b; }

/* スクロールトップボタンの動作 */
html {
    scroll-behavior: smooth;
}

#scroll-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#scroll-to-top {
    transform: translateY(20px);
}

/* スクロール時の浮き上がりアニメーション */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1.0s cubic-bezier(0.22, 1, 0.36, 1), 
                transform 1.0s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-on-scroll.active {
    opacity: 1;
    transform: translateY(0);
}

/* 営業お断り専用：サイズ調整版バナー */
.no-sales-banner {
    background-color: #fffafa;
    border: 3px solid #c53030;
    color: #c53030;
    padding: 20px 10px;
    margin: 0 auto;
    max-width: 600px; /* 横幅を制限 */
    border-radius: 8px;
    text-align: center;
}

.no-sales-banner .main-text {
    font-size: 1.25rem; /* 前回の約半分 */
    font-weight: 800;
    margin-bottom: 5px;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.no-sales-banner .sub-text {
    font-size: 0.85rem;
    font-weight: 700;
}

@media (min-width: 768px) {
    .no-sales-banner {
        padding: 25px 40px;
    }
    .no-sales-banner .main-text {
        font-size: 1.5rem; /* PCでも大きすぎないサイズ */
    }
}
