@charset "UTF-8";
/* =============================================================
   clean.css — TOPページ セクション（ktop-*。inc/top-parts.php が出力）
   front モードで読む。数値は本番TOPの実測（PC 1366px / SP 390px）。
   セクション名 = 関数名（otani_top_<name>）= クラス（.ktop-<name>）で統一する。
   PC レイアウトは 992px 以上、それ未満は1列（本番 Brizy の PC/タブレット境界に合わせる）。
   ============================================================= */

/* ---------- 共通：内側幅・見出し ---------- */
.fs-mode-front .fs-main { color: #000; }
.fs-mode-front .fs-main > section { position: relative; overflow-x: clip; }
.ktop-wrap { position: relative; width: min(1170px, calc(100% - 30px)); margin: 0 auto; }
.ktop-head { text-align: center; }
.ktop-head__en { font-size: 16px; line-height: 1.9; color: var(--fs-primary-text); white-space: pre-wrap; }
.ktop-head__jp { font-size: 31px; font-weight: 700; line-height: 1.9; }

/* ---------- 1 メインビジュアル ---------- */
.ktop-hero picture, .ktop-hero__img { display: block; width: 100%; height: auto; }

/* ---------- 2 / 17 お知らせ・コラム ---------- */
.ktop-posts__inner { display: grid; grid-template-columns: 502px 1fr; padding: 47px 30px 47px 0; }
.ktop-posts--column .ktop-posts__inner { grid-template-columns: 539px 1fr; padding-top: 93px; padding-bottom: 97px; }
.ktop-posts__side { padding: 2px 0 0 30px; }
.ktop-posts__head { display: flex; gap: 30px; font-size: 25px; font-weight: 700; line-height: 1.9; color: var(--fs-heading); }
.ktop-posts__en { flex: 0 0 141px; }
.ktop-posts--column .ktop-posts__en { flex-basis: 118px; }
.ktop-posts__jp { font-family: var(--fs-font-serif); }
.ktop-posts__side .fs-linkbtn-wrap { justify-content: flex-start; margin: 75px 0 0 135px; }
.ktop-posts--column .ktop-posts__side .fs-linkbtn-wrap { margin-left: 88px; }
.ktop-posts__item { border-bottom: 2px solid rgba(149, 134, 114, .21); }
.ktop-posts__item a { display: grid; grid-template-columns: 242px 1fr 82px; align-items: center; min-height: 90px; padding: 22px 12px 22px 0; }
.ktop-posts--column .ktop-posts__item a { grid-template-columns: 230px 1fr 82px; padding-right: 9px; }
.ktop-posts__date { display: flex; align-items: center; gap: 10px; padding-left: 27px; font-size: 16px; line-height: 1.3; color: var(--fs-heading); }
.ktop-posts--column .ktop-posts__date { padding-left: 21px; color: rgba(64, 31, 0, .8); --ktop-date-ico: var(--fs-accent); }
/* 日付の前のカレンダー印（CSS で描く小さな図形） */
.ktop-posts__date::before { content: ""; flex: 0 0 14px; width: 14px; height: 13px; margin-top: 2px; border-radius: 2px; background: var(--ktop-date-ico, var(--fs-primary)); -webkit-mask: linear-gradient(#000, #000) 0 3px / 100% 100% no-repeat, linear-gradient(#000, #000) 3px 0 / 2px 3px no-repeat, linear-gradient(#000, #000) 9px 0 / 2px 3px no-repeat; mask: linear-gradient(#000, #000) 0 3px / 100% 100% no-repeat, linear-gradient(#000, #000) 3px 0 / 2px 3px no-repeat, linear-gradient(#000, #000) 9px 0 / 2px 3px no-repeat; }
.ktop-posts__ttl { font-size: 16px; line-height: 1.9; padding-right: 20px; }
.ktop-posts__arw { justify-self: center; width: 20px; height: 20px; color: var(--fs-primary-text); }
.ktop-posts__item a:hover .ktop-posts__ttl { color: var(--fs-primary-text); }

/* ---------- 3 バナー ---------- */
.ktop-banners { padding: 100px 0; }
.ktop-banners__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 15px; }
.ktop-banners img { display: block; width: 100%; height: auto; }
.ktop-banners a:hover { opacity: .85; }

/* ---------- 4 Concept（流れる院内写真＋見出しボックス） ---------- */
.ktop-concept { height: 419px; padding-top: 43px; background: #e2d9c8; }
.ktop-loop { display: flex; height: 200px; overflow: hidden; }
.ktop-loop ul { display: flex; flex: 0 0 auto; }
.ktop-loop li { flex: 0 0 300px; width: 300px; height: 200px; }
.ktop-loop img { display: block; width: 300px; height: 200px; object-fit: cover; }
.ktop-loop ul:first-child { animation: ktop-loop1 150s -75s linear infinite; }
.ktop-loop ul:last-child { animation: ktop-loop2 150s linear infinite; }
@keyframes ktop-loop1 { from { transform: translateX(100%); } to { transform: translateX(-100%); } }
@keyframes ktop-loop2 { from { transform: translateX(0); } to { transform: translateX(-200%); } }
@media (prefers-reduced-motion: reduce) { .ktop-loop ul { animation-play-state: paused; } }
.ktop-concept__box { position: absolute; top: 79px; left: calc(50% - 429px); width: 958px; height: 196px; padding-top: 30px; background: rgba(255, 255, 255, .6); text-align: center; }
.ktop-concept__en { font-size: 50px; line-height: 95px; color: var(--fs-heading); background: linear-gradient(rgba(189, 216, 115, .45), rgba(189, 216, 115, .45)) center 60px / 334px 20px no-repeat; }
.ktop-concept__jp { margin-top: -5px; font-size: 27px; font-weight: 700; line-height: 1.9; color: #000; }

/* ---------- 5 / 6 POINT ---------- */
.ktop-point { background: #e2d9c8; }
.ktop-point--a { padding: 15px 0 75px; }
.ktop-point--b { padding: 75px 0 126px; }
.ktop-point__box { position: relative; min-height: 418px; padding: 25px 0; background: var(--fs-white); }
.ktop-point--a .ktop-point__box { border-radius: 50px 0 0 50px; }
.ktop-point--b .ktop-point__box { border-radius: 0 50px 50px 0; }
.ktop-point__body { width: 505px; margin-left: 65px; }
.ktop-point--b .ktop-point__body { width: 545px; margin-left: 600px; }
.ktop-point__label { font-size: 27px; font-weight: 700; line-height: 1.9; color: var(--fs-primary-text); }
.ktop-point__ttl { margin-top: 20px; font-size: 25px; font-weight: 700; line-height: 1.9; }
.ktop-point__text { margin: 20px 0; font-size: 16px; line-height: 1.9; }
.ktop-point__photo { position: absolute; border-radius: 30px; }
.ktop-point__photo img { display: block; width: 100%; height: auto; border-radius: 30px; }
.ktop-point--a .ktop-point__photo { top: -30px; left: 666px; width: 566px; padding: 13px 20px 27px; background: rgba(189, 216, 115, .63); }
.ktop-point--b .ktop-point__photo { top: -50px; left: -60px; width: 585px; padding: 37px 20px 38px; background: rgba(189, 216, 115, .69); }

/* ---------- 7 診療案内 ---------- */
.ktop-info { padding: 35px 0 115px; background: rgba(226, 217, 200, .3); }
.ktop-info__grid { display: grid; grid-template-columns: repeat(4, 1fr); row-gap: 31px; margin-top: 15px; }
.ktop-info__grid a { display: block; text-align: center; font-size: 18px; line-height: 1.6; color: #000; }
/* アイコン画像は青い四角の JPG。本番と同じく丸く切り抜き、色相を回して緑にし、細い輪郭を付ける */
.ktop-info__icon { display: block; width: 132px; height: 132px; margin: 0 auto 10px; filter: drop-shadow(0 0 1px rgb(13, 65, 126)); }
.ktop-info__icon img { display: block; width: 100%; height: 100%; border-radius: 50%; filter: hue-rotate(291deg); }
.ktop-info__grid a:hover { color: var(--fs-primary-text); }
.ktop-info__grid a:hover img { opacity: .8; }
/* セクション下端の波（次の矯正歯科セクションの黄緑へつなぐ。3枚重ね） */
.ktop-info::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 157px; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 240' preserveAspectRatio='none'%3E%3Cg fill='rgba(189,216,115,.29)'%3E%3Cpath opacity='.2' d='M0 110C160 48 320 17 480 17c153 0 400 31 620 54 133-22 263-36 350-37 162 2 319 21 470 58v148H0z'/%3E%3Cpath opacity='.3' d='M0 92c95 22 190 30 287 23C434 105 970 0 1210 0c160 0 320 17 480 50 100 18 180 32 230 42v148H0z'/%3E%3Cpath d='M0 92c160 39 320 59 480 59 240 1 720-118 960-117 160 0 320 20 480 58v148H0z'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat; }
.ktop-info .ktop-wrap { z-index: 1; }

/* ---------- 横長カード共通（8 矯正歯科・9 入れ歯） ---------- */
.ktop-card__head { display: flex; align-items: center; gap: 30px; padding: 0 0 32px 15px; border-bottom: 1px solid rgba(34, 172, 56, .75); }
.ktop-card__label { flex: 0 0 var(--lw, auto); font-size: 27px; font-weight: 700; line-height: 1.9; color: var(--fs-primary-text); }
.ktop-card__ttl { font-size: 25px; font-weight: 700; line-height: 1.9; }
.ktop-card { display: flex; width: 1370px; margin-top: 50px; padding: 25px; background: rgba(255, 255, 255, .6); }
.ktop-card--r { padding-left: 65px; border-radius: 60px 0 0 60px; }
.ktop-card--l { flex-direction: row-reverse; margin-left: -200px; border-radius: 0 60px 60px 0; }
.ktop-card__body { flex: 0 0 740px; padding-top: 5px; }
.ktop-card--r .ktop-card__body { margin-right: 30px; }
.ktop-card--l .ktop-card__body { margin-left: 70px; }
.ktop-card__text { margin: 27px 0 20px; font-size: 16px; line-height: 1.9; }
.ktop-card.is-small .ktop-card__text { font-size: 15px; }
.ktop-card__photo { flex: 0 0 510px; }
.ktop-card__photo img { display: block; width: 100%; height: auto; border-radius: 30px; }

/* ---------- 8 当院の矯正歯科 ---------- */
.ktop-ortho { padding: 20px 0 75px; background: rgba(189, 216, 115, .3); }
.ktop-problem { margin-top: 15px; padding: 30px 25px 25px; border-radius: 40px; background: rgba(255, 255, 255, .6); }
.ktop-problem__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; padding: 32px 15px 25px; }
.ktop-problem__grid p { font-size: 16px; line-height: 1.9; }
.ktop-problem__grid img { display: block; width: 309px; max-width: 100%; height: auto; margin: 20px auto 0; }

/* ---------- 9 入れ歯 ---------- */
.ktop-denture { padding: 80px 0 75px; }
.ktop-denture .ktop-head + .ktop-card { margin-top: 15px; }
.ktop-card.is-beige { background: rgba(226, 217, 200, .7); --fs-primary-text: #136d22; } /* この地の上では #157a26 が 4.3:1 で足りない */
.ktop-card.is-beige .ktop-card__body { flex-basis: 770px; padding-top: 20px; }
.ktop-card.is-list { padding-right: 30px; }
.ktop-card.is-list .ktop-card__body { margin-left: 35px; }
.ktop-card.is-list .ktop-card__text { padding-left: 100px; }
.ktop-card.is-policy { padding-left: 30px; }
.ktop-card.is-policy .ktop-card__body { margin-right: 35px; }
.ktop-card.is-policy .ktop-card__text { margin: 47px 20px 40px; }
.ktop-card.is-policy .fs-linkbtn-wrap { margin-bottom: 15px; }

/* ---------- 10 大谷歯科医院の特徴 ---------- */
.ktop-trait { padding: 93px 0 105px; background: linear-gradient(90deg, rgba(226, 217, 200, .37) 0%, rgba(255, 255, 255, .79) 33%), var(--ktop-trait-bg) center / cover no-repeat; }
.ktop-trait__item { display: grid; grid-template-columns: 129px 697px; column-gap: 30px; margin: 79px 0 0 157px; }
.ktop-trait .ktop-head + .ktop-trait__item { margin-top: 45px; }
.ktop-trait__no { font-size: 25px; font-weight: 700; line-height: 1.9; color: var(--fs-heading); }
.ktop-trait__ttl { font-size: 22px; font-weight: 400; line-height: 1.9; color: var(--fs-primary-text); }
.ktop-trait__ttl.has-line { padding-bottom: 27px; border-bottom: 1px solid rgba(64, 31, 0, .75); }
.ktop-trait__text { margin: 20px 0; font-size: 15px; line-height: 1.9; text-align: justify; }
.ktop-trait__ttl.has-line + .ktop-trait__text { margin-top: 27px; }

/* ---------- 11 院長挨拶 ---------- */
.ktop-greeting { padding: 37px 0 100px; background: rgba(226, 217, 200, .5); }
.ktop-greeting__name { width: 565px; max-width: 100%; margin: 25px auto 0; padding: 15px; border-radius: 30px 0 30px 0; background: rgba(189, 216, 115, .6); text-align: center; color: var(--fs-on-accent); }
.ktop-greeting__en { font-family: var(--fs-font-en); font-size: 15px; line-height: 1.9; letter-spacing: 2.9px; }
.ktop-greeting__jp { margin-top: 10px; font-family: var(--fs-font-serif); font-size: 25px; font-weight: 700; line-height: 1.9; }
.ktop-greeting__catch { margin: 35px 0 20px; font-family: var(--fs-font-serif); font-size: 25px; font-weight: 700; line-height: 1.9; text-align: center; color: var(--fs-heading); }
.ktop-greeting__lead { padding: 0 25px; font-size: 16px; line-height: 1.9; text-align: center; }
.ktop-greeting__cols { display: grid; grid-template-columns: 530px 424px; gap: 83px; margin: 24px 0 60px 40px; }
.ktop-greeting__career p { font-size: 16px; line-height: 1.9; text-align: justify; }
.ktop-greeting__career .ktop-greeting__careerttl { font-family: var(--fs-font-serif); font-size: 22px; font-weight: 700; line-height: 1.5; letter-spacing: -.5px; color: var(--fs-primary-text); }
.ktop-greeting__photo img { display: block; width: 100%; height: auto; }

/* ---------- 12 医院情報 ---------- */
.ktop-access { padding: 80px 0 105px; }
.ktop-access__cols { display: grid; grid-template-columns: 545px 515px; gap: 45px; margin: 40px 0 0 25px; }
.ktop-access__map { height: 449px; border-radius: 20px; overflow: hidden; }
.ktop-access__map iframe { display: block; width: 100%; height: 100%; }
.ktop-access__info { padding-top: 5px; }
.ktop-access__info .fs-pills { margin-top: 29px; }
.ktop-access__addr { margin: 30px 0; font-size: 16px; line-height: 1.9; color: #1c1c1c; }

/* ---------- 13 診療の流れ ---------- */
.ktop-flow { padding: 80px 0 75px; background: rgba(226, 217, 200, .15); }
.ktop-flow .ktop-head__jp, .ktop-qa .ktop-head__jp { font-size: 30px; }
.ktop-flow__list { width: 819px; max-width: 100%; margin: 15px auto 0; border: 1px solid var(--fs-heading); }
.ktop-flow__list li { position: relative; height: 157px; }
.ktop-flow__list li:last-child { height: 99px; }
.ktop-flow__no { position: absolute; top: 26px; left: 36px; width: 146px; height: 48px; border-radius: 0 50px 50px 0; background: rgba(34, 172, 56, .4); font-size: 35px; line-height: 48px; text-align: center; color: var(--fs-heading); }
.ktop-flow__ttl { position: absolute; top: 16px; left: 192px; right: 26px; height: 68px; padding: 15px; background: rgba(226, 217, 200, .14); font-size: 20px; line-height: 38px; color: #333; }
/* 段の区切り：左右の罫線（中央は矢印の分だけ空ける） */
.ktop-flow__list li:not(:last-child)::before { content: ""; position: absolute; top: 113px; left: 40px; right: 41px; height: 2px; background: linear-gradient(to right, rgba(64, 31, 0, .7) 0 320px, transparent 320px calc(100% - 322px), rgba(64, 31, 0, .7) calc(100% - 322px)); }
/* 次の段への下向き矢印（最後の段には出さない） */
.ktop-flow__list li:not(:last-child)::after { content: ""; position: absolute; top: 91px; left: calc(50% - 22px); width: 45px; height: 45px; background: rgba(64, 31, 0, .7); -webkit-mask: var(--ktop-down-icon) center / contain no-repeat; mask: var(--ktop-down-icon) center / contain no-repeat; }
:root { --ktop-down-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='.6' d='M2.300 9 6 5.300l6 6 6-6L21.700 9 12 18.700z'/%3E%3C/svg%3E"); }

/* ---------- 14 よくあるご質問 ---------- */
.ktop-qa { padding: 80px 0 92px; }
.ktop-qa__intro { display: flex; align-items: center; gap: 4px; margin: 40px 0 36px 235px; }
.ktop-qa__intro img { display: block; flex: 0 0 224px; width: 224px; height: auto; clip-path: circle(closest-side); } /* 本番と同じ丸抜き */
.ktop-qa__balloon { position: relative; margin-left: 15px; padding: .8em 1.2em; border: 3px solid #e2d9c8; border-radius: 5px; background: var(--fs-white); font-size: 16px; line-height: 1.5; color: #333; }
.ktop-qa__balloon::before, .ktop-qa__balloon::after { content: ""; position: absolute; top: calc(50% - 15px); left: -15px; width: 15px; height: 30px; clip-path: polygon(0 50%, 100% 0, 100% 100%); background: #e2d9c8; }
.ktop-qa__balloon::after { left: -11px; background: var(--fs-white); }
.ktop-qa__list { width: 819px; max-width: 100%; margin: 0 auto; }
.ktop-qa__item { margin-bottom: 7px; border: 1px solid #d6dde3; border-radius: 5px; font-size: 16px; line-height: 1.5; color: #333; }
.ktop-qa__item summary { display: flex; justify-content: space-between; align-items: center; position: relative; padding: 1em 2em 1em 3em; font-weight: 600; cursor: pointer; list-style: none; }
.ktop-qa__item summary::-webkit-details-marker { display: none; }
.ktop-qa__item summary::before, .ktop-qa__item p::before { position: absolute; left: 1em; font-weight: 600; font-size: 1.3em; }
.ktop-qa__item summary::before { content: "Q"; color: #1d6fc0; }
.ktop-qa__item summary::after { content: ""; flex: 0 0 auto; width: 7px; height: 7px; margin-left: 10px; border-bottom: 3px solid rgba(51, 51, 51, .7); border-right: 3px solid rgba(51, 51, 51, .7); transform: translateY(-25%) rotate(45deg); transition: transform .5s; }
.ktop-qa__item[open] summary::after { transform: rotate(225deg); }
.ktop-qa__item p { position: relative; margin: 0; padding: .3em 3em 1.5em; }
.ktop-qa__item p::before { content: "A"; color: #c23a3a; line-height: 1.2; }

/* ---------- 15 設備 ---------- */
.ktop-equip { padding: 80px 0 25px; background: rgba(189, 216, 115, .2); }
.ktop-equip__grid { display: grid; grid-template-columns: repeat(3, 296px); column-gap: 63px; row-gap: 56px; margin: 40px 0 41px 2px; }
.ktop-equip__grid li:nth-child(n+4) { position: relative; left: 150px; }
.ktop-equip__grid img { display: block; width: 296px; height: 197px; object-fit: cover; border-radius: 30px; }
.ktop-equip__grid p { margin-top: 26px; font-size: 16px; line-height: 1.9; text-align: center; }

/* ---------- 16 お支払い方法 ---------- */
.ktop-payment { padding: 65px 15px; background: rgba(235, 235, 235, .42); }
.ktop-payment__box { width: 1033px; max-width: 100%; margin: 0 auto; padding: 10px 30px 19px; border-radius: 50px; background: var(--fs-white); text-align: center; }
.ktop-payment__text { margin: 40px 0; font-size: 15px; line-height: 1.9; color: #272727; }
.ktop-payment__box img { display: block; width: 495px; max-width: 100%; height: auto; margin: 0 auto; }

/* =============================================================
   1200px 未満の PC：はみ出しカードを内側幅に収める
   ============================================================= */
@media (min-width: 992px) and (max-width: 1229px) {
  .ktop-card, .ktop-card--l { width: auto; margin-left: 0; }
  .ktop-card__body, .ktop-card.is-beige .ktop-card__body { flex: 1 1 0; min-width: 0; }
  .ktop-card__photo { flex: 0 0 36%; }
  .ktop-card.is-list .ktop-card__text { padding-left: 30px; }
  .ktop-point--a .ktop-point__body, .ktop-point--b .ktop-point__body { width: 44%; }
  .ktop-point--b .ktop-point__body { margin-left: 52%; }
  .ktop-point--a .ktop-point__photo { left: auto; right: 0; width: 46%; }
  .ktop-point--b .ktop-point__photo { left: 0; width: 48%; }
  .ktop-posts__inner, .ktop-posts--column .ktop-posts__inner { grid-template-columns: 40% 1fr; }
  .ktop-posts__side .fs-linkbtn-wrap, .ktop-posts--column .ktop-posts__side .fs-linkbtn-wrap { margin-left: 0; }
  .ktop-posts__item a, .ktop-posts--column .ktop-posts__item a { grid-template-columns: 190px 1fr 60px; }
  .ktop-concept__box { left: 5%; width: 90%; }
  .ktop-trait__item { grid-template-columns: 129px 1fr; margin-left: 60px; margin-right: 60px; }
  .ktop-greeting__cols { grid-template-columns: 1fr 40%; gap: 40px; margin-right: 40px; }
  .ktop-access__cols { grid-template-columns: 1fr 1fr; gap: 30px; margin-left: 0; }
  .ktop-qa__intro { margin-left: 10%; }
  .ktop-equip__grid { grid-template-columns: repeat(3, 1fr); column-gap: 30px; margin-left: 0; }
  .ktop-equip__grid li:nth-child(n+4) { left: 0; }
  .ktop-equip__grid img { width: 100%; height: auto; aspect-ratio: 3 / 2; }
}

/* =============================================================
   タブレット・SP（991px 以下）：1列
   ============================================================= */
@media (max-width: 991px) {
  .ktop-head { padding-top: 45px; }
  .ktop-head__jp { margin-top: 20px; font-size: 26px; }
  .ktop-flow .ktop-head__jp, .ktop-qa .ktop-head__jp { font-size: 26px; }

  /* お知らせ・コラム */
  .ktop-posts__inner, .ktop-posts--column .ktop-posts__inner { display: block; padding: 55px 0 65px; }
  .ktop-posts__side { padding: 0; }
  .ktop-posts__head { gap: 0; font-size: 22px; }
  .ktop-posts--column .ktop-posts__head { font-size: 25px; }
  .ktop-posts__en { flex-basis: 100px; }
  .ktop-posts--column .ktop-posts__en { flex-basis: 180px; }
  .ktop-posts__side .fs-linkbtn-wrap, .ktop-posts--column .ktop-posts__side .fs-linkbtn-wrap { justify-content: center; margin: 30px 0 20px; }
  .ktop-posts__item a, .ktop-posts--column .ktop-posts__item a { grid-template-columns: 1fr 82px; min-height: 0; padding: 33px 0 20px 3px; }
  .ktop-posts__date, .ktop-posts--column .ktop-posts__date { grid-column: 1 / -1; justify-content: center; margin-bottom: 14px; padding-left: 0; font-size: 15px; }
  .ktop-posts__ttl { padding-right: 0; font-size: 16px; font-weight: 700; line-height: 1.4; letter-spacing: 1px; text-align: center; }

  /* バナー */
  .ktop-banners { padding: 35px 0 55px; }
  .ktop-banners__inner { grid-template-columns: 1fr; gap: 20px; padding: 0; }

  /* Concept */
  .ktop-concept { padding-top: 95px; }
  .ktop-concept__box { top: 205px; left: calc(50% - 135px); width: 270px; height: 130px; padding-top: 0; }
  .ktop-concept__en { margin-top: -6px; font-size: 40px; line-height: 76px; background-position: center 43px; background-size: 100% 20px; }
  .ktop-concept__jp { margin-top: 8px; font-size: 22px; }

  /* POINT */
  .ktop-point--a, .ktop-point--b { padding: 25px 0; }
  .ktop-point--b { padding-bottom: 75px; }
  .ktop-point__box { min-height: 0; padding: 30px 10px 20px; }
  .ktop-point__body, .ktop-point--b .ktop-point__body { width: auto; margin-left: 0; }
  .ktop-point__label, .ktop-point__ttl { font-size: 22px; }
  .ktop-point--a .ktop-point__photo, .ktop-point--b .ktop-point__photo { position: static; width: auto; max-width: 320px; margin: 50px auto 0; padding: 10px 0; }

  /* 診療案内 */
  .ktop-info { padding: 0 0 116px; }
  .ktop-info .ktop-head__jp { margin-top: 0; }
  .ktop-info__grid { grid-template-columns: repeat(2, 1fr); row-gap: 40px; margin-top: 41px; padding: 0 10px; }
  .ktop-info__grid a { font-size: 15px; font-weight: 700; }
  .ktop-info__icon { width: 80px; height: 80px; margin-bottom: 20px; }

  /* 横長カード */
  .ktop-card, .ktop-card--l, .ktop-card--r, .ktop-card.is-list, .ktop-card.is-policy { flex-direction: column; width: auto; margin-left: 0; padding: 30px 0; }
  .ktop-card__body, .ktop-card.is-beige .ktop-card__body { flex: none; margin: 0; padding-top: 0; }
  .ktop-card--r .ktop-card__body, .ktop-card--l .ktop-card__body, .ktop-card.is-list .ktop-card__body, .ktop-card.is-policy .ktop-card__body { margin: 0; }
  .ktop-card__head { flex-direction: column; gap: 40px; padding: 0 0 37px; text-align: center; }
  .ktop-card__label { flex: none; font-size: 22px; }
  .ktop-card__ttl { font-size: 22px; }
  .ktop-card__text, .ktop-card.is-policy .ktop-card__text { margin: 27px 0 20px; }
  .ktop-card.is-list .ktop-card__text { padding-left: 0; }
  .ktop-card__photo { flex: none; width: 320px; max-width: calc(100% - 40px); margin: 50px auto 0; }
  .ktop-card.is-policy .fs-linkbtn-wrap { margin-bottom: 0; }

  /* 矯正歯科 */
  .ktop-ortho { padding: 0 0 24px; }
  .ktop-problem { margin-top: 21px; padding: 30px 0 20px; }
  .ktop-problem__grid { grid-template-columns: 1fr; gap: 40px; padding: 37px 0 30px; }
  .ktop-problem__grid img { width: 324px; }

  /* 入れ歯 */
  .ktop-denture { padding: 0 0 25px; }
  .ktop-denture .ktop-head__jp { font-size: 24px; }
  .ktop-denture .ktop-head + .ktop-card { margin-top: 21px; }

  /* 特徴 */
  .ktop-trait { padding: 0 0 55px; }
  .ktop-trait__item, .ktop-trait .ktop-head + .ktop-trait__item { display: block; margin: 51px 18px 0; }
  .ktop-trait__no { font-size: 22px; }
  .ktop-trait__ttl { margin-top: 40px; }
  .ktop-trait__ttl.has-line { padding-bottom: 26px; }
  .ktop-trait__ttl:not(.has-line) + .ktop-trait__text { margin-top: 19px; }

  /* 院長挨拶 */
  .ktop-greeting { padding: 0 0 65px; }
  .ktop-greeting__name { width: 288px; margin-top: 31px; padding: 10px; }
  .ktop-greeting__jp { margin-top: 0; }
  .ktop-greeting__catch { margin-top: 50px; padding: 0 20px; font-size: 16px; }
  .ktop-greeting__lead { padding: 0 20px; font-size: 15px; }
  .ktop-greeting__cols { grid-template-columns: 1fr; gap: 40px; margin: 30px 20px 65px; }
  .ktop-greeting__photo { width: 256px; margin: 0 auto; }

  /* 医院情報 */
  .ktop-access { padding: 0 0 55px; }
  .ktop-access__cols { grid-template-columns: 1fr; gap: 50px; margin: 41px 0 0; }
  .ktop-access__info { padding-top: 0; }
  .ktop-access__info .fs-pills { margin-top: 40px; gap: 40px; }
  .ktop-access__addr { margin: 40px 0; }

  /* 診療の流れ */
  .ktop-flow { padding: 0 0 25px; }
  .ktop-flow__list { margin-top: 21px; }
  .ktop-flow__list li { height: 137px; }
  .ktop-flow__list li:last-child { height: 79px; }
  .ktop-flow__no { top: 31px; left: 1px; width: 72px; height: 18px; font-size: 18px; line-height: 18px; }
  .ktop-flow__ttl { top: 11px; left: 73px; right: 0; height: 58px; padding: 10px 8px; }
  .ktop-flow__list li:not(:last-child)::after { top: 76px; }
  .ktop-flow__list li:not(:last-child)::before { top: 98px; left: 0; right: 0; background: linear-gradient(to right, rgba(64, 31, 0, .7) 0 calc(50% - 48px), transparent calc(50% - 48px) calc(50% + 48px), rgba(64, 31, 0, .7) calc(50% + 48px)); }

  /* よくあるご質問 */
  .ktop-qa { padding: 0 0 42px; }
  .ktop-qa__intro { gap: 1px; margin: 33px 0 29px 2px; align-items: flex-start; }
  .ktop-qa__intro img { flex-basis: 167px; width: 167px; }
  .ktop-qa__balloon { margin-top: 8px; }

  /* 設備 */
  .ktop-equip { padding: 0 0 35px; }
  .ktop-equip__grid { grid-template-columns: 1fr; row-gap: 30px; margin: 41px 0 40px; }
  .ktop-equip__grid li:nth-child(n+4) { left: 0; }
  .ktop-equip__grid img { width: 292px; height: 194px; margin: 0 auto; }
  .ktop-equip__grid p { margin-top: 30px; }

  /* お支払い方法 */
  .ktop-payment { padding: 35px 33px; }
  .ktop-payment__box { padding: 0 0 22px; }
  .ktop-payment .ktop-head { padding-top: 20px; }
  .ktop-payment__text { margin: 41px 0 40px; }
  .ktop-payment__box img { width: 282px; }
}
