@charset "UTF-8";
/* =============================================================
   clean.css — TOPページ セクション（ktop-* 骨組み。inc/top-parts.php が出力）
   front モードで読む。案件では本番TOPのキャプチャに合わせて数値を詰める。
   セクション名 = 関数名（shirokane_top_<name>）= クラス（.ktop-<name>）で統一する。
   ============================================================= */

/* ---------- 共通：見出し・ボタン・内側幅 ----------
   本番の .english-heading 相当：巨大な斜体欧文（Times New Roman・太字）が主役で、
   和文 h2 はその下に小さく添える（本番CSS実測: 英字80px/モバイル40px、1文字目だけアクセント色でさらに大きい）。 */
.ktop-head { text-align: center; margin: 0 0 30px; position: relative; }
.ktop-head__en { display: block; font-family: 'Times New Roman', var(--fs-font-serif), serif; font-size: clamp(34px, 6vw, 64px); font-weight: 700; font-style: italic; letter-spacing: .04em; color: var(--fs-heading); opacity: .85; line-height: 1.1; }
.ktop-head__en::first-letter { color: var(--fs-accent); font-size: 1.15em; }
.ktop-head__jp { font-size: clamp(16px, 2vw, 20px); font-weight: 700; margin-top: 2px; }
.ktop-head--light .ktop-head__jp { color: var(--fs-white); }
.ktop-head--light .ktop-head__en { color: var(--fs-white); opacity: .9; }
.ktop-head--light .ktop-head__en::first-letter { color: var(--fs-accent); }
.ktop-btnwrap { text-align: center; margin-top: 32px; }
.ktop-btn { display: inline-flex; align-items: center; gap: 12px; padding: 14px 32px; background: var(--fs-primary); color: var(--fs-white); font-weight: 600; font-size: 15px; transition: filter .2s; }
.ktop-btn:hover { filter: brightness(1.1); }
.ktop-btn__arw { font-family: var(--fs-font-en); }
[class$="__inner"].ktop-inner, .ktop-news__inner, .ktop-concept__inner, .ktop-medical__inner, .ktop-access__inner, .ktop-column__inner, .ktop-case__inner, .ktop-cta__inner { max-width: var(--fs-wrap); margin: 0 auto; padding: 0 var(--fs-gutter); }
section[class^="ktop-"] { padding: 70px 0; }

/* ---------- 0 ヒーロー（スライダー。.ktop-hero__slide を fs-theme.js が5秒毎にフェード切替） ---------- */
.ktop-hero { position: relative; padding: 0; overflow: clip; }
.ktop-hero__pic, .ktop-hero__img { display: block; width: 100%; height: auto; }
.ktop-hero__slide { position: relative; opacity: 0; height: 0; overflow: hidden; transition: opacity 1s ease; }
.ktop-hero__slide.is-active { position: relative; opacity: 1; height: auto; }
.ktop-hero__catch { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); text-align: center; color: var(--fs-white); text-shadow: 0 2px 12px rgba(0,0,0,.35); width: 90%; }
.ktop-hero__lead { font-size: clamp(14px, 1.6vw, 18px); letter-spacing: .1em; }
.ktop-hero__main { font-family: var(--fs-font-serif); font-size: clamp(24px, 4vw, 44px); line-height: 1.5; letter-spacing: .08em; }

