/* =========================================================
   BLOG / ARCHIVE / SINGLE  ─ トップのデザイントークンを継承
   ========================================================= */

.blog-main,
.single-main {
    background: var(--paper, #f7f4ee);
    padding: 140px 0 100px;
    min-height: 70vh;
}

.blog-main .container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
.single-main .container-narrow { max-width: 760px; margin: 0 auto; padding: 0 24px; }

/* --- 見出し --- */
.blog-head { margin-bottom: 48px; }
.blog-head .cases-en {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    color: var(--blue, #5a8caa);
    letter-spacing: .08em;
    margin-bottom: 8px;
}
.blog-head .cases-ja,
.blog-head h1 {
    font-family: 'Shippori Mincho', serif;
    font-size: clamp(26px, 4vw, 38px);
    color: var(--ink, #2a2925);
    font-weight: 600;
}

/* --- 一覧（トップの news-item を流用） --- */
.blog-list { display: flex; flex-direction: column; gap: 2px; margin-bottom: 56px; }
.blog-empty { color: var(--ink-mute, #8a8478); padding: 40px 0; }

/* --- ページネーション --- */
.blog-pagination { display: flex; justify-content: center; }
.blog-pagination .page-numbers {
    display: inline-block;
    padding: 8px 14px; margin: 0 3px;
    border: 1px solid var(--line, #d8d2c5);
    border-radius: 4px;
    color: var(--ink-soft, #5a574f);
    text-decoration: none;
    font-size: 14px;
}
.blog-pagination .page-numbers.current {
    background: var(--blue, #5a8caa); color: #fff; border-color: var(--blue, #5a8caa);
}

/* --- 記事ページ --- */
.single-head { margin-bottom: 32px; text-align: center; }
.single-head .news-cat { display: inline-block; margin-bottom: 14px; }
.single-title {
    font-family: 'Shippori Mincho', serif;
    font-size: clamp(24px, 4vw, 34px);
    line-height: 1.5; color: var(--ink, #2a2925);
    font-weight: 600; margin-bottom: 14px;
}
.single-date { color: var(--ink-mute, #8a8478); font-size: 14px; letter-spacing: .05em; }

.single-thumb { margin: 0 auto 40px; border-radius: 8px; overflow: hidden; }
.single-thumb img { width: 100%; height: auto; display: block; }

/* --- 本文タイポグラフィ（スタッフが書く記事の読みやすさ） --- */
.single-body {
    font-family: 'Noto Sans JP', sans-serif;
    color: var(--ink-soft, #5a574f);
    font-size: 16px; line-height: 2;
}
.single-body > * + * { margin-top: 1.4em; }
.single-body h2 {
    font-family: 'Shippori Mincho', serif;
    font-size: 24px; color: var(--ink, #2a2925);
    margin-top: 2em; padding-bottom: .4em;
    border-bottom: 2px solid var(--line, #d8d2c5);
}
.single-body h3 {
    font-family: 'Shippori Mincho', serif;
    font-size: 20px; color: var(--ink, #2a2925); margin-top: 1.8em;
}
.single-body a { color: var(--blue-deep, #3e6b86); text-underline-offset: 3px; }
.single-body img { max-width: 100%; height: auto; border-radius: 6px; }
.single-body ul, .single-body ol { padding-left: 1.4em; }
.single-body blockquote {
    border-left: 3px solid var(--blue, #5a8caa);
    padding: .4em 1.2em; color: var(--ink-mute, #8a8478);
    background: var(--paper-deep, #efeae0); border-radius: 0 6px 6px 0;
}

/* --- 記事下ナビ --- */
.single-nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 24px; align-items: center;
    margin-top: 64px; padding-top: 28px;
    border-top: 1px solid var(--line, #d8d2c5);
    font-size: 14px;
}
.single-nav a { color: var(--ink-soft, #5a574f); text-decoration: none; }
.single-nav a:hover { color: var(--blue-deep, #3e6b86); }
.single-nav-prev { text-align: left; }
.single-nav-next { text-align: right; }
.single-nav-back { text-align: center; }
.single-nav-prev a, .single-nav-next a { display: inline-block; max-width: 100%; line-height: 1.6; }
.single-nav-back a {
    display: inline-block; white-space: nowrap;
    padding: 10px 24px; border: 1px solid var(--blue, #5a8caa);
    border-radius: 999px; color: var(--blue-deep, #3e6b86);
    transition: background .2s, color .2s;
}
.single-nav-back a:hover { background: var(--blue, #5a8caa); color: #fff; }
@media (max-width: 640px) {
    .single-nav { grid-template-columns: 1fr; gap: 16px; }
    .single-nav-prev, .single-nav-next, .single-nav-back { text-align: center; }
}

/* =========================================================
   RESERVATION（ご予約ページ）— サイトのセクション意匠に準拠（箱を使わず細罫線で構成）
   ========================================================= */
.reserve-main { background: var(--paper, #f7f4ee); padding: 150px 0 110px; min-height: 70vh; }
.reserve-inner { max-width: 1080px; margin: 0 auto; padding: 0 32px; }

.reserve-header { text-align: center; margin-bottom: 56px; }
.reserve-eyebrow {
    display: block; font-family: 'Cormorant Garamond', serif; font-style: italic;
    font-size: 14px; letter-spacing: .2em; color: var(--blue, #5a8caa); margin-bottom: 14px;
}
.reserve-title {
    font-family: 'Shippori Mincho', serif; font-weight: 600;
    font-size: clamp(30px, 4.5vw, 44px); color: var(--ink, #2a2925); letter-spacing: .05em; margin: 0;
}
.reserve-lead {
    text-align: center; max-width: 680px; margin: 0 auto 64px;
    font-size: 16px; line-height: 2.1; color: var(--ink-soft, #5a574f);
}

/* 2つの予約経路：箱で囲わず、細い罫線で区切る（quick-nav準拠） */
.reserve-paths {
    display: grid; grid-template-columns: 1fr 1fr;
    border-top: 1px solid var(--line, #d8d2c5); border-bottom: 1px solid var(--line, #d8d2c5);
    margin: 0 0 96px;
}
.reserve-path {
    display: flex; flex-direction: column; align-items: flex-start;
    padding: 48px 44px; border-right: 1px solid var(--line, #d8d2c5);
}
.reserve-path:last-child { border-right: none; }
.reserve-path-en {
    font-family: 'Cormorant Garamond', serif; font-style: italic;
    font-size: 13px; letter-spacing: .14em; color: var(--blue, #5a8caa); margin-bottom: 18px;
}
.reserve-path-ja {
    font-family: 'Shippori Mincho', serif; font-weight: 500;
    font-size: 23px; color: var(--ink, #2a2925); letter-spacing: .04em; margin: 0 0 16px; line-height: 1.5;
}
.reserve-path-ja small { font-size: 14px; color: var(--ink-mute, #8a8478); font-weight: 400; }
.reserve-path > p { font-size: 15px; line-height: 1.95; color: var(--ink-soft, #5a574f); margin: 0 0 28px; }
.reserve-points { list-style: none; padding: 0; margin: 0 0 28px; }
.reserve-points li { position: relative; padding-left: 20px; margin-bottom: 14px; font-size: 15px; line-height: 1.9; color: var(--ink-soft, #5a574f); }
.reserve-points li::before { content: ''; position: absolute; left: 0; top: 13px; width: 7px; height: 7px; border-radius: 50%; background: var(--terracotta, #b85c4a); }
.reserve-points li span { font-weight: 700; color: var(--ink, #2a2925); }
.reserve-path .archive-cta { margin-top: auto; width: max-content; max-width: 100%; color: var(--ink, #2a2925); }
.reserve-path .archive-cta .archive-cta-label { white-space: nowrap; }
.reserve-path .archive-cta.archive-cta-primary { color: #fff; }
.reserve-path .archive-cta:hover { color: var(--paper, #f7f4ee); }
.reserve-path .archive-cta.archive-cta-primary:hover { color: var(--terracotta, #b85c4a); }
.reserve-mini { display: block; margin-top: 14px; font-size: 12px; color: var(--ink-mute, #8a8478); }

/* スケジュール */
.reserve-schedule { text-align: center; }
.reserve-sched-title { font-family: 'Shippori Mincho', serif; font-weight: 600; font-size: clamp(24px, 3.4vw, 32px); color: var(--ink, #2a2925); letter-spacing: .05em; margin: 0 0 14px; }
.reserve-sched-note { font-size: 15px; line-height: 1.9; color: var(--ink-soft, #5a574f); max-width: 680px; margin: 0 auto 36px; }
.reserve-calendar { margin: 0 auto; max-width: 1000px; }
.reserve-calendar iframe { width: 100% !important; height: 600px; display: block; }

.reserve-back { text-align: center; margin-top: 80px; }
.reserve-back a { display: inline-block; padding: 14px 36px; border: 1px solid var(--ink, #2a2925); color: var(--ink, #2a2925); text-decoration: none; font-family: 'Shippori Mincho', serif; letter-spacing: .1em; font-size: 14px; transition: all .3s; }
.reserve-back a:hover { background: var(--ink, #2a2925); color: var(--paper, #f7f4ee); }

@media (max-width: 720px) {
    .reserve-main { padding: 120px 0 80px; }
    .reserve-paths { grid-template-columns: 1fr; }
    .reserve-path { border-right: none; border-bottom: 1px solid var(--line, #d8d2c5); padding: 40px 4px; }
    .reserve-path:last-child { border-bottom: none; }
    .reserve-path .archive-cta { width: 100%; justify-content: center; }
}

/* =========================================================
   STAFF（スタッフ紹介）— 写真＋文章を左右交互、PROFILE/HOBBYは細罫線で
   ========================================================= */
.staff-main { background: var(--paper, #f7f4ee); padding: 150px 0 110px; }
.staff-inner { max-width: 1080px; margin: 0 auto; padding: 0 32px; }
.staff-header { text-align: center; margin-bottom: 80px; }
.staff-member { margin-bottom: 100px; }
.staff-top { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; margin-bottom: 36px; }
.staff-member--rev .staff-photo { order: 2; }
.staff-photo img { width: 100%; height: auto; display: block; border-radius: 8px; }
.staff-role { display: block; font-size: 13px; letter-spacing: .12em; color: var(--ink-mute, #8a8478); margin-bottom: 12px; }
.staff-name { font-family: 'Shippori Mincho', serif; font-weight: 600; font-size: clamp(26px, 3.6vw, 34px); color: var(--ink, #2a2925); letter-spacing: .05em; margin: 0 0 24px; }
.staff-intro p { font-family: 'Noto Sans JP', sans-serif; font-size: 15px; line-height: 2; color: var(--ink-soft, #5a574f); margin: 0 0 16px; }
.staff-intro p:last-child { margin-bottom: 0; }
.staff-meta { display: grid; grid-template-columns: 1.5fr 1fr; border-top: 1px solid var(--line, #d8d2c5); }
.staff-profile { padding: 30px 36px 30px 0; }
.staff-hobby { padding: 30px 0 30px 36px; border-left: 1px solid var(--line, #d8d2c5); }
.staff-meta-label { display: block; font-family: 'Cormorant Garamond', serif; font-size: 16px; letter-spacing: .18em; color: var(--blue, #5a8caa); margin-bottom: 14px; }
.staff-profile ul, .staff-hobby ul { list-style: none; padding: 0; margin: 0; }
.staff-profile li { font-size: 14px; line-height: 1.8; color: var(--ink-soft, #5a574f); margin-bottom: 9px; padding-left: 15px; position: relative; }
.staff-profile li::before { content: ''; position: absolute; left: 0; top: 11px; width: 5px; height: 5px; border-radius: 50%; background: var(--blue, #5a8caa); opacity: .6; }
.staff-hobby li { font-size: 14px; line-height: 2; color: var(--ink-soft, #5a574f); padding-left: 16px; position: relative; }
.staff-hobby li::before { content: '・'; position: absolute; left: 0; color: var(--blue, #5a8caa); }
@media (max-width: 820px) {
    .staff-main { padding: 120px 0 80px; }
    .staff-top { grid-template-columns: 1fr; gap: 28px; }
    .staff-member--rev .staff-photo { order: 0; }
    .staff-meta { grid-template-columns: 1fr; }
    .staff-profile { padding: 24px 0; }
    .staff-hobby { padding: 24px 0; border-left: none; border-top: 1px solid var(--line, #d8d2c5); }
}
