/*
 * レッスン一覧・種目・レッスン詳細・コーチのページ（static-gen のテンプレート）で共通の部品。
 * brand.css のあとに読み込む。ページごとの部品は各テンプレートの <style> に置く。
 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* ヘッダー（トップの .header に合わせる） */
.site-header {
    background: var(--paper);
    border-bottom: var(--border-bold);
    padding: 10px 24px;
}
.header-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.site-logo-link {
    display: inline-block;
    line-height: 0;
}
.site-logo-link img {
    width: auto;
    height: 50px;
}
.site-header-links {
    display: flex;
    align-items: center;
    gap: 8px;
}
.site-header-link {
    padding: 8px 4px;
    color: var(--ink);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    white-space: nowrap;
}
.site-header-link:hover {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
.site-header-mypage {
    padding: 8px 16px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    white-space: nowrap;
    background: var(--surface);
}
.site-header-mypage:hover {
    background: var(--paper-strong);
}

/* パンくず */
.breadcrumb {
    max-width: 1200px;
    margin: 0 auto;
    padding: 16px 24px;
}
.breadcrumb-list {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--ink-sub);
    list-style: none;
}
.breadcrumb-item {
    display: flex;
    align-items: center;
    gap: 8px;
}
.breadcrumb-link {
    color: var(--ink);
    font-weight: 700;
    text-decoration: none;
}
.breadcrumb-link:hover {
    text-decoration: underline;
}
.breadcrumb-separator {
    color: var(--ink-sub);
}
.breadcrumb-current {
    color: var(--ink-sub);
}

/* 本文の枠（白い箱にせず、紙色の地にそのまま置く） */
.wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 8px 16px 24px;
}

/* ページの見出しは太字＋オレンジのマーカー */
.h1,
.page-title,
.profile-name {
    display: table; /* 文字の幅だけにマーカーを引きつつ、下の余白は効かせる */
    box-shadow: inset 0 -0.32em 0 var(--accent-soft);
}

/* カード（レッスン・種目）。触れたら枠を濃くして少し浮かせる */
a.card,
a.lesson-card,
a.cat-card {
    transition: border-color 0.15s, transform 0.15s;
}
a.card:hover,
a.lesson-card:hover,
a.cat-card:hover {
    border-color: var(--ink);
    transform: translateY(-2px);
}

/* 種目・エリアのチップ（トップの人気のチップと同じ見た目） */
.parent-nav a,
.region-chip,
.region-tag.region-tag-link,
.category-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: var(--border-bold);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    box-shadow: var(--shadow-hard);
    transition: transform 0.12s, box-shadow 0.12s, background 0.12s, color 0.12s;
}
.parent-nav a:hover,
.region-chip:hover,
.region-tag.region-tag-link:hover,
.category-badge:hover {
    background: var(--accent-strong);
    color: #fff;
    box-shadow: 1px 1px 0 var(--ink);
    transform: translate(2px, 2px);
}

/* 予約の案内 */
.app-cta {
    margin-top: 32px;
    padding: 20px;
    background: var(--paper-strong);
    border: var(--border-bold);
    border-radius: var(--radius);
    box-shadow: var(--shadow-hard);
    text-align: center;
}
.app-cta p {
    margin-bottom: 16px;
    color: var(--ink);
    font-size: 15px;
    line-height: 1.7;
}
.app-cta p:last-child {
    margin-bottom: 0;
}

/* フッター（トップのフッターに合わせる） */
.footer {
    background: var(--paper);
    border-top: var(--border-bold);
    color: var(--ink-sub);
    padding: 32px 24px 24px;
    margin-top: 60px;
}
.footer-content {
    max-width: 1200px;
    margin: 0 auto;
}
.footer-section {
    margin-bottom: 24px;
}
.footer-title {
    font-size: 16px;
    font-weight: 900;
    margin-bottom: 12px;
    color: var(--ink);
}
.footer-links {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.footer-link {
    color: var(--ink-sub);
    text-decoration: none;
    font-size: 14px;
}
.footer-link:hover {
    color: var(--ink);
    text-decoration: underline;
}
.footer-bottom {
    border-top: 1px solid var(--line);
    padding-top: 16px;
    text-align: center;
    color: var(--ink-sub);
    font-size: 13px;
}

@media (min-width: 768px) {
    .footer-links {
        flex-direction: row;
        gap: 24px;
    }
}
@media (max-width: 768px) {
    .site-header {
        padding: 10px 16px;
    }
    .site-logo-link img {
        height: 45px;
    }
    .site-header-link,
    .site-header-mypage {
        font-size: 0.85rem;
    }
    .site-header-mypage {
        padding: 6px 12px;
    }
    .breadcrumb {
        padding: 12px 16px;
    }
    /* スマホではパンくずを1行に保ち、横スクロールさせる */
    .breadcrumb-list {
        font-size: 12px;
        flex-wrap: nowrap;
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: none;
    }
    .breadcrumb-list::-webkit-scrollbar {
        display: none;
    }
    .breadcrumb-item,
    .breadcrumb-separator {
        flex-shrink: 0;
    }
}
