@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）／伊波クリニック（ih- プレフィックス）
 * ======================================
 *
 * .ih-header / .ih-burger / .ih-spnav   - 浮遊型ピル状スティッキーヘッダー（丸角・影）
 * .ih-footer                            - 中央寄せフッター（ロゴ・矢印ピルナビ・情報ボックス）
 * .ih-side-cta                          - 画面右端の縦書き固定CTA（2本）
 * .ih-reveal                            - スクロールフェードイン（common.js が .in を付与）
 * .ih-hero                              - TOP メインビュー（背景写真＋白グラデ＋左テキスト／CMSスライダー対応）
 * .ih-news                              - TOP お知らせ（220px ラベル + リスト）
 * .ih-aboutmini / .ih-dept / .ih-hcbanner / .ih-access / .ih-hours / .ih-recruitmini - TOP 各セクション
 * .ih-phero                             - 下層ページヒーロー（ブルー×ピンクのグラデ＋パンくず＋見出し）
 * .ih-linkrow                           - 下層共通の3リンク導線（ブルー背景・白カード）
 * .ih-ctabox                            - 電話CTAグラデーションボックス（--blue / --pink）
 * .ih-dltable                           - 項目テーブル（左ブルーラベル + 右内容）
 * .ih-btn / .ih-tag / .ih-txtlink       - ピルボタン / ピルラベル / 下線テキストリンク
 * .ih-flow / .ih-qa / .ih-reasons / .ih-difftable / .ih-medcard - homecare/recruit/medical 個別パーツ
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：浮遊ピル型ヘッダー＋ドロップダウンSPナビ（framework header-bar は全幅固定バーのため別実装）
 * ・装飾パターン不足：非対称角丸のグラデCTAボックス、番号バッジ付き reason カード、ハイライトマーカー見出し
 * ・値の粒度不足：clamp() による流体余白/フォント（framework は固定px/rem のため site 側で clamp を使用）
 * ・配色：ブルー #4EA3D6 / 濃ブルー #2C82BB・#2C6E96 / ピンク #F76BC1 の医院向けやわらか配色
 */

:root{
  --blue:#4EA3D6;      /* メインブルー */
  --blue-d:#2C82BB;    /* 濃ブルー（リンク・見出し） */
  --blue-dd:#2C6E96;   /* 最濃ブルー（大見出し） */
  --blue-l:#EAF5FB;    /* 淡ブルー背景 */
  --pink:#F76BC1;      /* アクセントピンク */
  --pink-d:#C24E93;    /* 濃ピンク */
  --pink-l:#FFF3FA;    /* 淡ピンク背景 */
  --pink-ll:#FFEDF7;   /* さらに淡ピンク */
  --yellow:#FBC02D;
  --orange:#FBB040;
  --cream:#FFFBF3;
  --ink:#3A4750;
  --ink2:#4B5A63;
  --ink3:#5A6870;
  --muted:#8FA0AB;
  --line:#EAF5FB;
  --round:"Zen Maru Gothic",sans-serif;
  --sh-blue:0 10px 30px rgba(78,163,214,.08);
  --sh-blue-md:0 12px 30px rgba(78,163,214,.1);
  --sh-blue-lg:0 16px 40px rgba(78,163,214,.14);
}

/* ==========================================================================
 * ベース微調整
 * ========================================================================== */
body{ background:#FFFDFB; color:var(--ink); }
a{ color:var(--blue-d); }
main{ display:block; }
.ih-round{ font-family:var(--round); }

/* スクロールフェードイン */
.ih-reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.ih-reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .ih-reveal{ opacity:1; transform:none; transition:none; } }

@keyframes ihFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-14px); } }
.ih-float{ animation:ihFloat 8s ease-in-out infinite; }

/* 矢印ホバー移動（親 a:hover 時） */
.ih-arrow{ transition:transform .3s ease; }
a:hover .ih-arrow{ transform:translateX(6px); }

/* ==========================================================================
 * ヘッダー（浮遊ピル）
 * ========================================================================== */
