@charset "UTF-8";
/*
 * /local_governmen 会場カード + 会場別プログラムページ
 *
 * 本文基準 = clamp(0.85rem, 0.8rem + 0.25vw, 0.94rem)
 * テーマ側が #program 配下に font-size:1rem / line-height:2 を当てているため、
 * 詳細度で確実に勝てるよう全セレクタに #program を前置し、行間も必ず明示する。
 */

#program {
    --lg-text: #2b2b2b;
    --lg-muted: #767676;
    --lg-line: #e4e2df;
    --lg-line-soft: #efedea;
    /* サイトのブランド赤(common.css .text-red と同一) */
    --lg-accent: #BF4328;
    --lg-accent-dark: #9E3620;
    --lg-bg-soft: #faf9f7;
    --lg-body: clamp(0.85rem, 0.8rem + 0.25vw, 0.94rem);
    --lg-small: clamp(0.76rem, 0.73rem + 0.15vw, 0.83rem);
    --lg-head: clamp(0.9rem, 0.85rem + 0.25vw, 1rem);
    --lg-lh: 1.7;
}

/* ============ 3カラム 会場カード ============ */

#program .lg-venues {
    padding: 0;
}

#program .lg-venues__head {
    text-align: center;
    margin-bottom: 1.5rem;
}

#program .lg-venues__title {
    font-size: clamp(1.05rem, 0.95rem + 0.45vw, 1.3rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.06em;
    margin: 0 0 0.4rem !important;
    color: var(--lg-text);
}

#program .lg-venues__lead {
    font-size: var(--lg-body);
    line-height: var(--lg-lh);
    color: var(--lg-muted);
    margin: 0 !important;
}

#program .lg-venues__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

#program .lg-venues__grid--2 {
    grid-template-columns: repeat(2, 1fr);
}

#program .lg-venue-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--lg-line);
    border-top: 3px solid var(--lg-accent);
    border-radius: 4px;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

#program .lg-venue-card:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

#program .lg-venue-card__bar {
    margin: 0 !important;
    padding: 0.85rem 1rem 0;
    font-size: var(--lg-head);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.05em;
    color: var(--lg-text);
}

#program .lg-venue-card__body {
    flex: 1 1 auto;
    padding: 0.35rem 1rem 1rem;
    font-size: var(--lg-body);
    line-height: var(--lg-lh);
    color: var(--lg-text);
}

#program .lg-venue-card__date {
    font-size: clamp(0.98rem, 0.92rem + 0.28vw, 1.12rem);
    font-weight: 700;
    line-height: 1.4;
    color: var(--lg-accent);
    letter-spacing: 0.01em;
    margin: 0 0 0.6rem !important;
}

#program .lg-venue-card__meta {
    display: flex;
    gap: 0.4rem;
    margin: 0 0 0.15rem;
    font-size: var(--lg-body);
    line-height: 1.6;
}

#program .lg-venue-card__meta dt {
    flex: 0 0 4.5em;
    font-weight: 400;
    color: var(--lg-muted);
}

#program .lg-venue-card__meta dd {
    margin: 0;
    color: var(--lg-text);
}

#program .lg-venue-card__place {
    margin: 0.75rem 0 0 !important;
    padding-top: 0.75rem;
    border-top: 1px solid var(--lg-line-soft);
    font-size: var(--lg-body);
    line-height: 1.6;
    color: var(--lg-text);
}

#program .lg-venue-card__addr {
    display: block;
    margin-top: 0.15rem;
    font-size: var(--lg-small);
    line-height: 1.6;
    color: var(--lg-muted);
}

#program .lg-venue-card__foot {
    padding: 0 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

/* ============ ボタン ============ */

#program .lg-btn {
    display: block;
    text-align: center;
    padding: 0.6rem 0.7rem;
    border-radius: 2rem;
    font-size: var(--lg-body);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

#program a.lg-btn--primary,
#program a.lg-btn--primary:visited {
    background: var(--lg-accent);
    color: #fff !important;
    border: 1px solid var(--lg-accent);
}

#program a.lg-btn--primary:hover,
#program a.lg-btn--primary:focus {
    background: var(--lg-accent-dark);
    border-color: var(--lg-accent-dark);
    color: #fff !important;
    text-decoration: none;
}

#program a.lg-btn--ghost,
#program a.lg-btn--ghost:visited {
    background: #fff;
    color: var(--lg-text) !important;
    border: 1px solid var(--lg-line);
}

#program a.lg-btn--ghost:hover,
#program a.lg-btn--ghost:focus {
    border-color: var(--lg-accent);
    color: var(--lg-accent) !important;
    text-decoration: none;
}

#program .lg-btn--muted {
    background: #f2f1ef;
    color: #a0a0a0 !important;
    border: 1px solid var(--lg-line);
    pointer-events: none;
}

/* ============ 会場別プログラムページ ============ */

