/* ============================================================
 *  KT CLINIC — Phase 6 ページ群 CSS
 *  症例(single/archive-case) / 商品(single/archive-product)
 *  料金一覧(page-price) / 施術一覧(archive-treatment)
 *  共通：3科スコープ kt-gyn/kt-derm/kt-cos のアクセント変数
 * ============================================================ */

.kt-case-single, .kt-case-archive,
.kt-product-single, .kt-product-archive,
.kt-price-page, .kt-treatment-archive {
    --c-text: #1A1F2E; --c-sub: #2A3142; --c-meta: #5A6373;
    --c-border: #E8EAED; --c-border-soft: #F0F1F3; --c-bg-soft: #F7F8FA;
    --c-gold: #C9A96E;
    --font-sans: 'Noto Sans JP', sans-serif; --font-en: 'Inter', sans-serif;
    color: var(--c-text); font-family: var(--font-sans); line-height: 1.8;
    --c-accent: #C9A96E; --c-accent-deep: #9C7E47; --c-accent-soft: #F7F1E3;
}
.kt-gyn  { --c-accent: #E08AA0; --c-accent-deep: #C16A82; --c-accent-soft: #FBECF0; }
.kt-derm { --c-accent: #7DC9A8; --c-accent-deep: #56AC85; --c-accent-soft: #E8F6EE; }
.kt-cos  { --c-accent: #C9A96E; --c-accent-deep: #9C7E47; --c-accent-soft: #F7F1E3; }

.kt-case-single *, .kt-case-archive *, .kt-product-single *, .kt-product-archive *,
.kt-price-page *, .kt-treatment-archive * { box-sizing: border-box; }
.kt-case-single img, .kt-product-single img, .kt-product-archive img, .kt-case-archive img { display:block; max-width:100%; height:auto; }
.kt-case-single a, .kt-case-archive a, .kt-product-single a, .kt-product-archive a, .kt-price-page a, .kt-treatment-archive a { text-decoration:none; color:inherit; }
.kt-case-single ul, .kt-product-single ul { list-style:none; padding:0; margin:0; }

/* ===== 症例 詳細 ===== */
.kt-case-single .case-wrap { max-width: 760px; margin: 0 auto; padding: 40px 20px 80px; }
.kt-case-single .case-title { font-size: 26px; font-weight: 500; margin: 0 0 24px; }
.kt-case-single .case-images-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.kt-case-single .case-image { margin: 0; }
.kt-case-single .case-image img { width: 100%; border-radius: 8px; }
.kt-case-single .case-image figcaption { text-align: center; font-family: var(--font-en); font-size: 13px; color: var(--c-meta); margin-top: 6px; }
.kt-case-single .case-images-rest { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px,1fr)); gap: 10px; margin-top: 12px; }
.kt-case-single .case-comment { margin: 24px 0; font-size: 15px; color: var(--c-sub); }
.kt-case-single .case-legal-info { margin: 28px 0; padding: 18px 20px; background: var(--c-bg-soft); border: .5px solid var(--c-border); font-size: 13px; color: var(--c-sub); line-height: 1.7; }
.kt-case-single .case-legal-info .row { margin-bottom: 10px; }
.kt-case-single .case-legal-info .row:last-of-type { margin-bottom: 0; }
.kt-case-single .case-legal-info .lbl { font-weight: 700; color: var(--c-accent-deep); display: block; margin-bottom: 2px; }
.kt-case-single .case-legal-info .indiv { margin-top: 12px; padding-top: 10px; border-top: .5px solid var(--c-border); font-size: 12px; color: var(--c-meta); }
.kt-case-single .case-risks { margin: 28px 0; }
.kt-case-single .case-risks h2 { font-size: 17px; font-weight: 500; margin: 0 0 12px; }
.kt-case-single .case-risks li { font-size: 14px; color: var(--c-sub); padding-left: 18px; position: relative; margin-bottom: 6px; }
.kt-case-single .case-risks li::before { content: '・'; position: absolute; left: 0; color: var(--c-accent); }
.kt-case-single .case-legal { font-size: 12px; color: var(--c-meta); background: var(--c-bg-soft); padding: 14px 18px; border-radius: 8px; }
.kt-case-single .case-cta { text-align: center; margin-top: 36px; }
.kt-case-single .case-btn { display: inline-block; background: var(--c-accent); color: #fff; padding: 14px 36px; border-radius: 6px; font-weight: 500; }
.kt-case-single .case-back { display: block; margin-top: 16px; font-size: 14px; color: var(--c-meta); }

/* ===== 症例 一覧 ===== */
.kt-case-archive { max-width: 1080px; margin: 0 auto; padding: 40px 20px 80px; }
.kt-case-archive .case-arch-header { text-align: center; margin-bottom: 32px; }
.kt-case-archive .case-arch-en { font-family: var(--font-en); font-size: 13px; letter-spacing: .1em; color: var(--c-gold); margin: 0; }
.kt-case-archive .case-arch-header h1 { font-size: 28px; font-weight: 500; margin: 4px 0 0; }
.kt-case-archive .case-filter { margin-bottom: 32px; }
.kt-case-archive .case-filter-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.kt-case-archive .case-filter-label { font-size: 13px; color: var(--c-meta); margin-right: 4px; }
.kt-case-archive .case-chip, .kt-product-archive .product-chip {
    font-size: 13px; padding: 6px 14px; border: 1px solid var(--c-border); border-radius: 20px; color: var(--c-sub);
}
.kt-case-archive .case-chip.active, .kt-product-archive .product-chip.active { background: var(--c-accent); color: #fff; border-color: var(--c-accent); }
.kt-case-archive .case-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap: 24px; }
.kt-case-archive .case-card-img { aspect-ratio: 1/1; background: var(--c-bg-soft); border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.kt-case-archive .case-card-img img { width: 100%; height: 100%; object-fit: cover; }
.kt-case-archive .case-card-img span { font-size: 12px; color: var(--c-meta); }
.kt-case-archive .case-card-title { font-size: 14px; font-weight: 500; margin: 0; }
.kt-case-archive .case-arch-legal { font-size: 12px; color: var(--c-meta); margin-top: 40px; }

/* ===== 商品 詳細 ===== */
.kt-product-single .product-wrap { max-width: 1000px; margin: 0 auto; padding: 40px 20px 80px; }
.kt-product-single .product-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 48px; }
.kt-product-single .product-main-img { border-radius: 10px; overflow: hidden; background: var(--c-bg-soft); aspect-ratio: 1/1; display:flex; align-items:center; justify-content:center; }
.kt-product-single .product-main-img img { width: 100%; height: 100%; object-fit: cover; }
.kt-product-single .product-noimg span { font-size: 13px; color: var(--c-meta); }
.kt-product-single .product-thumbs { display: flex; gap: 8px; margin-top: 10px; }
.kt-product-single .product-thumbs img { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; }
.kt-product-single .product-series { font-size: 13px; color: var(--c-accent-deep); }
.kt-product-single .product-title { font-size: 26px; font-weight: 500; margin: 6px 0 8px; }
.kt-product-single .product-volume { font-size: 14px; color: var(--c-meta); margin: 0 0 20px; }
.kt-product-single .product-price-row { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--c-border-soft); }
.kt-product-single .product-price-amount { font-family: var(--font-en); font-size: 18px; font-weight: 500; }
.kt-product-single .product-cta { margin-top: 28px; }
.kt-product-single .product-cta-note { font-size: 13px; color: var(--c-meta); margin: 0 0 12px; }
.kt-product-single .product-btn { display: inline-block; background: var(--c-accent); color: #fff; padding: 14px 36px; border-radius: 6px; font-weight: 500; }
.kt-product-single .product-section { margin-bottom: 40px; }
.kt-product-single .product-section h2 { font-size: 20px; font-weight: 500; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--c-border); }
.kt-product-single .product-text { font-size: 15px; color: var(--c-sub); }
.kt-product-single .product-related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.kt-product-single .product-related-img { aspect-ratio: 4/3; background: var(--c-bg-soft); border-radius: 8px; overflow:hidden; display:flex; align-items:center; justify-content:center; margin-bottom: 8px; }
.kt-product-single .product-related-img img { width:100%; height:100%; object-fit:cover; }
.kt-product-single .product-related-card h3 { font-size: 14px; font-weight: 500; margin: 0; }

/* ===== 商品 一覧 ===== */
.kt-product-archive { max-width: 1080px; margin: 0 auto; padding: 40px 20px 80px; }
.kt-product-archive .product-arch-header { text-align: center; margin-bottom: 28px; }
.kt-product-archive .product-arch-en { font-family: var(--font-en); font-size: 13px; letter-spacing: .1em; color: var(--c-gold); margin: 0; }
.kt-product-archive .product-arch-header h1 { font-size: 28px; font-weight: 500; margin: 4px 0 8px; }
.kt-product-archive .product-arch-lead { font-size: 14px; color: var(--c-meta); margin: 0; }
.kt-product-archive .product-filter { margin: 28px 0; }
.kt-product-archive .product-filter-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.kt-product-archive .product-filter-label { font-size: 13px; color: var(--c-meta); margin-right: 4px; }
.kt-product-archive .product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 24px; }
.kt-product-archive .product-card-img { aspect-ratio: 1/1; background: var(--c-bg-soft); border-radius: 8px; overflow: hidden; display:flex; align-items:center; justify-content:center; margin-bottom: 10px; }
.kt-product-archive .product-card-img img { width:100%; height:100%; object-fit:cover; }
.kt-product-archive .product-card-img span { font-size:12px; color:var(--c-meta); }
.kt-product-archive .product-card-series { font-size: 12px; color: var(--c-accent-deep); }
.kt-product-archive .product-card-title { font-size: 14px; font-weight: 500; margin: 4px 0; }
.kt-product-archive .product-card-price { font-family: var(--font-en); font-size: 15px; font-weight: 500; }

