/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.13.10.1787462608
Updated: 2026-08-23 14:23:28

*/

/*************************************************************************************
  WordPress トップページヘッダー非表示 
 トップページのページヘッダー（青い帯）を非表示
 */
.page-header{
    display: none !important;
}

/*************************************************************************************


/*************************************************************************************
 ログイン・新規登録画面関係のカスタマイズ
 パスワードの注釈を非表示にする
*/

.wppb-description-delimiter{
    display: none !important;
}
/* 会員番号などの制御（登録画面では非表示、マイページでは編集不可）*/
/* ① 新規登録画面（.wppb-register）の時だけ、会員番号を完全に非表示にする */
.wppb-register-user #wppb-form-element-14 ,
.wppb-register-user #wppb-form-element-25{
    display: none !important;
}
/* ② マイページ（.wppb-edit-profile）では、会員番号の入力欄を触れない（編集不可）にする */
#wppb-form-element-14{
    display: none !important;
}
/* ③ マイページ（.wppb-edit-profile）の時、受講生詳細情報更新チェックボックスを非表示にする */
#wppb-form-element-25{
    display: none !important;
}
/* Profile Builderのアクティベーション画面のメッセージを非表示にする */
.wppb-activate-user,
#wppb_activate_user,
.wppb-success {
    display: none !important;
}

/* 画面が一瞬ガタつかないよう、ページ全体をリダイレクトまで白く保つ（オプション） */
.page-id-xxxx .site-content { /* xxxxにはProfile Builderを設置している固定ページIDを入れます */
    background: #ffffff !important;
}

/* 今年度の「一般フォーム」内の年度フィールドを非表示にする */
#form-ippan-current .acf-field[data-name="exam_year"] {
    display: none !important;
}

/* 今年度の「総監フォーム」内の年度フィールドを非表示にする */
#form-soukan-current .acf-field[data-name="exam_year"] {
    display: none !important;
}
/* 過去履歴ページ（member_past）専用のフォーム制御 */
/* 1. 受験年度の選択肢から「0: 今年度」を非表示にする（セレクトボックス用） */
#form-ippan-past .acf-field[data-name="exam_year"] select option[value="0"],
#form-soukan-past .acf-field[data-name="exam_year"] select option[value="0"] {
    display: none !important;
}

/* 2. 過去の履歴入力フォームでは「専門とする事項（speciality）」をまるごと非表示に隠す */
#form-ippan-past .acf-field[data-name="speciality"],
#form-soukan-past .acf-field[data-name="speciality"] {
    display: none !important;
}

/* 1行アイテムのカード枠 */
.member-hold-item {
    display: flex;
    flex-direction: column;      /* 要素を縦に並べる（2行化） */
    align-items: flex-start;     /* 左揃え */
    gap: 6px;                    /* 1行目と2行目の間隔 */
    padding: 12px 16px;
    margin-bottom: 8px;
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 0.95rem;
}

/* 1行目（年度＋バッジの横並び） */
.hold-row-top {
    display: flex;
    align-items: center;
    gap: 10px;                  /* 年度とバッジの間隔 */
}

/* 2行目（部門・科目） */
.hold-row-bottom {
    width: 100%;
}

/* 取得年度 */
.hold-year {
    font-weight: 700;
    color: #334155;
}

/* 区分バッジ */
.hold-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 4px;
    line-height: 1.2;
}
.badge-general {
    background-color: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
}
.badge-sokan {
    background-color: #fef3c7;
    color: #b45309;
    border: 1px solid #fde68a;
}

/* 部門（科目）テキスト */
.hold-dept-subj {
    color: #0f172a;
    font-weight: 600;
    padding-left: 8px;
}

/* FAQ一覧ページのスタイル */
/* 2カラムレイアウト全体構造 */
.faq-layout-wrapper {
    display: flex;
    gap: 30px;
    align-items: flex-start;
    margin-top: 20px;
}

/* 左サイドバー */
.faq-sidebar {
    width: 220px;
    flex-shrink: 0;
    position: -webkit-sticky; /* Safari用 */
    position: sticky;
    top: 100px; /* 画面上部から100px空いた位置でピタッと止まって追従 */
    max-height: calc(100vh - 120px); /* 画面より長くなった時にメニュー内でスクロールできるようにする */
    overflow-y: auto;
}
.faq-sidebar-inner {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 15px;
}
.faq-sidebar-title {
    font-weight: bold;
    font-size: 0.9rem;
    color: #6c757d;
    margin-bottom: 10px;
    padding-bottom: 5px;
    border-bottom: 1px solid #dee2e6;
}
.faq-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.faq-nav-list li {
    margin-bottom: 8px;
}
.faq-nav-list a {
    color: #333;
    text-decoration: none;
    font-size: 0.95rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 8px;
    border-radius: 4px;
    transition: background 0.2s;
}
.faq-nav-list a:hover {
    background: #e9ecef;
    color: #0066cc;
}
.cat-count {
    font-size: 0.8rem;
    color: #888;
}

/* 右メインエリア */
.faq-main-content {
    flex-grow: 1;
    min-width: 0; /* 崩れ防止 */
}
.faq-category-section {
    margin-bottom: 40px;
    scroll-margin-top: 100px; /* リンクジャンプ時の上部余白 */
}