/* 初期＝全幅・上固定（背景なし）／スクロール追従時＝ピル型に変化 */
.ih-header{ position:fixed; top:0; left:0; width:100%; z-index:120; font-family:"Noto Sans JP",system-ui,sans-serif; transition:all .35s ease; }
.ih-header__inner{ max-width:100%; margin:0 auto; padding:16px clamp(20px,4vw,56px); transition:max-width .35s ease, padding .35s ease; }
.ih-header__bar{ background:transparent; border-radius:0; box-shadow:none; padding:0; display:flex; align-items:center; gap:clamp(18px,2vw,32px); transition:background .35s ease, box-shadow .35s ease, padding .35s ease, border-radius .35s ease; }
.ih-header__logo{ display:flex; align-items:center; flex:none; }
.ih-header__logo img{ display:block; height:52px; width:auto; transition:height .35s ease; }
.ih-header.is-scrolled .ih-header__inner{ max-width:1280px; padding:clamp(10px,1.4vw,16px) clamp(12px,3vw,28px); }
.ih-header.is-scrolled .ih-header__bar{ background:#fff; border-radius:999px; box-shadow:0 12px 34px rgba(44,110,150,.16); padding:14px 24px 14px 30px; }
.ih-header.is-scrolled .ih-header__logo img{ height:44px; }
.ih-header__nav{ margin-left:auto; display:flex; align-items:center; gap:clamp(14px,1.6vw,26px); }
.ih-header__link{ position:relative; font-family:var(--round); font-weight:700; font-size:15px; color:var(--ink); white-space:nowrap; transition:opacity .25s ease; }
.ih-header__link:hover{ opacity:.55; color:var(--ink); }
/* アクティブ時も文字色は変えない（下線のみで表現） */
.ih-header__link.is-current::after{ content:""; position:absolute; left:50%; bottom:-9px; transform:translateX(-50%); width:22px; height:3px; border-radius:3px; background:var(--pink); }
.ih-header__tel{ flex:none; display:inline-flex; align-items:center; gap:8px; background:var(--blue); color:#fff; padding:10px 18px; border-radius:999px; font-family:var(--round); font-weight:700; font-size:16px; }
.ih-header__tel:hover{ color:#fff; opacity:.9; }
.ih-header__tel i{ font-size:14px; }

/* ハンバーガー */
.ih-burger{ display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:34px; height:34px; background:none; border:0; cursor:pointer; margin-left:auto; padding:0; }
.ih-burger__line{ height:2.5px; width:100%; background:var(--blue); border-radius:2px; transition:transform .3s ease, opacity .3s ease; }
.ih-burger.is-active .ih-burger__line:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.ih-burger.is-active .ih-burger__line:nth-child(2){ opacity:0; }
.ih-burger.is-active .ih-burger__line:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* SPドロップダウンナビ */
.ih-spnav{ display:none; margin-top:10px; border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(44,110,150,.16); padding:10px 20px 16px; }
.ih-spnav.is-open{ display:block; }
.ih-spnav__link{ display:block; padding:14px 4px; border-bottom:1px dashed #EAF5FB; font-family:var(--round); font-weight:700; font-size:17px; color:var(--ink); text-align:center; }
.ih-spnav__tel{ display:flex; align-items:center; justify-content:center; gap:8px; width:fit-content; margin:14px auto 0; background:var(--blue); color:#fff; padding:11px 24px; border-radius:999px; font-family:var(--round); font-weight:700; font-size:16px; }
.ih-spnav__tel:hover{ color:#fff; }

@media (max-width:900px){
  .ih-header__nav,.ih-header__tel{ display:none; }
  .ih-burger{ display:flex; }
}

/* ==========================================================================
 * 右端 縦書き固定CTA
 * ========================================================================== */
.ih-side-cta{ position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:130; display:flex; flex-direction:column; gap:10px; }
.ih-side-cta__item{ display:flex; align-items:center; gap:10px; writing-mode:vertical-rl; text-orientation:upright; color:#fff; font-family:var(--round); font-weight:700; font-size:14px; letter-spacing:.14em; padding:20px 12px; border-radius:14px 0 0 14px; transition:transform .3s ease, box-shadow .3s ease; }
.ih-side-cta__item:hover{ color:#fff; opacity:1; transform:translateX(-8px); }
.ih-side-cta__item--blue{ background:var(--blue); box-shadow:-4px 6px 16px rgba(78,163,214,.32); }
.ih-side-cta__item--pink{ background:var(--pink); box-shadow:-4px 6px 16px rgba(247,107,193,.32); }
@media (max-width:900px){ .ih-side-cta{ display:none; } }

/* ==========================================================================
 * 共通パーツ：ボタン / ラベル / テキストリンク / コンテナ
 * ========================================================================== */
.ih-wrap{ max-width:1240px; margin:0 auto; padding-left:clamp(16px,4vw,40px); padding-right:clamp(16px,4vw,40px); }

.ih-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--round); font-weight:700; font-size:15px; padding:15px 30px; border-radius:999px; line-height:1.3; text-align:center; transition:transform .3s ease, box-shadow .3s ease, opacity .3s ease; }
.ih-btn:hover{ transform:translateY(-2px); opacity:.92; }
.ih-btn__ar{ font-size:17px; }
.ih-btn--blue{ background:var(--blue); color:#fff; box-shadow:0 8px 20px rgba(78,163,214,.14); }
.ih-btn--blue:hover{ color:#fff; }
.ih-btn--white{ background:#fff; color:var(--blue-d); box-shadow:0 8px 20px rgba(78,163,214,.14); }
.ih-btn--white:hover{ color:var(--blue-d); }
.ih-btn--pink{ background:var(--pink); color:#fff; box-shadow:0 10px 24px rgba(247,107,193,.3); padding:15px 36px; }
.ih-btn--pink:hover{ color:#fff; }
.ih-btn--outline{ background:#fff; color:var(--blue-d); border:2px solid #9FD3EE; padding:13px 24px; }
.ih-btn--outline:hover{ color:var(--blue-d); }

.ih-tag{ display:inline-flex; align-items:center; gap:10px; font-family:var(--round); font-weight:700; font-size:14px; letter-spacing:.16em; padding:7px 16px; border-radius:999px; }
.ih-tag--pink{ background:var(--pink-l); color:var(--pink-d); }
.ih-tag--ghost{ background:rgba(255,255,255,.2); color:#fff; }
@media (max-width:900px){ .ih-tag--pink{ margin-bottom:16px; } }

.ih-txtlink{ display:inline-flex; align-items:center; gap:10px; font-family:var(--round); font-weight:700; color:var(--blue-d); border-bottom:2px solid #9FD3EE; padding-bottom:6px; }
.ih-txtlink:hover{ color:var(--blue-d); }

/* 汎用グリッド */
.ih-grid3{ display:grid; grid-template-columns:repeat(3,1fr); }
.ih-grid2{ display:grid; grid-template-columns:1fr 1fr; }
@media (max-width:900px){ .ih-grid3,.ih-grid2{ grid-template-columns:1fr; } }

/* 汎用セクション見出し（中央・Zen Maru） */
.ih-h2{ font-family:var(--round); font-weight:600; color:var(--blue-dd); line-height:1.5; font-size:clamp(23px,2.8vw,32px); margin:0; }
.ih-h2--lg{ font-size:clamp(24px,3vw,38px); }
.ih-h2--tight{ line-height:1.3; }
.ih-anchor{ scroll-margin-top:80px; }
.ih-h2 .pink{ color:var(--pink); }
.ih-center{ text-align:center; }

/* ==========================================================================
 * TOP：ヒーロー
 * ========================================================================== */
/* CMSスライダー(#main_slider)が自前の高さ(--swiper-wrapper-height)で高さを決めるため、
   外枠では高さを固定・clip しない（min-height はプリレンダ時のプレースホルダ） */
/* 参考画像レイアウト：画像は右寄せ（左上角丸）、キャッチは左に配置。上部は固定ヘッダー分の余白 */
.ih-hero{ position:relative; overflow:hidden; background:#fff; padding-top:clamp(96px,11vw,100px); }
.ih-hero__media{ position:relative; z-index:1; margin-left:auto; width:73%; border-top-left-radius:clamp(30px,4vw,56px); overflow:hidden; }
.ih-hero__slideshow{ position:relative; z-index:0; background:#DDEEF8; }
/* メインビュー左下のあしらい（メインビューの下＝z-index:0、水平反転） */
.ih-hero__mvdeco{ position:absolute; z-index:1; left:clamp(76px,4vw,6px); bottom:clamp(-30px,0vh,6px); width:clamp(200px,24vw,280px); height:auto; transform:scaleX(-1); pointer-events:none; }
#slideshow #main_slider.slider_wrapper{ --swiper-wrapper-height:98vh; }
#slideshow #main_slider .main_slider__inner img{ object-position:center 25%; }
.ih-hero__inner{ position:absolute; top:clamp(96px,11vw,100px); left:0; right:0; bottom:0; z-index:3; display:flex; align-items:center; pointer-events:none; }
.ih-hero__box{ pointer-events:auto; max-width:min(80%,780px); padding-left:clamp(20px,5vw,80px); }
.ih-hero__catch{ margin:0 0 22px; }
.ih-hero__catch img{ display:block; width:clamp(340px,46vw,560px); max-width:100%; height:auto; filter:drop-shadow(0 2px 6px rgba(255,255,255,.7)); }
.ih-hero__lead{ display:none; font-size:clamp(14px,1.1vw,16.5px); line-height:2; max-width:34ch; margin:0; color:var(--ink2); font-weight:600; }
@media (max-width:900px){
  .ih-hero{ padding-top:clamp(78px,20vw,96px); background:#fff; }
  .ih-hero__media{ width:100%; border-top-left-radius:0; }
  #slideshow #main_slider.slider_wrapper{ --swiper-wrapper-height:60vh; }
  /* キャッチは画像の下に通常フローで配置（背景白） */
  .ih-hero__inner{ position:static; display:block; padding:clamp(22px,6vw,34px) clamp(16px,4vw,40px) clamp(6px,2vw,16px); }
  .ih-hero__box{ max-width:100%; padding:0; transform:none; }
  .ih-hero__catch img{ width:min(420px,90%); }
}

/* ==========================================================================
 * TOP：お知らせ
 * ========================================================================== */
.ih-news{ max-width:1240px; margin:0 auto; padding:clamp(20px,3vw,40px) clamp(16px,4vw,40px); scroll-margin-top:90px; }
.ih-news__card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:clamp(22px,3vw,40px); box-shadow:0 10px 30px rgba(78,163,214,.06); display:grid; grid-template-columns:220px 1fr; gap:clamp(20px,3vw,48px); align-items:start; }
.ih-news__head{ display:flex; flex-direction:column; gap:6px; }
.ih-news__en{ font-family:var(--round); font-weight:600; font-size:clamp(28px,3.2vw,42px); color:var(--blue); letter-spacing:.04em; line-height:1; }
.ih-news__jp{ font-family:var(--round); font-weight:700; font-size:15px; color:var(--ink); }
.ih-news__list{ margin:0; padding:0; list-style:none; }
.ih-news__item{ border-top:1px solid #F0F5F8; display:grid; grid-template-columns:120px 1fr; gap:18px; align-items:baseline; padding:16px 4px; }
.ih-news__date{ font-family:var(--round); font-weight:700; font-size:14px; color:var(--muted); letter-spacing:.06em; }
.ih-news__txt{ font-size:14.5px; line-height:1.7; color:var(--ink); }
@media (max-width:900px){ .ih-news__card{ grid-template-columns:1fr; } .ih-news__item{ grid-template-columns:1fr; gap:4px; } }

/* ==========================================================================
 * TOP：当院について（ミニ）
 * ========================================================================== */
.ih-aboutmini{ position:relative; max-width:1240px; margin:0 auto; padding:clamp(48px,7vw,96px) clamp(16px,4vw,40px); overflow:visible; }
.ih-aboutmini__deco{ position:absolute; height:auto; opacity:.6; pointer-events:none; z-index:0; }
.ih-aboutmini__deco--r{ right:calc(50% - 50vw); top:8px; width:clamp(113px,18vw,192px); }
.ih-aboutmini__deco--l{ left:calc(50% - 50vw); bottom:-16px; width:clamp(120px,15vw,210px); }
.ih-aboutmini__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,72px); align-items:center; }
.ih-aboutmini__title{ font-family:var(--round); font-weight:600; font-size:clamp(24px,3vw,38px); line-height:1.5; color:var(--blue-dd); margin:0 0 24px; }
.ih-aboutmini__title .pink{ color:var(--pink); }
.ih-aboutmini__text{ font-size:15px; line-height:2.05; max-width:46ch; margin:0 0 20px; color:var(--ink2); }
.ih-aboutmini__photo{ position:relative; }
.ih-aboutmini__img{ aspect-ratio:4/3; border-radius:16px; background:#DDEEF8; overflow:hidden; box-shadow:0 16px 40px rgba(78,163,214,.14); }
.ih-aboutmini__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.ih-aboutmini__badge{ position:absolute; right:-14px; bottom:-18px; background:var(--yellow); color:#7A5600; font-family:var(--round); font-weight:600; padding:16px 22px; border-radius:12px; box-shadow:0 10px 24px rgba(251,192,45,.32); text-align:center; line-height:1.2; }
.ih-aboutmini__badge .s{ font-size:14px; display:block; letter-spacing:.1em; }
.ih-aboutmini__badge .b{ font-size:26px; }
.ih-aboutmini__badge .b small{ font-size:14px; }
@media (max-width:900px){ .ih-aboutmini__grid{ grid-template-columns:1fr; } }

/* ==========================================================================
 * TOP：診療内容
 * ========================================================================== */
.ih-dept-sec{ position:relative; background:var(--blue-l); padding:clamp(56px,7vw,104px) clamp(16px,4vw,40px); overflow:hidden; }
.ih-dept-sec__blob{ position:absolute; right:8px; top:-10px; font-size:150px; line-height:1; color:#fff; opacity:.5; }
.ih-dept-sec__inner{ position:relative; max-width:1240px; margin:0 auto; }
.ih-dept-sec__head{ text-align:center; margin-bottom:clamp(36px,4vw,56px); }
.ih-dept-sec__pill{ display:inline-block; font-size:clamp(15px,1.5vw,19px); font-weight:700; color:#fff; margin-bottom:10px; background:var(--blue); padding:7px 26px; border-radius:999px; }
.ih-dept-sec__ttl{ font-family:var(--round); font-weight:600; color:var(--blue-dd); margin:0 0 12px; line-height:1.4; }
.ih-dept-sec__ttl .main{ display:block; font-size:clamp(24px,3vw,38px); }
.ih-dept-sec__lead{ font-size:15px; color:var(--ink2); margin:0; }
.ih-dept-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2vw,28px); }
.ih-dept__card{ display:block; background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 10px 28px rgba(78,163,214,.08); border:1px solid #fff; color:var(--ink); transition:transform .3s ease, box-shadow .3s ease; }
.ih-dept__card:hover{ color:var(--ink); transform:translateY(-4px); box-shadow:0 16px 36px rgba(78,163,214,.16); }
.ih-dept__img{ aspect-ratio:4/3; overflow:hidden; }
.ih-dept__img--internal{ background:var(--blue); }
.ih-dept__img--peds{ background:var(--pink); }
.ih-dept__img--derma{ background:var(--orange); }
.ih-dept__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.ih-dept__body{ padding:clamp(20px,2.2vw,30px); }
.ih-dept__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 14px; }
.ih-dept__title{ font-family:var(--round); font-weight:600; font-size:26px; color:var(--blue-dd); margin:0; }
@media (max-width:900px){ .ih-dept__title{ font-size:22px; } }
.ih-dept__circle{ flex:none; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--blue-l); color:var(--blue-d); font-size:17px; }
.ih-dept__text{ font-size:14px; line-height:1.95; color:var(--ink3); margin:0; }
.ih-dept-sec__more{ text-align:center; margin-top:clamp(32px,4vw,48px); }
@media (max-width:900px){ .ih-dept-grid{ grid-template-columns:1fr; } }

/* ==========================================================================
 * TOP：訪問診療バナー
 * ========================================================================== */
.ih-hcbanner-sec{ max-width:1240px; margin:0 auto; padding:clamp(56px,7vw,104px) clamp(16px,4vw,40px); }
.ih-hcbanner{ position:relative; border-radius:16px; overflow:hidden; background:linear-gradient(120deg,#2C82BB 0%,#4EA3D6 60%,#7BC0E6 100%); color:#fff; padding:clamp(36px,5vw,72px); display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,56px); align-items:stretch; }
.ih-hcbanner__tag{ display:inline-flex; align-items:center; gap:10px; font-family:var(--round); font-weight:700; font-size:14px; letter-spacing:.16em; background:rgba(255,255,255,.2); padding:7px 16px; border-radius:999px; margin:0 0 20px; }
.ih-hcbanner__title{ font-family:var(--round); font-weight:600; font-size:clamp(25px,2.2vw,29px); line-height:1.6; margin:0 0 18px; text-decoration:underline 2px dotted rgba(255,255,255,.6); text-underline-offset:8px; }
.ih-hcbanner__text{ font-size:clamp(14px,1.05vw,16px); line-height:2; max-width:44ch; margin:0 0 20px; color:#EAF5FB; }
.ih-hcbanner__img{ position:relative; min-height:280px; background:rgba(255,255,255,.14); overflow:hidden; display:grid; place-items:center; margin:calc(-1*clamp(36px,5vw,72px)) calc(-1*clamp(36px,5vw,72px)) calc(-1*clamp(36px,5vw,72px)) 0; }
.ih-hcbanner__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.ih-hcbanner__doctor{ position:absolute; left:calc(56% - 100px); bottom:0; width:clamp(120px,13vw,180px); height:auto; z-index:3; pointer-events:none; filter:drop-shadow(0 6px 12px rgba(0,0,0,.15)); }
@media (max-width:900px){
  .ih-hcbanner{ grid-template-columns:1fr; }
  .ih-hcbanner__img{ margin:0; aspect-ratio:16/10; min-height:0; border-radius:12px; }
  .ih-hcbanner__doctor{ display:none; }
}

/* ==========================================================================
 * TOP：診療時間・アクセス
 * ========================================================================== */
.ih-access{ background:var(--cream); padding:clamp(48px,6vw,96px) clamp(16px,4vw,40px); position:relative; overflow:hidden; }
.ih-access__deco{ position:absolute; right:0; top:24px; width:clamp(110px,12vw,180px); height:auto; opacity:.85; pointer-events:none; z-index:1; }
.ih-access__inner{ max-width:1240px; margin:0 auto; position:relative; z-index:2; }
.ih-access__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:start; }
.ih-map{ position:relative; aspect-ratio:4/3; background:#DDEEF8; border-radius:12px; overflow:hidden; box-shadow:0 12px 30px rgba(78,163,214,.12); }
.ih-map__iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.ih-map__ph{ position:absolute; inset:0; display:grid; place-items:center; }
.ih-map__ph span{ font-family:monospace; font-size:14px; letter-spacing:.14em; color:#6E9DBC; background:rgba(255,255,255,.72); padding:6px 12px; border-radius:8px; }
.ih-map__card{ position:absolute; left:16px; top:16px; background:#fff; border-radius:10px; padding:14px 16px; box-shadow:0 6px 18px rgba(0,0,0,.12); max-width:74%; }
.ih-map__card p{ margin:0; }
.ih-map__card .name{ font-family:var(--round); font-weight:600; color:var(--blue-dd); font-size:15px; margin-bottom:4px; }
.ih-map__card .addr{ font-size:14px; color:var(--ink3); line-height:1.6; }
.ih-access__eyebrow{ font-size:14px; font-family:var(--round); font-weight:700; color:var(--blue); margin:0 0 6px; }
.ih-access__name{ font-family:var(--round); font-weight:600; font-size:clamp(22px,2.6vw,30px); color:var(--blue-dd); margin:0 0 14px; }
.ih-access__line{ font-size:14px; color:var(--ink); line-height:1.9; margin:0 0 2px; }
.ih-access__line strong{ color:var(--blue-dd); }
.ih-access__pk{ font-size:14px; color:var(--ink3); margin:0 0 22px; }
.ih-access__pk strong{ color:var(--blue-dd); }
.ih-access__note{ font-size:14px; color:#6E7C85; margin:12px 0 0; line-height:1.8; }
@media (max-width:900px){ .ih-access__grid{ grid-template-columns:minmax(0,1fr); } .ih-access__grid > div{ min-width:0; } }

/* 診療時間テーブル */
.ih-hours-wrap{ background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 12px 30px rgba(78,163,214,.1); }
/* 横スクロールヒント（スクロールするデバイス幅でのみ表示） */
.ih-scroll-hint{ display:none; }
@media (max-width:900px){
  .ih-scroll-hint{ display:block; text-align:right; font-size:11px; color:var(--muted); margin:0 2px 6px; }
  .ih-scroll-hint i{ margin-left:4px; }
}
@media (max-width:900px){
  .ih-hours-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .ih-hours{ min-width:540px; }
}
.ih-hours{ width:100%; border-collapse:collapse; font-size:14px; }
.ih-hours thead tr{ background:var(--blue); }
.ih-hours thead th{ color:#fff; padding:10px 2px; min-width:50px; border-left:1px solid rgba(255,255,255,.25); }
.ih-hours thead th:first-child{ text-align:left; padding:14px 16px; font-family:var(--round); font-weight:600; border-left:0; }
.ih-hours thead th .d{ font-family:var(--round); font-weight:600; font-size:14px; display:block; }
.ih-hours thead th .e{ font-size:14px; letter-spacing:.06em; opacity:.85; }
.ih-hours td{ border-bottom:1px solid #EEF4F8; }
.ih-hours td:first-child{ padding:16px; font-family:var(--round); font-weight:600; color:var(--ink); white-space:nowrap; font-size:14px; }
.ih-hours td.mark{ text-align:center; padding:14px 2px; border-left:1px solid #F4F8FB; line-height:1.1; }
.ih-hours .o{ font-size:18px; color:var(--blue); font-weight:700; }
.ih-hours .x{ font-size:18px; color:#C9D3DA; font-weight:700; }
.ih-hours .sub{ display:block; font-size:14px; color:#C29AB4; margin-top:2px; }

/* ==========================================================================
 * TOP：採用（ミニ）
 * ========================================================================== */
.ih-recruitmini{ position:relative; padding:clamp(48px,7vw,104px) 0; overflow:hidden; }
.ih-recruitmini__deco{ position:absolute; right:0; bottom:0; width:clamp(140px,16vw,240px); height:auto; opacity:.7; pointer-events:none; z-index:0; }
.ih-recruitmini__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,96px); align-items:center; max-width:1400px; margin:0 auto; }
.ih-recruitmini__photo{ position:relative; aspect-ratio:16/11; background:#DDEEF8; border-radius:0 16px 16px 0; overflow:hidden; box-shadow:0 20px 50px rgba(78,163,214,.14); }
.ih-recruitmini__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.ih-recruitmini__body{ position:relative; padding:0 clamp(16px,4vw,64px) 0 0; }
.ih-recruitmini__title{ font-family:var(--round); font-weight:600; font-size:clamp(19px,2.2vw,29px); line-height:1.6; margin:0 0 18px; color:var(--blue-dd); text-decoration:underline; text-decoration-style:dotted; text-decoration-color:#FCA9D8; text-decoration-thickness:2px; text-underline-offset:8px; }
.ih-recruitmini__text{ font-size:15px; line-height:2.05; max-width:46ch; margin:0 0 32px; color:var(--ink2); }
@media (max-width:900px){
  .ih-recruitmini__grid{ grid-template-columns:1fr; }
  .ih-recruitmini__photo{ border-radius:16px; }
  .ih-recruitmini__body{ padding:0 clamp(16px,4vw,40px); }
}

/* ==========================================================================
 * 下層：ページヒーロー
 * ========================================================================== */
.ih-phero{ position:relative; background:linear-gradient(135deg,#EAF5FB 0%,#FFEDF7 100%); padding:clamp(104px,12vw,140px) clamp(16px,4vw,40px) clamp(40px,5vw,72px); overflow:hidden; }
.ih-phero--pink{ background:linear-gradient(135deg,#FFEDF7 0%,#EAF5FB 100%); }
.ih-phero__deco{ position:absolute; right:5%; top:20%; opacity:.55; font-size:52px; color:var(--pink); }
.ih-phero__inner{ max-width:1240px; margin:0 auto; position:relative; z-index:2; }
.ih-phero__crumb{ font-size:14px; color:var(--muted); margin:0 0 10px; }
.ih-phero__crumb a{ color:var(--muted); }
.ih-phero__title{ font-family:var(--round); font-weight:600; font-size:clamp(28px,4vw,46px); color:var(--blue-dd); margin:0; }

/* ==========================================================================
 * 下層共通：3リンク導線
 * ========================================================================== */
.ih-linkrow-sec{ background:var(--blue); padding:clamp(48px,6vw,88px) clamp(16px,4vw,40px); }
.ih-linkrow-sec--slim{ padding:clamp(40px,5vw,72px) clamp(16px,4vw,40px); }
.ih-linkrow-sec--mt{ margin-top:clamp(28px,4vw,52px); }
.ih-linkrow{ max-width:1240px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,24px); }
.ih-linkrow__item{ background:#fff; border-radius:24px; padding:28px 30px; box-shadow:0 8px 22px rgba(0,0,0,.1); display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--ink); transition:transform .3s ease, box-shadow .3s ease; }
.ih-linkrow__item:hover{ color:var(--ink); transform:translateY(-3px); box-shadow:0 14px 30px rgba(0,0,0,.14); }
.ih-linkrow__item span:first-child{ font-family:var(--round); font-weight:600; font-size:16px; }
.ih-linkrow__ar{ font-size:18px; color:var(--blue); }
@media (max-width:900px){ .ih-linkrow{ grid-template-columns:1fr; } }

/* ==========================================================================
 * 共通：電話CTAグラデーションボックス
 * ========================================================================== */
.ih-ctabox-sec{ padding:clamp(48px,7vw,96px) clamp(16px,4vw,40px); scroll-margin-top:80px; }
.ih-ctabox{ max-width:900px; margin:0 auto; border-radius:clamp(44px,7vw,90px) 20px clamp(44px,7vw,90px) 20px; padding:clamp(36px,5vw,55px); color:#fff; text-align:center; }
.ih-ctabox--blue{ background:linear-gradient(135deg,#2C82BB 0%,#4EA3D6 100%); box-shadow:0 20px 50px rgba(44,110,150,.25); }
.ih-ctabox--pink{ background:linear-gradient(135deg,#F76BC1 0%,#FCA9D8 100%); box-shadow:0 20px 50px rgba(247,107,193,.28); }
.ih-ctabox__badge{ display:inline-flex; align-items:center; gap:9px; font-family:var(--round); font-weight:700; font-size:14px; letter-spacing:.08em; background:rgba(255,255,255,.22); padding:8px 18px; border-radius:999px; margin:0 0 20px; }
.ih-ctabox__badge .dot{ width:9px; height:9px; border-radius:2px; background:#fff; display:inline-block; }
.ih-ctabox__title{ font-family:var(--round); font-weight:600; font-size:clamp(19px,2.6vw,32px); margin:0 0 14px; line-height:1.5; }
.ih-ctabox__text{ font-size:14px; line-height:1.9; color:#EAF5FB; max-width:80ch; margin:0 auto 10px; text-align:center; text-wrap:balance; word-break:auto-phrase; }
.ih-ctabox--pink .ih-ctabox__text{ color:#FFF0F8; }
.ih-ctabox__tel{ display:inline-flex; align-items:center; gap:12px; background:none; color:#fff; padding:4px 0; margin:6px 0 14px; font-family:"Noto Sans JP",system-ui,sans-serif; font-weight:700; font-size:clamp(26px,3vw,36px); letter-spacing:.03em; }
.ih-ctabox--pink .ih-ctabox__tel{ color:#fff; }
.ih-ctabox__tel:hover{ opacity:.85; color:#fff; }
.ih-ctabox__tel i{ font-size:.56em; }
.ih-ctabox__note{ font-size:12px; color:#EAF5FB; margin:0; }
.ih-ctabox--pink .ih-ctabox__note{ color:#FFF0F8; }

/* ==========================================================================
 * 共通：項目テーブル（左ブルーラベル + 右内容）
 * ========================================================================== */
.ih-dltable{ background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 10px 30px rgba(78,163,214,.08); }
.ih-dltable--pink{ box-shadow:0 10px 30px rgba(247,107,193,.08); }
.ih-dltable__row{ display:grid; grid-template-columns:200px 1fr; border-bottom:1px solid #F0F5F8; }
.ih-dltable--w180 .ih-dltable__row{ grid-template-columns:180px 1fr; }
.ih-dltable__row:last-child{ border-bottom:0; }
.ih-dltable__label{ background:var(--blue); padding:18px 24px; font-family:var(--round); font-weight:700; color:#fff; font-size:14.5px; }
.ih-dltable__val{ padding:18px 24px; font-size:14.5px; color:var(--ink2); line-height:1.9; }
@media (max-width:900px){ .ih-dltable__row,.ih-dltable--w180 .ih-dltable__row{ grid-template-columns:1fr; } }

/* ==========================================================================
 * about：院長挨拶 / アクセス
 * ========================================================================== */
.ih-sec{ padding:clamp(48px,7vw,96px) clamp(16px,4vw,40px); }
.ih-sec--cream{ background:var(--cream); position:relative; overflow:hidden; }
.ih-sec--sky{ background:var(--blue-l); }
.ih-sec--white{ background:#fff; }
.ih-sec--narrow960{ max-width:960px; margin:0 auto; }
.ih-greeting{ max-width:1240px; margin:0 auto; }
.ih-greeting__grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px,5vw,72px); align-items:start; }
.ih-greeting__portrait{ aspect-ratio:3/4; border-radius:16px; background:#DDEEF8; overflow:hidden; display:grid; place-items:center; box-shadow:0 16px 40px rgba(78,163,214,.14); }
.ih-greeting__portrait img{ width:100%; height:100%; object-fit:cover; display:block; }
.ih-greeting__portrait img{ width:100%; height:100%; object-fit:cover; display:block; }
.ih-ph{ font-family:monospace; font-size:14px; letter-spacing:.14em; color:#7CA8C4; background:rgba(255,255,255,.7); padding:6px 12px; border-radius:8px; text-align:center; }
.ih-greeting__title{ font-family:var(--round); font-weight:600; font-size:clamp(22px,2.6vw,34px); line-height:1.5; color:var(--blue-dd); margin:0 0 28px; }
.ih-greeting__title .pink{ color:var(--pink); }
.ih-greeting__body{ font-size:clamp(14px,1.05vw,16px); line-height:2.1; color:var(--ink2); }
.ih-greeting__body p{ margin:0 0 1.5em; }
.ih-greeting__body p:last-child{ margin:0; }
.ih-greeting__sign{ margin-top:28px; display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.ih-greeting__sign .role{ font-size:14px; color:var(--muted); }
.ih-greeting__sign .name{ font-family:var(--round); font-weight:600; font-size:24px; color:var(--blue-dd); }
@media (max-width:900px){ .ih-greeting__grid{ grid-template-columns:1fr; } .ih-greeting__portrait{ aspect-ratio:16/10; } }

.ih-about-overview{ max-width:1080px; margin:0 auto; position:relative; z-index:1; }
.ih-about-grid2{ display:grid; grid-template-columns:1.5fr 1fr; gap:clamp(24px,3vw,40px); align-items:start; margin-top:clamp(24px,3vw,36px); }
.ih-about-grid2__side{ display:flex; flex-direction:column; gap:clamp(16px,2vw,20px); }
@media (max-width:900px){ .ih-about-grid2{ grid-template-columns:1fr; } }
.ih-about-overview__deco{ position:absolute; top:-10px; width:clamp(120px,15vw,220px); height:auto; opacity:.7; pointer-events:none; z-index:0; }
.ih-about-overview__deco--l{ left:calc(50% - 50vw - 10px); }
.ih-about-overview__deco--r{ right:calc(50% - 50vw - 10px); }
.ih-about-overview__head{ text-align:center; margin-bottom:clamp(28px,3vw,44px); }
.ih-about-access{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(24px,3vw,44px); align-items:start; margin-top:clamp(28px,3.5vw,44px); }
.ih-about-access__map{ position:relative; aspect-ratio:16/10; border-radius:14px; background:#DDEEF8; overflow:hidden; display:grid; place-items:center; box-shadow:0 10px 28px rgba(78,163,214,.1); }
.ih-parkbox{ padding:4px 0 0; }
.ih-parkbox__title{ margin:0 0 10px; font-family:var(--round); font-weight:700; color:var(--pink-d); }
.ih-parkbox__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; font-size:14px; color:var(--ink3); }
.ih-parkbox__list li{ display:flex; gap:10px; }
.ih-parkbox__list li::before{ content:"●"; color:var(--pink); }
@media (max-width:900px){ .ih-about-access{ grid-template-columns:1fr; } }

/* ==========================================================================
 * medical：導入 / 診療科カード
 * ========================================================================== */
.ih-med-intro{ max-width:900px; margin:0 auto; padding:clamp(44px,6vw,80px) clamp(16px,4vw,40px); text-align:center; }
.ih-med-intro__title{ font-family:var(--round); font-weight:600; font-size:clamp(18px,2.2vw,26px); line-height:1.5; color:var(--ink); margin:0 0 20px; }
.ih-med-intro__title .hl{ color:var(--blue-dd); font-size:clamp(22px,2.8vw,34px); }
.ih-med-intro__text{ font-size:clamp(14px,1.05vw,16px); line-height:2.05; color:var(--ink2); margin:0 0 18px; text-align:center; text-wrap:balance; word-break:auto-phrase; }
.ih-med-intro__img{ display:block; width:min(560px,100%); height:auto; margin:0 auto clamp(28px,4vw,44px); }
.ih-med-intro__pill{ display:inline-flex; align-items:center; gap:10px; font-size:14px; line-height:1.6; background:var(--pink-l); border:1px solid #FFD9EF; color:var(--pink-d); padding:10px 18px; border-radius:14px; margin:0; }
.ih-med-intro__pill i{ color:var(--pink); }
.ih-spbr{ display:none; }
@media (max-width:900px){
  .ih-spbr{ display:inline; }
  .ih-med-intro__pill{ align-items:flex-start; text-align:left; }
  .ih-med-intro__pill i{ margin-top:4px; flex:none; }
}

.ih-med-list{ max-width:1080px; margin:0 auto; padding:0 clamp(16px,4vw,40px) clamp(20px,3vw,40px); display:flex; flex-direction:column; gap:clamp(28px,4vw,52px); }
.ih-medcard{ background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 12px 34px rgba(78,163,214,.08); padding:clamp(24px,3vw,40px); scroll-margin-top:110px; }
.ih-medcard__top{ display:grid; grid-template-columns:1fr minmax(240px,340px); gap:clamp(24px,3vw,40px); align-items:start; margin-bottom:clamp(20px,2.5vw,28px); }
.ih-medcard__head{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.ih-medcard__bar{ display:inline-block; width:8px; height:28px; border-radius:4px; }
.ih-medcard__bar--internal{ background:var(--blue); }
.ih-medcard__bar--peds{ background:var(--pink); }
.ih-medcard__bar--derma{ background:var(--orange); }
.ih-medcard__title{ font-family:var(--round); font-weight:600; font-size:clamp(22px,2.4vw,30px); color:var(--blue-dd); margin:0; }
.ih-medcard__lead{ font-size:15px; line-height:2; color:var(--ink2); margin:0; }
.ih-medcard__groups{ display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.ih-medcard__group{ display:grid; grid-template-columns:180px 1fr; gap:16px; padding:16px 0; border-bottom:1px solid #F0F5F8; }
.ih-medcard__group:last-child{ border-bottom:0; }
.ih-medcard__gname{ font-family:var(--round); font-weight:700; color:var(--blue); font-size:16.5px; margin:0; }
.ih-medcard__gtext{ font-size:14px; line-height:1.9; color:var(--ink3); margin:0; }
.ih-medcard__note{ display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.8; background:#FFF6E5; border-radius:14px; padding:14px 18px; color:#8A6400; margin:20px 0 0; }
.ih-medcard__note i{ color:#E0A100; margin-top:2px; flex:none; font-size:1.5em; }
.ih-medcard__photo{ position:relative; background:#DDEEF8; aspect-ratio:4/3; border-radius:12px; overflow:hidden; }
.ih-medcard__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:900px){
  .ih-medcard__top{ grid-template-columns:1fr; }
  .ih-medcard__group{ grid-template-columns:1fr; gap:4px; }
}

/* ==========================================================================
 * homecare 個別
 * ========================================================================== */
.ih-hc-intro{ max-width:1080px; margin:0 auto; padding:clamp(44px,6vw,80px) clamp(16px,4vw,40px); }
.ih-hc-intro__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,56px); align-items:center; }
.ih-hc-intro__title{ font-family:var(--round); font-weight:600; color:var(--blue-dd); margin:0 0 22px; line-height:1.45; }
.ih-hc-intro__l1{ display:block; font-size:clamp(23px,2.4vw,30px); letter-spacing:.01em; }
.ih-hc-intro__l2{ display:inline-block; font-size:clamp(26px,2.8vw,36px); color:var(--blue); position:relative; margin:2px 0 12px; }
.ih-hc-intro__l2 small{ font-size:.7em; color:var(--blue-dd); }
.ih-hc-intro__l2 .mk{ position:absolute; left:0; right:28px; bottom:2px; height:8px; border-radius:5px; background:#FFEBD6; z-index:-1; }
.ih-hc-intro__l3{ display:block; font-size:clamp(14px,1.5vw,17px); color:var(--ink3); font-weight:700; letter-spacing:.02em; line-height:1.7; }
.ih-hc-intro__echo{ display:inline-block; background:var(--pink-l); color:var(--pink); font-weight:600; padding:3px 12px; border-radius:999px; font-size:.94em; margin-right:6px; }
.ih-hc-intro__text{ font-size:15px; line-height:2.05; color:var(--ink2); margin:0; }
.ih-hc-intro__figure{ position:relative; }
.ih-hc-intro__img{ position:relative; z-index:1; aspect-ratio:4/3; border-radius:16px; background:#DDEEF8; overflow:hidden; display:grid; place-items:center; box-shadow:0 14px 36px rgba(78,163,214,.14); }
/* 写真の右上・左下に装飾（採用ページと同様）。右上=写真の下＋水平反転、左下=写真の上 */
.ih-hc-intro__deco{ position:absolute; z-index:0; width:clamp(90px,11vw,150px); height:auto; pointer-events:none; }
.ih-hc-intro__deco--tl{ top:0; left:0; transform:translate(-60%,-60%); }
.ih-hc-intro__deco--br{ bottom:0; right:0; width:clamp(72px,9vw,120px); transform:translate(45%,27%) scaleX(-1); z-index:2; }
/* スマホでは写真装飾を非表示（横はみ出し防止＆すっきり表示） */
@media (max-width:900px){ .ih-rc-intro__deco, .ih-hc-intro__deco, .ih-hero__mvdeco{ display:none; } }
.ih-hc-intro__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.ih-hc-feature{ border-top:2px dotted #B9D8EA; border-bottom:2px dotted #B9D8EA; padding:clamp(24px,3vw,34px) 0; margin:clamp(28px,3.5vw,44px) 0 28px; }
.ih-hc-feature__label{ display:inline-flex; align-items:center; gap:8px; font-family:var(--round); font-weight:600; font-size:15px; color:var(--blue-d); margin:0 0 14px; }
.ih-hc-feature__text{ font-size:15px; line-height:2; margin:0; color:var(--ink2); }
.ih-hc-feature__text strong{ color:var(--blue-dd); }
.ih-hc-btns{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
@media (max-width:900px){ .ih-hc-intro__grid{ grid-template-columns:1fr; } }

.ih-hc-cards{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,3vw,32px); align-items:start; }
.ih-hc-card{ background:#fff; border-radius:14px; padding:clamp(24px,3vw,34px); box-shadow:0 10px 28px rgba(78,163,214,.08); }
.ih-hc-card__title{ font-family:var(--round); font-weight:600; font-size:20px; color:var(--blue-dd); margin:0 0 16px; }
.ih-hc-card__mapph{ margin:16px 0 0; }
.ih-hc-card__mapph img{ width:66%; height:auto; display:block; margin:0 auto; }
.ih-hc-card__km{ display:flex; align-items:baseline; gap:12px; font-family:var(--round); font-weight:600; color:var(--blue-d); font-size:clamp(22px,2.4vw,30px); margin:0 0 12px; }
.ih-hc-card__km .num{ font-size:44px; line-height:1; color:var(--blue); }
.ih-hc-card__km .num small{ font-size:18px; }
.ih-hc-card__km .lbl{ font-size:15px; color:var(--ink3); font-weight:700; }
.ih-hc-card__text{ font-size:14px; line-height:1.95; color:var(--ink3); margin:0; }
.ih-hc-card__target{ background:var(--pink-l); border-radius:14px; padding:14px 18px; font-size:14.5px; color:var(--pink-d); font-weight:700; margin:0 0 16px; }
.ih-hc-card__sub{ font-size:14px; color:var(--ink3); margin:0 0 10px; }
.ih-hc-card__list{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:8px; font-size:14px; color:var(--ink3); }
.ih-hc-card__list li{ display:flex; gap:10px; }
.ih-hc-card__list li::before{ content:"●"; color:var(--blue); }
.ih-hc-card__fine{ font-size:14px; color:var(--muted); margin:0; }
@media (max-width:900px){ .ih-hc-cards{ grid-template-columns:1fr; } }

.ih-hc-detail{ max-width:1000px; margin:0 auto; }
.ih-hc-detail__head{ margin-bottom:clamp(28px,3vw,44px); border-bottom:2px solid var(--blue-l); padding-bottom:16px; }
.ih-hc-detail__head--mt{ margin-top:clamp(44px,5vw,72px); }
.ih-hc-sub{ display:flex; align-items:center; gap:10px; font-family:var(--round); font-weight:600; font-size:clamp(17px,1.9vw,21px); margin:0 0 18px; }
.ih-hc-sub--pink{ color:var(--pink-d); }
.ih-hc-sub--blue{ color:var(--blue-d); }
.ih-hc-sub__bar{ width:6px; height:24px; border-radius:3px; flex:none; }
.ih-hc-sub--pink .ih-hc-sub__bar{ background:var(--pink); }
.ih-hc-sub--blue .ih-hc-sub__bar{ background:var(--blue); }
.ih-hc-panel{ background:#FFFDF9; border:1px solid #ECE3D3; border-radius:16px; padding:clamp(24px,3.5vw,40px); }
.ih-hc-echo-block{ margin:0 0 clamp(22px,2.6vw,28px); padding-bottom:clamp(22px,2.6vw,28px); border-bottom:1px dashed #E0D3BB; }
.ih-flow-sec{ max-width:1000px; margin:0 auto; scroll-margin-top:80px; }
.ih-hc-echo-lead{ font-size:15px; line-height:1.95; margin:0 0 18px; color:var(--ink2); padding-left:16px; }
.ih-hc-echo-text{ margin:0; padding-left:16px; border-left:2px dotted #F0C4DD; font-size:15px; line-height:1.95; color:var(--ink2); }
.ih-hc-echo-dl{ margin:0 0 clamp(32px,4vw,48px); padding-left:16px; border-left:2px dotted #F0C4DD; display:flex; flex-direction:column; gap:16px; }
.ih-hc-echo-dl dt{ font-family:var(--round); font-weight:700; color:var(--blue-dd); font-size:15px; margin:0 0 4px; }
.ih-hc-echo-dl dd{ margin:0; font-size:14px; line-height:1.85; color:var(--ink3); }
.ih-hc-svc{ margin:0; display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(28px,3vw,48px); }
.ih-hc-svc__row{ display:flex; gap:14px; padding:14px 4px; border-bottom:1px solid #EEF4F8; align-items:baseline; }
.ih-hc-svc__row dt{ font-family:var(--round); font-weight:700; color:var(--blue-dd); font-size:15px; flex:none; min-width:64px; }
.ih-hc-svc__row dd{ margin:0; font-size:14px; line-height:1.85; color:var(--ink3); }
.ih-hc-fine{ font-size:14px; color:var(--muted); margin:16px 0 0; }
@media (max-width:900px){ .ih-hc-svc{ grid-template-columns:1fr; } }

/* 訪問診療と往診の違い（3列テーブル） */
.ih-difftable{ background:#fff; border:1px solid var(--blue-l); border-radius:16px; overflow:hidden; box-shadow:0 12px 30px rgba(78,163,214,.1); }
.ih-difftable__row{ display:grid; grid-template-columns:1fr 1.4fr 1.4fr; }
.ih-difftable__row + .ih-difftable__row{ border-top:1px solid #EEF4F8; }
.ih-difftable__corner{ background:#D9E8F3; }
.ih-difftable__h{ color:#fff; text-align:center; padding:18px 12px; font-family:var(--round); font-weight:600; font-size:clamp(17px,1.9vw,21px); }
.ih-difftable__h--blue{ background:var(--blue); }
.ih-difftable__h--pink{ background:var(--pink); }
.ih-difftable__label{ background:#D9E8F3; padding:18px 20px; font-family:var(--round); font-weight:700; color:var(--blue-dd); font-size:14.5px; display:flex; align-items:center; }
.ih-difftable__c{ padding:18px 20px; font-size:14px; line-height:1.85; color:var(--ink3); }
.ih-difftable__c--pink{ background:#FFFAFD; }
@media (max-width:900px){
  .ih-difftable{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .ih-difftable__row{ min-width:520px; }
}

/* ご利用の流れ（番号丸） */
.ih-flow{ display:flex; flex-direction:column; gap:0; }
.ih-flow__item{ display:grid; grid-template-columns:64px 1fr; gap:20px; padding:20px 0; border-bottom:1px dashed #DDEAF2; align-items:start; }
.ih-flow__num{ display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--blue-l); color:var(--blue-d); font-family:var(--round); font-weight:600; font-size:20px; }
.ih-flow__ttl{ font-family:var(--round); font-weight:600; font-size:16.5px; color:var(--blue-dd); margin:0 0 4px; }
.ih-flow__text{ font-size:14px; line-height:1.9; color:var(--ink3); margin:0; }
@media (max-width:900px){
  .ih-flow__item{ grid-template-columns:42px 1fr; gap:14px; }
  .ih-flow__num{ width:36px; height:36px; font-size:16px; }
}
.ih-fee{ background:var(--blue-l); border-radius:12px; padding:clamp(22px,3vw,32px); margin-top:32px; }
.ih-fee__label{ display:inline-flex; align-items:center; gap:8px; font-family:var(--round); font-weight:600; font-size:16px; color:var(--blue-dd); margin:0 0 14px; }
.ih-fee__grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ih-fee__card{ background:#fff; border-radius:14px; padding:16px 18px; text-align:center; }
.ih-fee__card .h{ font-family:var(--round); font-weight:700; margin:0 0 6px; }
.ih-fee__card .h--blue{ color:var(--blue-d); }
.ih-fee__card .h--pink{ color:var(--pink-d); }
.ih-fee__card p{ font-size:14px; color:var(--muted); margin:0; }
@media (max-width:900px){ .ih-fee__grid{ grid-template-columns:1fr; } }

/* ==========================================================================
 * recruit 個別
 * ========================================================================== */
.ih-rc-intro{ max-width:1120px; margin:0 auto; padding:clamp(44px,6vw,80px) clamp(16px,4vw,40px); }
.ih-rc-intro__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,64px); align-items:center; }
.ih-rc-intro__title{ font-family:var(--round); font-weight:600; line-height:1.5; color:var(--blue-dd); margin:0 0 28px; }
.ih-rc-intro__eyebrow{ display:block; font-size:clamp(15px,1.6vw,19px); color:var(--pink); letter-spacing:.04em; margin-bottom:12px; }
.ih-rc-intro__l2{ display:block; font-size:clamp(28px,4vw,40px); letter-spacing:.02em; }
.ih-rc-intro__l3{ display:inline-block; font-size:clamp(28px,4vw,40px); letter-spacing:.02em; position:relative; margin-top:4px; }
.ih-rc-intro__l3 .pink{ color:var(--pink); }
.ih-rc-intro__l3 .mk{ position:absolute; left:0; right:0; bottom:-8px; height:6px; border-radius:6px; background:linear-gradient(90deg,#FCA9D8,#9FD3EE); }
.ih-rc-intro__text{ font-size:clamp(14px,1.05vw,16px); line-height:2.05; color:var(--ink2); margin:0 0 28px; }
.ih-rc-intro__btns{ display:flex; flex-wrap:nowrap; gap:14px; }
.ih-rc-intro__figure{ position:relative; }
.ih-rc-intro__photo{ position:relative; z-index:1; aspect-ratio:4/5; border-radius:24px; background:var(--pink-ll); overflow:hidden; display:grid; place-items:center; box-shadow:0 16px 40px rgba(247,107,193,.14); }
/* 写真の右上・左下に装飾（重なりは写真の下＝z-index:0） */
.ih-rc-intro__deco{ position:absolute; z-index:0; width:clamp(90px,11vw,150px); height:auto; pointer-events:none; }
/* 隅アンカー→自分のサイズの60%だけ外へ（少し写真に近づけた）。右上は水平反転＝写真の下、左下は写真の上 */
.ih-rc-intro__deco--tr{ top:0; right:0; transform:translate(60%,-60%) scaleX(-1); }
.ih-rc-intro__deco--bl{ bottom:0; left:0; transform:translate(-45%,27%); z-index:2; }
.ih-rc-intro__photo img{ width:100%; height:100%; object-fit:cover; object-position:right center; display:block; }
@media (max-width:900px){
  .ih-rc-intro__grid{ grid-template-columns:1fr; }
  .ih-rc-intro__figure{ order:-1; }
  .ih-rc-intro__btns{ flex-wrap:wrap; justify-content:center; }
}

.ih-rc-reasons-head{ text-align:center; margin-bottom:clamp(28px,3vw,44px); }
.ih-rc-reasons-head__sub{ display:inline-block; font-size:clamp(17px,1.9vw,24px); color:var(--ink3); border-bottom:2px dashed #9FD3EE; padding-bottom:4px; margin-bottom:10px; }
.ih-rc-reasons-head__main{ font-family:var(--round); font-weight:600; color:var(--blue-dd); font-size:clamp(26px,3.4vw,42px); line-height:1.3; }
.ih-reasons{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,32px); margin-top:clamp(20px,2vw,32px); max-width:1100px; margin-left:auto; margin-right:auto; }
.ih-reason{ position:relative; background:#fff; border-radius:20px; padding:clamp(30px,2.8vw,40px) clamp(24px,2.4vw,30px) clamp(26px,2.6vw,34px); box-shadow:0 10px 28px rgba(78,163,214,.08); }
.ih-reason__num{ position:absolute; left:-16px; top:-16px; display:grid; place-items:center; width:clamp(52px,4vw,60px); height:clamp(52px,4vw,60px); border-radius:50%; background:var(--pink); color:#fff; font-family:var(--round); font-weight:600; font-size:clamp(24px,2.2vw,28px); box-shadow:0 8px 18px rgba(247,107,193,.32); }
/* 吹き出し風：右斜め下に三角のしっぽ */
.ih-reason__num::after{ content:""; position:absolute; right:2px; bottom:-5px; width:0; height:0; border-left:7px solid transparent; border-right:7px solid transparent; border-top:13px solid var(--pink); transform:rotate(-35deg); transform-origin:center; }
.ih-reason__title{ font-family:var(--round); font-weight:600; font-size:clamp(17px,1.7vw,20px); color:var(--blue-dd); line-height:1.5; margin:0 0 12px; text-align:center; }
.ih-reason__text{ font-size:14px; line-height:1.95; color:var(--ink3); margin:0; }
@media (max-width:900px){ .ih-reasons{ grid-template-columns:1fr; } }

.ih-qa{ max-width:840px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.ih-qa__item{ background:#fff; border-radius:12px; padding:clamp(20px,2.4vw,28px); box-shadow:0 8px 22px rgba(247,107,193,.06); }
.ih-qa__q{ display:flex; gap:12px; align-items:flex-start; font-family:var(--round); font-weight:600; color:var(--blue-dd); font-size:16px; margin:0 0 12px; line-height:1.6; }
.ih-qa__a{ display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.95; color:var(--ink3); margin:0; }
.ih-qa__badge{ flex:none; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; font-family:var(--round); font-weight:600; font-size:15px; }
.ih-qa__badge--q{ background:var(--blue-l); color:var(--blue-d); }
.ih-qa__badge--a{ background:var(--pink-ll); color:var(--pink); }

/* recruit 見出しラッパ（中央） */
.ih-secttl{ text-align:center; margin-bottom:clamp(28px,3vw,44px); }

/* ==========================================================================
 * フッター
 * ========================================================================== */
.ih-footer{ background:#fff; border-top:3px solid var(--line); padding:clamp(40px,5vw,64px) clamp(16px,4vw,40px) 28px; font-family:"Noto Sans JP",system-ui,sans-serif; }
.ih-footer__inner{ max-width:1080px; margin:0 auto; }
.ih-footer__logo{ display:flex; align-items:center; justify-content:center; margin-bottom:28px; }
.ih-footer__logo img{ display:block; height:52px; width:auto; }
.ih-footer__nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px clamp(24px,3vw,44px); margin-bottom:30px; }
.ih-footer__link{ display:inline-flex; align-items:center; gap:9px; font-family:var(--round); font-weight:700; font-size:14.5px; color:var(--ink); }
.ih-footer__link:hover{ color:var(--ink); opacity:.7; }
.ih-footer__arrow{ flex:none; display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--blue); color:#fff; font-size:11px; line-height:1; }
.ih-footer__arrow i{ display:block; }
@media (max-width:900px){ .ih-footer__arrow{ width:18px; height:18px; font-size:9px; } }
.ih-footer__info{ max-width:820px; margin:0 auto 24px; border-radius:16px; padding:14px 24px; display:flex; flex-wrap:wrap; justify-content:center; gap:6px 22px; font-size:14px; color:var(--ink3); text-align:center; }
.ih-footer__info strong{ color:var(--blue-dd); }
.ih-footer__sep{ color:#B7C4CC; }
@media (max-width:900px){
  .ih-footer__info{ flex-direction:column; align-items:center; gap:8px; padding:8px 16px; }
  .ih-footer__sep{ display:none; }
}
.ih-footer__copy{ text-align:center; font-size:14px; letter-spacing:.06em; color:#9FB0BC; margin:0; }