/* ---------- 1b SCHEDULE + NEWS（2カラム。本番 .clinic-info/.news-info＝白カード＋影） ---------- */
.ktop-infosec { background: var(--fs-accent-soft); }
.ktop-infosec__inner { max-width: var(--fs-wrap); margin: 0 auto; padding: 0 var(--fs-gutter); display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch; }
.ktop-infosec__col { background: var(--fs-white); padding: 24px; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,.1); }
.ktop-infosec .fs-hours { width: 100%; max-width: none; background: rgba(123,100,83,.5); color: var(--fs-white); }
.ktop-infosec .fs-hours th, .ktop-infosec .fs-hours td { border-color: var(--fs-white); color: var(--fs-white); }
.ktop-infosec .fs-hours thead th, .ktop-infosec .fs-hours tbody th { background: transparent; }
.ktop-infosec .fs-hours td.is-off { color: rgba(255,255,255,.6); }
.ktop-infosec__notes { margin-top: 14px; font-size: 13px; color: var(--fs-muted); line-height: 1.8; }
.ktop-infosec__notes li { padding-left: 1em; text-indent: -1em; }
.ktop-infosec__news { border-top: 1px solid var(--fs-line); }
.ktop-infosec__news li { padding: 12px 6px; border-bottom: 1px solid var(--fs-line); font-size: 14px; }
.ktop-infosec__news time { font-family: var(--fs-font-en); color: var(--fs-accent); margin-right: 16px; }
.ktop-infosec .ktop-btn { background: transparent; color: #7B6453; border: 2px solid #7B6453; font-weight: 700; }
.ktop-infosec .ktop-btn:hover { background: #7B6453; color: var(--fs-white); }

/* ---------- 1c PROMOTIONAL VIDEO（本番 .youtube-block＝ベージュのグラデーション帯） ---------- */
.ktop-video { background: linear-gradient(135deg, #fbf8f3, #f0eada); }
.ktop-video__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; max-width: var(--fs-wrap); margin: 0 auto; padding: 0 var(--fs-gutter); }
.ktop-video__item { background: var(--fs-white); border-radius: 10px; padding: 10px; box-shadow: 0 4px 6px rgba(0,0,0,.08); }
.ktop-video__frame { position: relative; aspect-ratio: 16/9; border-radius: 6px; overflow: hidden; }
.ktop-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ktop-video__ttl { text-align: center; margin: 10px 0 2px; padding: 8px; font-size: 14px; background: var(--fs-primary); color: var(--fs-white); border-radius: 4px; }

/* ---------- 3 REASON（画像オーバーレイ6カード） ---------- */
.ktop-reason { background: var(--fs-primary-soft); }
.ktop-reason__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: var(--fs-wrap); margin: 0 auto; padding: 0 var(--fs-gutter); }
.ktop-reason__card { display: block; background: var(--fs-white); border: 1px solid var(--fs-line); transition: transform .2s; }
.ktop-reason__card:hover { transform: translateY(-4px); }
.ktop-reason__figure { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; }
.ktop-reason__figure img { width: 100%; height: 100%; object-fit: cover; }
.ktop-reason__overlay { position: absolute; inset: auto 0 0 0; padding: 14px 16px; background: rgba(123,100,83,.72); color: var(--fs-white); font-size: 16px; font-weight: 600; }
.ktop-reason__body { display: block; padding: 16px 18px; font-size: 13px; line-height: 1.9; color: var(--fs-text); }

/* ---------- 4 保証会社バナー帯 ---------- */
.ktop-guident { background: var(--fs-heading) url('../img/top/guident-bg.webp') center/cover; color: var(--fs-white); text-align: center; padding: 50px 0; }
.ktop-guident__inner { max-width: var(--fs-wrap-narrow); margin: 0 auto; padding: 0 var(--fs-gutter); }
.ktop-guident__ttl { font-size: 20px; margin-bottom: 16px; }
.ktop-guident p { font-size: 14px; line-height: 1.9; opacity: .9; }
.ktop-guident__link { display: inline-block; margin-top: 16px; color: var(--fs-accent); font-weight: 600; }

/* ---------- 5 PICKUP（注目の治療3つ。交互レイアウト。本番 .implant-block は枠線＋背景画像＋丸バッジ） ---------- */
.ktop-pickup__block { position: relative; max-width: var(--fs-wrap); margin: 0 auto 40px; padding: 40px var(--fs-gutter) 20px; border: 1px solid var(--fs-line); display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; background-color: var(--fs-accent-soft); background-image: var(--ktop-pickup-bg, none); background-size: cover; background-position: center; }
.ktop-pickup__block.is-rev { direction: rtl; }
.ktop-pickup__block.is-rev > * { direction: ltr; }
.ktop-pickup__text { position: relative; }
.ktop-pickup__badge { position: absolute; top: -15px; left: -15px; display: block; width: auto; padding: 20px; background: var(--fs-pickup-light); color: var(--fs-white); font-size: 16px; font-weight: 700; border-radius: 50%; box-sizing: border-box; text-align: center; line-height: 1.3; z-index: 1; }
.ktop-pickup__badge.is-tan { background: var(--fs-pickup-tan); }
.ktop-pickup__ttl { font-family: var(--fs-font-serif); font-size: clamp(22px, 2.6vw, 28px); color: var(--ktop-pickup-color, var(--fs-pickup)); font-weight: 700; margin-top: 50px; margin-bottom: 20px; }
.ktop-pickup__lead { display: inline-block; background: var(--ktop-pickup-color, var(--fs-pickup)); color: var(--fs-white); font-weight: 700; font-family: var(--fs-font-serif); padding: 10px; margin-bottom: 20px; }
.ktop-pickup__body { font-size: 14px; line-height: 1.9; margin-bottom: 16px; }
.ktop-pickup__list { margin-bottom: 20px; }
.ktop-pickup__list li { position: relative; padding-left: 1.4em; font-size: 14px; line-height: 2; font-weight: 700; color: var(--ktop-pickup-color, var(--fs-pickup)); }
.ktop-pickup__list li::before { content: '◇'; position: absolute; left: 0; color: var(--ktop-pickup-color, var(--fs-pickup)); font-weight: 700; }
.ktop-pickup__list li span { background: var(--ktop-pickup-tint, transparent); padding: 0 4px; display: inline-block; font-size: 15px; }
.ktop-pickup__footer { text-align: right; margin-top: 20px; }
.ktop-pickup__btn { display: inline-block; text-decoration: none; font-weight: 700; color: var(--ktop-pickup-color, var(--fs-pickup)); border: 2px solid var(--ktop-pickup-color, var(--fs-pickup)); padding: 8px 16px; border-radius: 4px; margin-left: 10px; transition: background-color .3s, color .3s; }
.ktop-pickup__btn:hover { background: var(--ktop-pickup-color, var(--fs-pickup)); color: var(--fs-white); }
.ktop-pickup__btn--text { border: 0; padding: 8px 4px; }
.ktop-pickup__figure img { width: 95%; border-radius: 10px; aspect-ratio: 4/3; object-fit: cover; }

/* ---------- 6 PROBLEM（お悩み別メニュー：左に写真、右にメニュー3列） ---------- */
.ktop-problem__row { display: flex; justify-content: space-between; align-items: center; max-width: var(--fs-wrap); margin: 0 auto; }
.ktop-problem__figure { flex: 1; min-height: 400px; background: var(--fs-primary-soft) var(--fs-problem-bg) center/cover; }
.ktop-problem__grid { flex: 2; background: #D6C3A6; color: #4F3E28; padding: 30px; box-sizing: border-box; }
.ktop-problem__col { margin-bottom: 30px; }
.ktop-problem__col:last-child { margin-bottom: 0; }
.ktop-problem__header { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; width: 100%; }
.ktop-problem__en { display: inline-block; margin: 0; font-family: 'Times New Roman', serif; font-size: 20px; color: #8B6940; border-bottom: 2px solid #8B6940; white-space: nowrap; }
.ktop-problem__jp { font-size: 16px; margin: 0; line-height: 1.6; color: #4F3E28; font-family: var(--fs-font-serif); white-space: nowrap; }
.ktop-problem__jp::before { content: "－"; margin-right: 5px; }
.ktop-problem__jp::after { content: "－"; margin-left: 5px; }
.ktop-problem__list { list-style: none; padding-left: 0; margin: 20px 0 0; column-count: 2; column-gap: 20px; }
.ktop-problem__list li { font-size: 16px; margin-bottom: 8px; }
.ktop-problem__list li::after { content: " ⇨"; color: var(--fs-white); }
.ktop-problem__list a { color: var(--fs-white); text-decoration: none; font-weight: 400; }
.ktop-problem__list a:hover { color: #8B6940; text-decoration: underline; }

/* ---------- 7 FEATURE（番号1-2-3＋画像／専門医） ---------- */
.ktop-feature__cols { display: flex; justify-content: space-between; align-items: center; max-width: var(--fs-wrap); margin: 0 auto 50px; padding: 20px; background-color: #9c948b2c; box-sizing: border-box; }
.ktop-feature__list { width: 50%; margin: 0; }
.ktop-feature__list a { position: relative; display: flex; align-items: center; margin-bottom: 15px; margin-right: 25px; color: #313131; background: var(--fs-white); text-decoration: none; transition: .3s; }
.ktop-feature__list a:nth-of-type(2n) { background: #d8cec4; }
.ktop-feature__list a:hover { padding-left: 30px; color: var(--fs-white); background: linear-gradient(to right, #c5c4c4 0%, #808080 100%); }
.ktop-feature__num { position: relative; display: block; width: 78px; margin-left: 30px; font-size: 25px; font-family: var(--fs-font-serif); }
.ktop-feature__num::after { content: ''; display: block; position: absolute; width: 16px; height: 1px; background-color: #666; top: .5em; left: .6em; transform: rotate(-54deg); }
.ktop-feature__list a:hover .ktop-feature__num::after { background-color: var(--fs-white); }
.ktop-feature__txt { flex: 1; font-size: 20px; padding: 1em 0; line-height: 1.6; }
.ktop-feature__txt em { font-style: normal; display: inline-block; border-bottom: 1px solid #ecc196; }
.ktop-feature__figure { width: 50%; display: flex; justify-content: center; align-items: center; }
.ktop-feature__figure img { max-width: 100%; height: auto; box-shadow: 0 4px 8px rgba(0,0,0,.1); }
/* 本番 .specialist-section：グレー地に白い斜めカットカードを重ねる構成 */
.ktop-feature__specialist { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 50vh; background: #f8f8f8; padding: 40px; gap: 0; }
.ktop-feature__specialist-text { position: relative; z-index: 1; flex: 1; max-width: 50%; padding: 20px; background: var(--fs-white); clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); }
.ktop-feature__specialist-text h3 { font-family: var(--fs-font-serif); font-size: 36px; margin-bottom: 20px; }
.ktop-feature__specialist-text p { font-size: 18px; line-height: 1.6; margin-bottom: 15px; }
.ktop-feature__specialist-btn { display: inline-block; margin-top: 20px; padding: 12px 30px; background: linear-gradient(135deg, #877C70, #A28F7B); color: var(--fs-white); font-size: 18px; text-decoration: none; border-radius: 10px; box-shadow: 0 8px 15px rgba(0,0,0,.1); transition: all .3s ease; }
.ktop-feature__specialist-btn:hover { background: linear-gradient(135deg, #A28F7B, #877C70); box-shadow: 0 15px 20px rgba(0,0,0,.2); transform: translateY(-3px); }
.ktop-feature__specialist-figure { flex: 1; max-width: 50%; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%); }
.ktop-feature__specialist-figure-bg { position: absolute; inset: 0; background: var(--fs-white); clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%); z-index: -1; }
.ktop-feature__specialist-figure img { max-width: 100%; height: auto; }

/* ---------- 8 CASE（症例写真：ビフォーアフター3カード。本番 .cases-container＝クリーム地） ---------- */
.ktop-case { background: #F6F2E7; }
.ktop-case__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; max-width: var(--fs-wrap); margin: 0 auto; padding: 0 var(--fs-gutter); }
.ktop-case__card { background: var(--fs-white); border-radius: 8px; box-shadow: 0 10px 20px rgba(0,0,0,.1); padding: 20px; text-align: center; }
.ktop-case__label { font-family: var(--fs-font-serif); font-size: 20px; color: #887D71; font-weight: 700; margin-bottom: 14px; background: none; padding: 0; }
.ktop-case__imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.ktop-case__img { position: relative; }
.ktop-case__img img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.ktop-case__img span { position: absolute; left: 6px; bottom: 6px; background: rgba(0,0,0,.6); color: var(--fs-white); font-size: 11px; padding: 2px 8px; text-transform: uppercase; }
.ktop-case__desc { font-size: 13px; line-height: 1.8; margin-bottom: 16px; }
.ktop-case .ktop-btn { background: #887D71; color: var(--fs-white); padding: 10px 20px; border-radius: 5px; font-size: 14px; }
.ktop-case .ktop-btn:hover { background: #A89581; filter: none; }

/* ---------- 9 DOCTOR（院長紹介） ---------- */
.ktop-doctor__row { display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: 32px; align-items: center; max-width: var(--fs-wrap); margin: 0 auto; padding: 0 var(--fs-gutter); }
.ktop-doctor__profile { text-align: center; }
.ktop-doctor__name { font-family: var(--fs-font-serif); font-size: 26px; color: var(--fs-heading); }
.ktop-doctor__en { font-family: var(--fs-font-en); color: var(--fs-accent); letter-spacing: .1em; margin: 4px 0 18px; }
.ktop-doctor__list { text-align: left; display: inline-block; }
.ktop-doctor__list li { font-size: 13px; line-height: 2; border-bottom: 1px dashed var(--fs-line); padding: 2px 0; }
.ktop-doctor__figure img { width: 100%; }

/* ---------- 10 PAYMENT ---------- */
.ktop-payment { background: var(--fs-primary-soft); }
.ktop-payment__row { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; max-width: var(--fs-wrap); margin: 0 auto; padding: 0 var(--fs-gutter); }
.ktop-payment__text h3 { font-size: 18px; margin-bottom: 14px; }
.ktop-payment__text p { font-size: 14px; line-height: 1.9; margin-bottom: 10px; }
.ktop-payment__icons img { width: 100%; }
.ktop-payment .ktop-btn { background: transparent; color: #8B6940; border: 2px solid #8B6940; padding: 10px 20px; border-radius: 5px; font-size: 15px; }
.ktop-payment .ktop-btn:hover { background: #8B6940; color: var(--fs-white); filter: none; }

/* ---------- 11 提携バナー帯 ---------- */
.ktop-banners { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; max-width: var(--fs-wrap); margin: 0 auto; padding: 30px var(--fs-gutter); }
.ktop-banners img { width: 100%; }

/* ---------- 1 お知らせ（＋休診カレンダー） ---------- */
.ktop-news__inner.has-cal { display: grid; grid-template-columns: 1fr 360px; gap: 48px; align-items: start; }
.ktop-news__list { border-top: 1px solid var(--fs-line); }
.ktop-news__item { border-bottom: 1px solid var(--fs-line); }
.ktop-news__item a, .ktop-news__item > span { display: flex; gap: 20px; align-items: baseline; padding: 14px 6px; flex-wrap: wrap; }
.ktop-news__date { font-family: var(--fs-font-en); color: var(--fs-accent); font-size: 14px; min-width: 96px; }
.ktop-news__ttl { flex: 1; font-size: 15px; }
.ktop-news__item a:hover .ktop-news__ttl { color: var(--fs-primary); }

/* ---------- 2 当院の特徴（カード） ---------- */
.ktop-concept { background: var(--fs-primary-soft); }
.ktop-concept__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.ktop-concept__card { background: var(--fs-white); border: 1px solid var(--fs-line); }
.ktop-concept__figure { aspect-ratio: 3 / 2; overflow: hidden; margin: 0; }
.ktop-concept__figure img { width: 100%; height: 100%; object-fit: cover; }
.ktop-concept__ttl { font-size: 18px; padding: 18px 20px 8px; }
.ktop-concept__body { font-size: 14px; line-height: 1.9; padding: 0 20px 22px; }

/* ---------- 3 診療案内（アイコングリッド） ---------- */
.ktop-medical__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.ktop-medical__card a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 160px; padding: 24px 12px; background: var(--fs-primary); color: var(--fs-white); text-align: center; transition: filter .2s; }
.ktop-medical__card:nth-child(4n+2) a, .ktop-medical__card:nth-child(4n+4) a { background: var(--fs-accent); }
.ktop-medical__card a:hover { filter: brightness(1.1); }
.ktop-medical__icon { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; }
.ktop-medical__icon img { max-width: 100%; max-height: 100%; }
.ktop-medical__name { font-weight: 600; font-size: 15px; }

/* ---------- 4 アクセス ---------- */
.ktop-access__cols { display: grid; grid-template-columns: 1fr 1.15fr; gap: 40px; align-items: start; }
.ktop-access__name { font-family: var(--fs-font-serif); font-size: 22px; color: var(--fs-heading); margin-bottom: 10px; }
.ktop-access__addr, .ktop-access__near { font-size: 15px; line-height: 1.9; margin-bottom: 8px; }
.ktop-access__tel a { font-size: 24px; font-weight: 700; color: var(--fs-primary); font-family: var(--fs-font-en); }
.ktop-access__hours { margin-top: 16px; }
.ktop-access__map { border: 1px solid var(--fs-line); }
.ktop-access__map iframe { display: block; width: 100%; }

/* ---------- 5 コラム（カード） ---------- */
.ktop-column__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.ktop-column__card { display: block; }
.ktop-column__figure { aspect-ratio: 3 / 2; overflow: hidden; background: var(--fs-line-2); margin: 0 0 12px; }
.ktop-column__figure img { width: 100%; height: 100%; object-fit: cover; }
.ktop-column__noimg { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--fs-muted); font-family: var(--fs-font-en); font-size: 13px; }
.ktop-column__date { font-family: var(--fs-font-en); font-size: 13px; color: var(--fs-accent); }
.ktop-column__ttl { font-size: 16px; line-height: 1.6; margin-top: 4px; }

/* ---------- 6 症例（case-grid は content.css と同定義） ---------- */
.ktop-case .case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }

/* ---------- 7 予約・問い合わせ帯 ---------- */
.ktop-cta { background: var(--fs-primary); }
.ktop-cta .kpage-callout__btns { justify-content: center; }
.ktop-cta .kpage-callout__btns a { background: var(--fs-white); color: var(--fs-primary); }
.ktop-cta .kpage-callout__btns a.is-line { background: var(--fs-line-color); color: var(--fs-white); }

/* ---------- レスポンシブ ---------- */
@media (max-width: 900px) {
  .ktop-pickup__block { background-image: none; }
  .ktop-news__inner.has-cal { grid-template-columns: 1fr; }
  .ktop-concept__grid, .ktop-column__grid, .ktop-case .case-grid { grid-template-columns: 1fr 1fr; }
  .ktop-medical__grid { grid-template-columns: repeat(2, 1fr); }
  .ktop-medical__card:nth-child(4n+2) a, .ktop-medical__card:nth-child(4n+4) a { background: var(--fs-primary); }
  .ktop-medical__card:nth-child(4n+2) a, .ktop-medical__card:nth-child(4n+3) a { background: var(--fs-accent); }
  .ktop-access__cols { grid-template-columns: 1fr; }
  .ktop-infosec__inner { grid-template-columns: 1fr; gap: 32px; }
  .ktop-video__grid { grid-template-columns: 1fr; }
  .ktop-reason__grid { grid-template-columns: 1fr 1fr; }
  .ktop-pickup__block, .ktop-pickup__block.is-rev { grid-template-columns: 1fr; direction: ltr; }
  .ktop-problem__row { flex-direction: column; padding: 10px; }
  .ktop-problem__figure { display: none; }
  .ktop-problem__grid { width: 100%; padding: 20px; box-sizing: border-box; }
  .ktop-problem__header { flex-direction: column; align-items: flex-start; }
  .ktop-problem__list { column-count: 1; }
  .ktop-problem__en { font-size: 18px; }
  .ktop-problem__jp { font-size: 15px; white-space: normal; }
  .ktop-feature__cols { flex-direction: column; padding: 10px; }
  .ktop-feature__list, .ktop-feature__figure { width: 100%; margin-bottom: 20px; padding: 0; box-sizing: border-box; }
  .ktop-feature__list a { margin-right: 0; padding: 4px 16px 4px 0; }
  .ktop-feature__list a:hover { padding-left: 10px; }
  .ktop-feature__num { width: 48px; margin-left: 16px; font-size: 20px; flex-shrink: 0; }
  .ktop-feature__num::after { top: .4em; left: .55em; }
  .ktop-feature__txt { font-size: 15px; line-height: 1.7; padding: .8em 0; }
  .ktop-feature__specialist { flex-direction: column; padding: 20px; min-height: 0; }
  .ktop-feature__specialist-text { max-width: 100%; clip-path: none; text-align: center; margin-bottom: 20px; padding: 0; }
  .ktop-feature__specialist-figure { max-width: 100%; clip-path: none; }
  .ktop-feature__specialist-figure-bg { display: none; }
  .ktop-feature__specialist-btn { font-size: 16px; margin: 20px auto 0; }
  .ktop-case__grid { grid-template-columns: 1fr; }
  .ktop-case__imgs { grid-template-columns: 1fr; }
  .ktop-doctor__row { grid-template-columns: 1fr; text-align: center; }
  .ktop-doctor__figure { margin: 0 auto; }
  .ktop-doctor__figure img { width: 55%; max-width: 220px; margin: 0 auto; display: block; border-radius: 6px; }
  .ktop-payment__row { grid-template-columns: 1fr; }
  .ktop-banners { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
  section[class^="ktop-"] { padding: 44px 0; }
  .ktop-concept__grid, .ktop-column__grid, .ktop-case .case-grid { grid-template-columns: 1fr; }
  .ktop-news__date { min-width: 0; }
  .ktop-reason__grid { grid-template-columns: 1fr; }
}