/* ===== 料金一覧 ===== */
.kt-price-page { max-width: 880px; margin: 0 auto; padding: 40px 20px 80px; }
.kt-price-page .pricepage-header { text-align: center; margin-bottom: 24px; }
.kt-price-page .pricepage-en { font-family: var(--font-en); font-size: 13px; letter-spacing: .1em; color: var(--c-gold); margin: 0; }
.kt-price-page .pricepage-header h1 { font-size: 28px; font-weight: 500; margin: 4px 0 10px; }
.kt-price-page .pricepage-note { font-size: 12px; color: var(--c-meta); margin: 0; }
.kt-price-page .pricepage-nav { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin: 24px 0 40px; }
.kt-price-page .pricepage-navlink { font-size: 14px; padding: 8px 18px; border: 1px solid var(--c-border); border-radius: 20px; color: var(--c-sub); }
.kt-price-page .pricepage-axis { margin-bottom: 56px; }
.kt-price-page .pricepage-axis-title { font-size: 22px; font-weight: 500; margin: 0 0 20px; padding-bottom: 12px; border-bottom: 2px solid var(--c-accent); }
.kt-price-page .pricepage-master { margin-bottom: 28px; }
.kt-price-page .pricepage-master-title { font-size: 17px; font-weight: 500; color: var(--c-text); margin: 0 0 10px; }
.kt-price-page .pricepage-h1 { font-family: var(--font-serif); font-size: 18px; font-weight: 500; color: #fff; background: var(--c-accent); padding: 11px 16px; border-radius: 6px 6px 0 0; margin-top: 20px; }
.kt-price-page .pricepage-h1note { font-size: 12.5px; color: var(--c-meta); background: var(--c-bg-soft); padding: 8px 16px; border-bottom: .5px solid var(--c-border); }
.kt-price-page .pricepage-h2 { font-size: 15px; font-weight: 500; color: var(--c-accent-deep); background: var(--c-accent-soft); border-left: 4px solid var(--c-accent); padding: 8px 14px; margin-top: 14px; }
.kt-price-page .pricepage-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 8px; border-bottom: 1px dashed var(--c-border); }
.kt-price-page .pricepage-name { font-size: 14px; color: var(--c-text); }
.kt-price-page .pricepage-sub { color: var(--c-text); }
.kt-price-page .pricepage-now { font-size: 16px; font-weight: 500; color: var(--c-text); white-space: nowrap; text-align: right; }
.kt-price-page .pricepage-now.is-campaign { color: #C0392B; }
.kt-price-page .pricepage-tax { font-size: 11px; font-weight: 400; color: var(--c-meta); }
.kt-price-page .pricepage-h2note { font-size: 12px; color: var(--c-meta); padding: 8px 8px 0; }
.kt-price-page .pricepage-cta { text-align: center; margin-top: 40px; }
.kt-price-page .pricepage-btn { display: inline-block; background: var(--c-accent); color: #fff; padding: 14px 36px; border-radius: 6px; font-weight: 500; }

/* ===== 施術一覧（3軸タブ） ===== */
.kt-treatment-archive { max-width: 880px; margin: 0 auto; padding: 40px 20px 80px; }
.kt-treatment-archive .trarch-header { text-align: center; margin-bottom: 24px; }
.kt-treatment-archive .trarch-en { font-family: var(--font-en); font-size: 13px; letter-spacing: .1em; color: var(--c-gold); margin: 0; }
.kt-treatment-archive .trarch-header h1 { font-size: 28px; font-weight: 500; margin: 4px 0 0; }
.kt-treatment-archive .trarch-tabs { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-bottom: 24px; }
.kt-treatment-archive .trarch-tab { padding: 12px 24px; border: 1px solid var(--c-border); border-radius: 8px; font-size: 15px; font-weight: 500; color: var(--c-sub); }
.kt-treatment-archive .trarch-tab-gynecology.active { background: #E08AA0; color: #fff; border-color: #E08AA0; }
.kt-treatment-archive .trarch-tab-dermatology.active { background: #7DC9A8; color: #fff; border-color: #7DC9A8; }
.kt-treatment-archive .trarch-tab-cosmetic.active { background: #C9A96E; color: #fff; border-color: #C9A96E; }
.kt-treatment-archive .trarch-concern { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 36px; padding: 16px; background: var(--c-bg-soft); border-radius: 8px; }
.kt-treatment-archive .trarch-concern-label { font-size: 13px; color: var(--c-meta); padding-top: 6px; }
.kt-treatment-archive .trarch-concern-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.kt-treatment-archive .trarch-concern-chip { font-size: 13px; padding: 6px 14px; background: #fff; border: 1px solid var(--c-border); border-radius: 20px; color: var(--c-sub); }
.kt-treatment-archive .trarch-cat { margin-bottom: 32px; }
.kt-treatment-archive .trarch-cat-title { font-size: 18px; font-weight: 500; margin: 0 0 12px; color: var(--c-accent-deep); }
.kt-treatment-archive .trarch-item { display: flex; justify-content: space-between; align-items: center; padding: 16px 14px; border-bottom: 1px solid var(--c-border-soft); }
.kt-treatment-archive .trarch-item-name { font-size: 15px; }
.kt-treatment-archive .trarch-badge { font-size: 11px; padding: 2px 8px; margin-left: 8px; border-radius: 4px; }
.kt-treatment-archive .trarch-badge-new { background: var(--c-gold); color: #fff; font-family: var(--font-en); }
.kt-treatment-archive .trarch-badge-rec { background: var(--c-accent-soft); color: var(--c-accent-deep); }
.kt-treatment-archive .trarch-arrow { color: var(--c-accent); }
.kt-treatment-archive .trarch-cta { text-align: center; margin-top: 40px; }
.kt-treatment-archive .trarch-btn { display: inline-block; background: var(--c-accent); color: #fff; padding: 14px 36px; border-radius: 6px; font-weight: 500; }

/* ===== レスポンシブ ===== */
@media (max-width: 768px) {
    .kt-case-single .case-images-pair { grid-template-columns: 1fr; }
    .kt-product-single .product-head { grid-template-columns: 1fr; gap: 24px; }
    .kt-product-single .product-related-grid { grid-template-columns: 1fr 1fr; }
    .kt-treatment-archive .trarch-tab { flex: 1; text-align: center; padding: 12px 8px; font-size: 14px; }
}
@media (max-width: 480px) {
    .kt-case-archive .case-grid, .kt-product-archive .product-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
    .kt-product-single .product-related-grid { grid-template-columns: 1fr; }
}

/* ===== 各科TOP クロスリンク（症例・コスメ導線） ===== */
.kt-crosslinks {
    --c-accent: #C9A96E; --c-accent-deep: #9C7E47; --c-bg-soft: #F7F8FA; --c-meta: #5A6373;
    --font-en: 'Inter', sans-serif;
    padding: 56px 20px;
}
.kt-crosslinks.kt-gyn  { --c-accent: #E08AA0; --c-accent-deep: #C16A82; }
.kt-crosslinks.kt-derm { --c-accent: #7DC9A8; --c-accent-deep: #56AC85; }
.kt-crosslinks.kt-cos  { --c-accent: #C9A96E; --c-accent-deep: #9C7E47; }
.kt-crosslinks-inner { max-width: 1080px; margin: 0 auto; display: grid; gap: 48px; }
.kt-crosslinks-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 20px; }
.kt-crosslinks-head h2 { font-size: 22px; font-weight: 500; margin: 0; }
.kt-crosslinks-more { font-size: 14px; color: var(--c-accent-deep); }
.kt-crosslinks-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.kt-crosslinks-card { display: block; }
.kt-crosslinks-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 4/3; background: var(--c-bg-soft); border-radius: 8px; overflow: hidden; margin-bottom: 10px; }
.kt-crosslinks-img img { width: 100%; height: 100%; object-fit: cover; }
.kt-crosslinks-title { font-size: 14px; font-weight: 500; }
@media (max-width: 600px) {
    .kt-crosslinks-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}