/* スマホ表示対応（768px以下は1カラム化） */
@media (max-width: 768px) {
    .faq-layout-wrapper {
        flex-direction: column;
    }
    .faq-sidebar {
        width: 100%;
        position: static;
    }
}

/* カテゴリ見出し */
.faq-category-title {
    font-size: 1.25rem;
    font-weight: bold;
    margin: 2rem 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #333;
    display: flex;
    align-items: center;
    gap: 8px;
}
.faq-icon {
    background: #333;
    color: #fff;
    font-size: 0.8rem;
    padding: 2px 8px;
    border-radius: 4px;
}

/* アコーディオンアイテム */
.faq-item {
    background: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    margin-bottom: 12px;
    overflow: hidden;
    transition: all 0.2s ease;
}
.faq-item[open] {
    background: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

/* 質問エリア（ヘッダー） */
.faq-question {
    padding: 16px 20px;
    font-weight: bold;
    cursor: pointer;
    list-style: none; /* デフォルトの矢印を消す */
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.faq-question::-webkit-details-marker {
    display: none;
}
.q-label {
    color: #0066cc;
    margin-right: 8px;
    font-size: 1.1rem;
}
.q-text {
    flex-grow: 1;
}

/* アコーディオン開閉のカスタム矢印 */
.arrow-icon::after {
    content: '+';
    font-size: 1.2rem;
    color: #666;
}
.faq-item[open] .arrow-icon::after {
    content: '−';
}

/* 回答（アコーディオンの中身） */
.faq-answer {
    padding: 0 20px 20px 20px;
    color: #555;
    line-height: 1.6;
    border-top: 1px dashed #eee;
    margin-top: 5px;
    padding-top: 15px;
}
.a-excerpt {
    margin-bottom: 12px;
}
.faq-detail-link {
    display: inline-block;
    font-size: 0.85rem;
    color: #0066cc;
    text-decoration: none;
    font-weight: bold;
}
.faq-detail-link:hover {
    text-decoration: underline;
}
/* 検索ボックス全体のスタイル */
.faq-search-box {
    margin-bottom: 25px;
}
.faq-search-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    max-width: 100%;
}
.faq-search-icon {
    position: absolute;
    left: 15px;
    font-size: 1.1rem;
    color: #888;
    pointer-events: none;
}
#faq-search-input {
    width: 100%;
    padding: 14px 45px 14px 45px;
    font-size: 1rem;
    border: 2px solid #ddd;
    border-radius: 8px;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: #fff;
}
#faq-search-input:focus {
    border-color: #0066cc;
    box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);
}
#faq-search-clear {
    position: absolute;
    right: 12px;
    background: #eee;
    border: none;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    cursor: pointer;
    font-size: 0.8rem;
    color: #666;
    display: flex;
    align-items: center;
    justify-content: center;
}
#faq-search-clear:hover {
    background: #ccc;
}
.faq-search-count {
    margin-top: 8px;
    font-size: 0.9rem;
    color: #0066cc;
    font-weight: bold;
}
/* FAQの個別ページ（single-faq）で前後の記事リンクを非表示にする */
.vk_posts.next-prev {
    display: none !important;
}
/* 新着情報関係のスタイル */
.whats-new-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.whats-new-item {
    padding: 10px 0;
    border-bottom: 1px solid #eee;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
}
.whats-new-date {
    color: #666;
    font-size: 13px;
}
.whats-new-badge {
    background-color: #0073aa;
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: bold;
}
.whats-new-title {
    color: #333;
    text-decoration: none;
}
.whats-new-title:hover {
    text-decoration: underline;
}
/* カード一覧グリッド */
.entry-content .student-card-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 20px !important;
    margin-top: 15px !important;
}

/* カード単体 */
.entry-content .student-card-item {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 4px rgba(0,0,0,0.03);
    transition: transform 0.2s, box-shadow 0.2s;
}

.entry-content .student-card-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* ヘッダーエリア（日付・バッジ・アイコン） */
.entry-content .student-card-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 12px;
}

.entry-content .student-card-date {
    color: #64748b;
}

.entry-content .student-card-badge {
    background-color: #0284c7;
    color: #ffffff;
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: bold;
    font-size: 11px;
}

.entry-content .student-card-badge.badge-seminar {
    background-color: #059669; /* セミナー限定はグリーン表示 */
}

.entry-content .student-card-file-icon {
    margin-left: auto;
    background: #f1f5f9;
    color: #475569;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
}

/* タイトル */
.student-card-title {
    font-size: 16px;
    font-weight: bold;
    margin: 0 0 10px 0;
    line-height: 1.4;
}

.student-card-title a {
    color: #1e293b;
    text-decoration: none;
}

.student-card-title a:hover {
    color: #0284c7;
}

/* 要約テキスト */
.student-card-excerpt {
    font-size: 13px;
    color: #475569;
    line-height: 1.6;
    margin: 0 0 15px 0;
    flex-grow: 1; /* フッターを下に押し出す */
}

/* フッター（詳細リンク） */
.student-card-footer {
    text-align: right;
    border-top: 1px solid #f1f5f9;
    padding-top: 10px;
}

.student-card-link {
    font-size: 13px;
    font-weight: bold;
    color: #0284c7;
    text-decoration: none;
}

.student-card-link:hover {
    text-decoration: underline;
}
