/* ============================================
   医療法人王心会 — 共通スタイル
   配色：茶系グラデーション（明るめ・誠実感）
   ============================================ */

:root{
  /* メインカラー：茶系 */
  --brown:        #9C7C52;   /* メイン */
  --brown-d:      #7A5F3C;   /* 濃い */
  --brown-l:      #B99C74;   /* 薄い */
  --brown-p:      #F5EFE6;   /* パステル背景 */
  --brown-pp:     #FBF8F3;   /* 最も薄い背景 */

  /* アクセント */
  --gold:         #C9A876;
  --green-s:      #A8BFA0;   /* 医療の安心感 */
  --blue-s:       #A9BECF;   /* クリニック用 */
  --pink-s:       #DBB8AE;   /* 介護用 */

  /* テキスト */
  --text:         #3D3229;
  --text-m:       #6B5F52;
  --text-l:       #9A8C7C;

  /* 線 */
  --line:         #E5DCCF;
  --line-l:       #F0E9DE;

  --max:          1180px;
  --shadow:       0 2px 12px rgba(122,95,60,.08);
  --shadow-h:     0 6px 24px rgba(122,95,60,.14);
}

*{margin:0;padding:0;box-sizing:border-box}

body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color:var(--text);
  line-height:1.9;
  font-size:15px;
  background:#fff;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:.25s}
ul{list-style:none}

/* ============ ヘッダー ============ */
header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-l);
}
.header-inner{
  max-width:var(--max);margin:0 auto;
  padding:0 24px;
  display:flex;align-items:center;justify-content:space-between;
  height:78px;
}
.logo{display:flex;flex-direction:column;line-height:1.25}
.logo .jp{
  font-size:21px;font-weight:700;color:var(--brown-d);
  letter-spacing:.06em;
}
.logo .en{
  font-size:10px;color:var(--brown-l);
  letter-spacing:.14em;font-weight:500;margin-top:2px;
}

.main-nav>ul{display:flex;align-items:center;gap:4px}
.main-nav>ul>li{position:relative}
.main-nav>ul>li>a{
  display:block;padding:10px 15px;
  font-size:13.5px;font-weight:500;color:var(--text-m);
  letter-spacing:.03em;white-space:nowrap;
}
.main-nav>ul>li>a:hover,
.main-nav>ul>li>a.active{color:var(--brown)}
.nav-arr{font-size:9px;margin-left:3px;opacity:.6}