#program .lg-page {
    padding-top: 0.5rem;
    font-size: var(--lg-body);
    line-height: var(--lg-lh);
    color: var(--lg-text);
}

#program .lg-page__crumb {
    font-size: var(--lg-small);
    line-height: 1.6;
    color: var(--lg-muted);
    margin: 0 0 0.9rem !important;
}

#program .lg-page__crumb a,
#program .lg-page__crumb a:visited {
    color: var(--lg-muted);
    text-decoration: none;
}

#program .lg-page__crumb a:hover {
    color: var(--lg-accent);
    text-decoration: underline;
}

#program .lg-page__title {
    font-size: clamp(1.3rem, 1.05rem + 1.2vw, 2rem);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.04em;
    margin: 2rem 0 3rem !important;
    color: var(--lg-text);
}

#program .lg-sec {
    margin-bottom: 2rem;
}

/* common.css の h4{font-size:1.25rem!important; margin:0!important} に対抗 */
#program h4.lg-sec__title {
    font-size: var(--lg-head) !important;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.05em;
    margin: 0 0 2rem 0 !important;
    color: var(--lg-text);
}

/* ============ 表(開催概要 / カリキュラム) ============ */

#program .lg-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--lg-line);
    font-size: var(--lg-body);
    line-height: var(--lg-lh);
    color: var(--lg-text);
}

#program .lg-table th,
#program .lg-table td {
    border: 0;
    border-bottom: 1px solid var(--lg-line-soft);
    padding: 0.7rem 1rem;
    font-size: var(--lg-body);
    line-height: var(--lg-lh);
    vertical-align: top;
    text-align: left;
}

#program .lg-table tr:last-child th,
#program .lg-table tr:last-child td {
    border-bottom: 0;
}

#program .lg-table th {
    width: 15em;
    background: var(--lg-bg-soft);
    border-right: 1px solid var(--lg-line-soft);
    font-weight: 500;
    color: var(--lg-muted);
    white-space: nowrap;
}

#program .lg-table td {
    background: #fff;
}

#program .lg-table--schedule th {
    width: 15em;
    font-weight: 700;
    color: var(--lg-text);
    letter-spacing: 0.01em;
}

#program .lg-table__addr {
    display: block;
    margin-top: 0.1rem;
    font-size: var(--lg-small);
    line-height: 1.6;
    color: var(--lg-muted);
}

#program .lg-note {
    margin: 0.6rem 0 0 !important;
    font-size: var(--lg-small);
    line-height: 1.7;
    color: var(--lg-muted);
}

#program .lg-note a,
#program .lg-note a:visited {
    color: var(--lg-muted);
    text-decoration: underline;
}

#program .lg-note a:hover {
    color: var(--lg-accent);
}

/* ============ 申込ブロック ============ */


/* ============ 申込帯(テーマ .program_message を流用・背景のみブランド赤) ============ */

#sub-content .program_message.lg-entry-bg {
    background-color: var(--lg-accent);
}

#program .lg-sec--entry {
    margin-top: 2.5rem;
}

/* 受付終了時はボタンを不活性の見た目に(シェブロンも消す) */
#program .more_btn.lg-btn-off,
#sub-content .more_btn.lg-btn-off {
    background: rgba(255, 255, 255, 0.35);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff !important;
    pointer-events: none;
}

#program .more_btn.lg-btn-off p:after {
    content: none !important;
}

/* ============ 戻る ============ */

#program .lg-back {
    text-align: center;
    margin-top: 2rem;
}

#program .lg-back a,
#program .lg-back a:visited {
    display: inline-block;
    padding: 0.55rem 1.6rem;
    border: 1px solid var(--lg-line);
    border-radius: 3px;
    color: var(--lg-muted) !important;
    font-size: var(--lg-body);
    line-height: 1.4;
    text-decoration: none;
    transition: border-color 0.2s ease, color 0.2s ease;
}

#program .lg-back a:hover {
    border-color: var(--lg-accent);
    color: var(--lg-accent) !important;
    text-decoration: none;
}

/* ============ レスポンシブ ============ */

@media (max-width: 991px) {
    #program .lg-venue-card__bar {
        padding: 0.75rem 0.85rem 0;
    }

    #program .lg-venue-card__body {
        padding: 0.3rem 0.85rem 0.9rem;
    }

    #program .lg-venue-card__foot {
        padding: 0 0.85rem 0.9rem;
    }
}

@media (max-width: 767px) {
    #program .lg-venues__grid,
    #program .lg-venues__grid--2 {
        grid-template-columns: 1fr;
        gap: 0.9rem;
    }

    #program .lg-table th,
    #program .lg-table td {
        padding: 0.6rem 0.7rem;
    }

    #program .lg-table th {
        width: 6.5em;
        white-space: normal;
    }

    /* 「10時00分」を1行に収める(親の white-space:normal を打ち消す) */
    #program .lg-table--schedule th {
        width: 5.6em;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        white-space: nowrap;
    }
}