/* ドロップダウン */
.dd{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);
  background:#fff;border:1px solid var(--line-l);
  border-radius:6px;box-shadow:var(--shadow-h);
  min-width:190px;padding:8px 0;
  opacity:0;visibility:hidden;transition:.25s;
}
.has-dd:hover .dd{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dd li a{
  display:block;padding:9px 20px;
  font-size:13px;color:var(--text-m);
}
.dd li a:hover{background:var(--brown-pp);color:var(--brown)}

.hd-tel{
  display:flex;flex-direction:column;align-items:flex-end;
  padding-left:18px;margin-left:6px;border-left:1px solid var(--line-l);
}
.hd-tel .lbl{font-size:10px;color:var(--text-l);letter-spacing:.06em}
.hd-tel .num{
  font-size:19px;font-weight:700;color:var(--brown-d);
  letter-spacing:.02em;line-height:1.3;
}

/* ============ フローティングボタン ============ */
.float-btns{
  position:fixed;right:0;top:50%;transform:translateY(-50%);
  z-index:90;display:flex;flex-direction:column;gap:8px;
}
.fbt{
  width:84px;height:84px;border-radius:50% 0 0 50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;color:#fff;font-size:10.5px;font-weight:500;
  text-align:center;line-height:1.35;
  box-shadow:-2px 2px 12px rgba(0,0,0,.1);
  transition:.25s;padding-left:8px;
}
.fbt:hover{transform:translateX(-4px)}
.fbt-icon{font-size:17px}
.fbt1{background:linear-gradient(135deg,#B99C74,#9C7C52)}
.fbt2{background:linear-gradient(135deg,#A9BECF,#8AA5BA)}
.fbt3{background:linear-gradient(135deg,#DBB8AE,#C79C90)}
.fbt4{background:linear-gradient(135deg,#A8BFA0,#8CA783)}

/* ============ ヒーロー ============ */
.hero{
  display:grid;grid-template-columns:1fr 1fr;
  height:calc(100vh - 78px);min-height:520px;max-height:760px;
  position:relative;overflow:hidden;
}
.hero-panel{position:relative;overflow:hidden}
.hero-panel img{
  width:100%;height:100%;object-fit:cover;
  transition:opacity .7s ease;
}
.hero-panel.right-grid{
  display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;
  height:100%;
}
.hero-panel.right-grid img{
  width:100%;height:100%;object-fit:cover;min-height:0;
}

/* ヒーロー上の丸ボタン */
.hero-circles{
  position:absolute;inset:0;z-index:5;
  pointer-events:none;
}
.h-circle{
  position:absolute;
  width:150px;height:150px;border-radius:50%;
  background:rgba(255,255,255,.93);
  backdrop-filter:blur(3px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;pointer-events:auto;
  box-shadow:0 6px 28px rgba(122,95,60,.18);
  transition:.3s;
  border:2px solid rgba(201,168,118,.35);
}
.h-circle:hover{transform:scale(1.06);box-shadow:0 10px 36px rgba(122,95,60,.26)}
.h-circle .ic{font-size:30px;line-height:1}
.h-circle .tx{
  font-size:13.5px;font-weight:600;color:var(--brown-d);
  letter-spacing:.04em;text-align:center;line-height:1.4;
}
.h-circle .sub{font-size:9.5px;color:var(--text-l);letter-spacing:.1em}

.hc1{top:26%;left:24%}
.hc2{top:14%;left:47%}
.hc3{top:44%;left:64%}
.hc4{bottom:16%;left:34%}
.hc5{bottom:9%;left:56%}

.hero-catch{
  position:absolute;right:40px;bottom:36px;z-index:6;
  color:#fff;text-align:right;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
  font-size:24px;font-weight:500;line-height:1.9;
  letter-spacing:.08em;
}

/* ============ セクション共通 ============ */
.c-sec{padding:76px 0}
.c-sec.bg{background:var(--brown-pp)}
.c-inner{max-width:var(--max);margin:0 auto;padding:0 24px}

.sec-hd{text-align:center;margin-bottom:46px}
.sec-hd .en{
  display:block;font-size:11px;letter-spacing:.28em;
  color:var(--brown-l);font-weight:500;margin-bottom:8px;
}
.sec-hd .jp{
  font-size:27px;font-weight:600;color:var(--text);
  letter-spacing:.06em;
}
.sec-hd .dots{
  display:flex;justify-content:center;gap:5px;margin-top:14px;
}
.sec-hd .dots span{
  width:5px;height:5px;border-radius:50%;background:var(--gold);opacity:.4;
}
.sec-hd .dots span:nth-child(2){opacity:.7}
.sec-hd .dots span:nth-child(3){opacity:1}

.sub-hd{
  font-size:19px;font-weight:600;color:var(--brown-d);
  padding-left:14px;border-left:4px solid var(--gold);
  margin-bottom:22px;letter-spacing:.04em;
}

/* ============ 施設カード ============ */
.fac-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:26px;
}
.fac-card{
  background:#fff;border:1px solid var(--line-l);
  border-radius:10px;overflow:hidden;
  box-shadow:var(--shadow);transition:.3s;
}
.fac-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-h)}
.fac-img{height:190px;overflow:hidden;position:relative}
.fac-img img{width:100%;height:100%;object-fit:cover;transition:.5s}
.fac-card:hover .fac-img img{transform:scale(1.05)}
.fac-badge{
  position:absolute;top:12px;left:12px;
  padding:4px 12px;border-radius:3px;
  font-size:11px;font-weight:600;color:#fff;
  letter-spacing:.06em;
}
.fac-badge.med{background:rgba(156,124,82,.9)}
.fac-badge.care{background:rgba(219,184,174,.92)}
.fac-body{padding:22px 24px 26px}
.fac-body h3{
  font-size:18px;font-weight:600;color:var(--text);
  margin-bottom:6px;letter-spacing:.03em;
}
.fac-body .dept{
  font-size:12px;color:var(--brown);
  padding-bottom:12px;margin-bottom:12px;
  border-bottom:1px dashed var(--line);
}
.fac-body .info{font-size:12.5px;color:var(--text-m);line-height:1.9}
.fac-body .info .tel{
  font-size:16px;font-weight:700;color:var(--brown-d);
  letter-spacing:.02em;
}
.fac-more{
  display:inline-block;margin-top:14px;
  font-size:12.5px;color:var(--brown);font-weight:500;
}
.fac-more:after{content:" →";transition:.25s}
.fac-card:hover .fac-more:after{margin-left:4px}

/* ============ お知らせ ============ */
.news-list{max-width:820px;margin:0 auto}
.news-item{
  display:flex;gap:22px;align-items:flex-start;
  padding:18px 4px;border-bottom:1px solid var(--line-l);
  transition:.25s;
}
.news-item:hover{background:#fff;padding-left:12px}
.news-date{
  flex:none;font-size:12.5px;color:var(--text-l);
  letter-spacing:.04em;padding-top:2px;width:92px;
}
.news-cat{
  flex:none;font-size:10.5px;padding:3px 10px;
  border-radius:3px;background:var(--brown-p);color:var(--brown-d);
  font-weight:500;letter-spacing:.04em;
}
.news-ttl{font-size:14px;color:var(--text);line-height:1.7}
.news-item:hover .news-ttl{color:var(--brown)}

.btn-more{
  display:block;width:200px;margin:34px auto 0;
  padding:13px 0;text-align:center;
  border:1px solid var(--brown-l);border-radius:30px;
  font-size:13px;color:var(--brown-d);font-weight:500;
  letter-spacing:.08em;transition:.3s;
}
.btn-more:hover{background:var(--brown);color:#fff;border-color:var(--brown)}

/* ============ 診療時間テーブル ============ */
.hrs-tbl{
  width:100%;border-collapse:collapse;
  font-size:13.5px;background:#fff;
}
.hrs-tbl th,.hrs-tbl td{
  border:1px solid var(--line);padding:12px 8px;text-align:center;
}
.hrs-tbl thead th{
  background:var(--brown-p);color:var(--brown-d);
  font-weight:600;font-size:13px;
}
.hrs-tbl tbody th{
  background:var(--brown-pp);color:var(--text-m);
  font-weight:500;text-align:left;padding-left:16px;
  white-space:nowrap;
}
.hrs-tbl td{color:var(--brown);font-size:15px}
.hrs-note{
  font-size:12.5px;color:var(--text-l);margin-top:12px;line-height:1.9;
}

/* ============ 情報テーブル ============ */
.info-tbl{
  width:100%;border-collapse:collapse;font-size:14px;
}
.info-tbl th{
  width:180px;padding:15px 20px;text-align:left;
  background:var(--brown-pp);color:var(--brown-d);
  font-weight:500;border-bottom:1px solid var(--line-l);
  vertical-align:top;
}
.info-tbl td{
  padding:15px 20px;color:var(--text-m);
  border-bottom:1px solid var(--line-l);
}

/* ============ フッター ============ */
footer{
  background:linear-gradient(135deg,#8A6E48 0%,#7A5F3C 60%,#63492C 100%);
  color:#fff;padding:56px 0 26px;margin-top:0;
}
.footer-inner{max-width:var(--max);margin:0 auto;padding:0 24px}
.f-org{
  font-size:22px;font-weight:600;letter-spacing:.06em;
  padding-bottom:8px;
}
.f-org-en{
  font-size:10px;letter-spacing:.16em;opacity:.6;
  margin-bottom:34px;
}
.f-cols{
  display:grid;grid-template-columns:repeat(4,1fr);gap:30px;
  padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.15);
}
.f-col h4{
  font-size:12.5px;font-weight:600;letter-spacing:.1em;
  padding-bottom:12px;margin-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.2);
  opacity:.9;
}
.f-col ul li{margin-bottom:8px}
.f-col ul li a{font-size:12.5px;opacity:.75}
.f-col ul li a:hover{opacity:1;padding-left:4px}
.f-col .addr{font-size:12px;opacity:.75;line-height:1.9}
.f-col .addr .tel{
  font-size:16px;font-weight:600;opacity:1;
  display:block;margin-top:4px;
}
.copyright{
  text-align:center;font-size:11px;opacity:.55;
  margin-top:24px;letter-spacing:.04em;
}

/* ============ 下層ページ ============ */
.page-hero{
  position:relative;height:270px;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.page-hero-img{position:absolute;inset:0}
.page-hero-img img{width:100%;height:100%;object-fit:cover}
.page-hero-ov{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(122,95,60,.42),rgba(99,73,44,.58));
}
.page-hero h1{
  position:relative;z-index:2;color:#fff;
  font-size:31px;font-weight:600;letter-spacing:.16em;
  text-shadow:0 2px 10px rgba(0,0,0,.25);
}
.page-hero .en{
  position:relative;z-index:2;color:#fff;
  font-size:10.5px;letter-spacing:.3em;opacity:.8;
  margin-top:8px;
}
.breadcrumb{
  position:relative;z-index:2;color:#fff;
  font-size:11.5px;opacity:.85;margin-top:14px;
}
.breadcrumb a:hover{text-decoration:underline}

.anch-nav{
  background:var(--brown-pp);border-bottom:1px solid var(--line-l);
  position:sticky;top:78px;z-index:80;
}
.anch-nav ul{
  max-width:var(--max);margin:0 auto;padding:0 24px;
  display:flex;justify-content:center;flex-wrap:wrap;
}
.anch-nav li a{
  display:block;padding:15px 22px;
  font-size:13px;color:var(--text-m);font-weight:500;
  border-bottom:2px solid transparent;
}
.anch-nav li a:hover{color:var(--brown);border-bottom-color:var(--gold)}

/* ============ 汎用パーツ ============ */
.lead{
  font-size:15px;color:var(--text-m);line-height:2.2;
  text-align:center;max-width:780px;margin:0 auto 40px;
}
.txt{font-size:14.5px;color:var(--text-m);line-height:2.15}
.txt+.txt{margin-top:18px}

.ck-list li{
  font-size:14px;color:var(--text-m);
  padding:10px 0 10px 30px;position:relative;
  border-bottom:1px dashed var(--line-l);
}
.ck-list li:before{
  content:"✓";position:absolute;left:6px;top:10px;
  color:var(--gold);font-weight:700;
}

.card-grid{display:grid;gap:20px}
.card-grid.c2{grid-template-columns:1fr 1fr}
.card-grid.c3{grid-template-columns:repeat(3,1fr)}
.g-card{
  background:#fff;border:1px solid var(--line-l);
  border-radius:8px;padding:26px 28px;
  box-shadow:var(--shadow);
}
.g-card h4{
  font-size:16px;font-weight:600;color:var(--brown-d);
  margin-bottom:10px;letter-spacing:.03em;
}
.g-card p{font-size:13.5px;color:var(--text-m);line-height:2}

.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.step{
  text-align:center;padding:28px 22px;
  background:var(--brown-p);border-radius:8px;
}
.step .n{
  width:34px;height:34px;border-radius:50%;
  background:var(--brown);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:600;margin:0 auto 12px;
}
.step h5{font-size:14px;color:var(--brown-d);margin-bottom:8px;font-weight:600}
.step p{font-size:12.5px;color:var(--text-m);line-height:1.9}

.photo-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
}
.photo-strip img{width:100%;height:210px;object-fit:cover}

.photo-band{position:relative;height:290px;overflow:hidden}
.photo-band img{width:100%;height:100%;object-fit:cover}
.photo-band-ov{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(122,95,60,.72),rgba(122,95,60,.32));
  display:flex;align-items:center;
}
.photo-band-ov p{
  max-width:var(--max);margin:0 auto;padding:0 24px;width:100%;
  color:#fff;font-size:22px;font-weight:500;line-height:2;
  letter-spacing:.06em;text-shadow:0 2px 10px rgba(0,0,0,.2);
}

/* ============ レスポンシブ ============ */
@media(max-width:1000px){
  .fac-grid{grid-template-columns:1fr;gap:20px}
  .f-cols{grid-template-columns:1fr 1fr;gap:24px}
  .card-grid.c3{grid-template-columns:1fr}
  .step-grid{grid-template-columns:1fr}
  .photo-strip{grid-template-columns:1fr 1fr}
  .photo-strip img{height:170px}
}

@media(max-width:860px){
  .header-inner{height:62px;padding:0 16px}
  .logo .jp{font-size:17px}
  .logo .en{font-size:8.5px}
  .main-nav{display:none}
  .hd-tel{border:none;padding:0}
  .hd-tel .num{font-size:16px}

  .hero{grid-template-columns:1fr;height:auto;max-height:none}
  .hero-panel{height:240px}
  .hero-panel.right-grid{grid-template-columns:1fr 1fr;grid-template-rows:1fr;height:180px}
  .hero-circles{position:relative;inset:auto;padding:24px 16px;
    display:grid;grid-template-columns:repeat(3,1fr);gap:12px;background:var(--brown-pp)}
  .h-circle{position:static;width:100%;height:auto;aspect-ratio:1;border-radius:50%}
  .h-circle .ic{font-size:22px}
  .h-circle .tx{font-size:11px}
  .hero-catch{display:none}

  .c-sec{padding:48px 0}
  .c-inner{padding:0 16px}
  .sec-hd .jp{font-size:21px}
  .float-btns{display:none}

  .page-hero{height:180px}
  .page-hero h1{font-size:22px}
  .anch-nav{top:62px}
  .anch-nav li a{padding:12px 14px;font-size:12px}

  .card-grid.c2{grid-template-columns:1fr}
  .f-cols{grid-template-columns:1fr}
  .info-tbl th{width:110px;padding:12px;font-size:13px}
  .info-tbl td{padding:12px;font-size:13px}
  .hrs-tbl th,.hrs-tbl td{padding:9px 4px;font-size:12px}
  .photo-band-ov p{font-size:15px}
  .news-item{flex-direction:column;gap:6px}
  .news-date{width:auto}
}
