@charset "UTF-8";
/* =========================================================
   阿部医院 トップページ たたき台（layout.pptx 準拠）
   メインカラー：濃い緑（ロゴ #008955）／背景：白
   サブカラー：セージ・ミント・クリーム
   ========================================================= */
:root{
  --green-deep:#008955;
  --green:#1a9268;
  --green-soft:#6cbf9a;
  --mint:#eef6f1;
  --mint-2:#f5faf7;
  --cream:#f7f3ea;
  --ink:#33403a;
  --ink-soft:#5c6862;
  --line:#dfe6e1;
  --line-d:rgba(255,255,255,.45);
  --white:#fff;
  --max:1220px;
  --radius:12px;
  --shadow:0 14px 40px rgba(0,80,50,.07);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP",sans-serif;color:var(--ink);background:var(--white);
  line-height:1.9;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:.25s}
.container{width:90%;max-width:var(--max);margin-inline:auto}

/* ---------- Outline pill buttons (layout style) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:1em;
  padding:.8em 1.6em;border-radius:999px;font-weight:500;font-size:.9rem;line-height:1.4;
  border:1px solid var(--green-deep);color:var(--green-deep);background:#fff;transition:.25s;min-width:220px}
.btn span{transition:transform .25s}
.btn:hover{background:var(--green-deep);color:#fff}
.btn:hover span{transform:translateX(5px)}
.btn-line-d{border-color:var(--line-d);color:#fff;background:transparent;min-width:0;width:100%}
.btn-line-d:hover{background:#fff;color:var(--green-deep);border-color:#fff}

/* ---------- Section heading ---------- */
.sec-h,.block-head h2{font-family:"Noto Serif JP",serif;font-weight:600;font-size:1.7rem;
  color:var(--green-deep);letter-spacing:.05em;line-height:1.3}
.sec-h .en,.block-head .en{display:block;font-family:"Cormorant Garamond",serif;font-weight:600;
  font-size:.9rem;letter-spacing:.22em;text-transform:uppercase;color:var(--green-soft);margin-bottom:.1em}

/* =========================================================
   Header（2段：情報行＋ナビ行）
   ========================================================= */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);
  backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.header-top{display:flex;align-items:center;gap:1.8rem;width:95%;max-width:1480px;margin-inline:auto;padding:.95rem 0}
.brand{display:flex;align-items:center;gap:.7rem}
.brand-logo{width:58px;height:58px}
.brand-text small{display:block;font-size:.72rem;color:var(--green-soft);letter-spacing:.16em}
.brand-text strong{font-family:"Noto Serif JP",serif;font-size:1.7rem;letter-spacing:.12em;color:var(--green-deep)}
.header-info{margin-left:auto;display:flex;align-items:center;gap:1.6rem}
.hi-hours{text-align:right;line-height:1.55}
.hi-time{font-size:.96rem;font-weight:500;color:var(--ink)}
.hi-time span{color:var(--green);font-weight:700;margin-right:.5em}
.hi-rest{font-size:.76rem;color:var(--ink-soft)}
.hi-tel{display:inline-flex;align-items:center;gap:.4em;font-family:"Oswald",sans-serif;font-weight:600;font-size:1.9rem;color:var(--green-deep);letter-spacing:.04em}
.hi-tel-ico{width:1.05em;height:1.05em;flex:0 0 auto;color:var(--green);transform:translateY(-1px)}
.hi-tel:hover{color:var(--green)}
.h-web{min-width:0;padding:1em 2em;font-size:1.02rem;font-weight:700}
/* WEB予約：緑グラデーション＋白文字＋予約アイコン */
.btn-book{display:inline-flex;align-items:center;justify-content:center;gap:.45em;line-height:1;
  border-radius:999px;font-weight:700;color:#fff;letter-spacing:.03em;
  background:linear-gradient(135deg,#f5ad5e 0%,#e5822a 55%,#d4741f 100%);
  box-shadow:0 6px 16px rgba(200,110,25,.38);transition:.25s}
.btn-book svg{width:1.2em;height:1.2em;flex:0 0 auto}
.btn-book:hover{color:#fff;transform:translateY(-1px);
  background:linear-gradient(135deg,#ee9f47 0%,#d9761f 55%,#c46714 100%);
  box-shadow:0 9px 22px rgba(200,110,25,.5)}
.gnav{border-top:1px solid var(--line)}
.gnav ul{display:flex;justify-content:center;gap:3rem;list-style:none;flex-wrap:wrap}
.gnav a{display:block;padding:1.15em .2em;font-size:1.06rem;font-weight:500;position:relative}
.gnav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--green-deep);transform:scaleX(0);transition:.25s}
.gnav a:hover{color:var(--green-deep)}
.gnav a:hover::after{transform:scaleX(1)}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.hamburger span{width:26px;height:2px;background:var(--green-deep);transition:.3s}
.hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.is-open span:nth-child(2){opacity:0}
.hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* =========================================================
   Hero（縦長写真の横並びスライダー＋縦書きキャッチ）
   ========================================================= */
.hero{position:relative;background:var(--mint);overflow:hidden}
.hero-strip{overflow:hidden}
.hero-track{display:flex;gap:14px;padding:14px;width:max-content;animation:heroScroll 38s linear infinite}
.hframe{width:clamp(300px,26vw,440px);height:clamp(440px,62vh,660px);border-radius:10px;overflow:hidden;flex:0 0 auto;box-shadow:0 8px 22px rgba(0,60,40,.12)}
.hframe--wide{width:clamp(460px,42vw,720px)}
.hframe img{width:100%;height:100%;object-fit:cover}
@keyframes heroScroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 7px))}}
.hero-catch{position:absolute;z-index:5;top:50%;left:13%;transform:translateY(-50%);
  writing-mode:vertical-rl;white-space:nowrap;font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(1.4rem,2.7vw,2.2rem);line-height:1.55;letter-spacing:.1em;color:#fff;
  text-shadow:0 2px 16px rgba(0,40,25,.55),0 0 30px rgba(0,40,25,.4);
  padding:1rem .4rem;border-radius:8px}

/* =========================================================
   News + 診療時間（2カラム）
   ========================================================= */
.top-row{padding:4.5rem 0}
.top-row-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:3rem}
.block-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;
  margin-bottom:1.3rem;padding-bottom:.8rem;border-bottom:2px solid var(--mint)}
.more-link{font-size:.82rem;color:var(--green-deep);font-weight:700;display:inline-flex;gap:.4em;align-items:center}
.more-link span{transition:transform .25s}.more-link:hover span{transform:translateX(4px)}
/* News */
.news-list{list-style:none}
.news-list a{display:flex;align-items:center;gap:1rem;padding:.95rem .2rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.news-list a:hover{color:var(--green-deep)}
.news-list time{font-family:"Cormorant Garamond",serif;font-size:1rem;color:var(--green);font-weight:600;min-width:88px}
.news-cat{font-size:.68rem;font-weight:700;color:#fff;background:var(--green-soft);padding:.2em .9em;border-radius:999px}
.news-list p{flex:1;min-width:160px;font-size:.9rem}
/* 診療時間 */
.hours-table{width:100%;border-collapse:collapse;text-align:center;font-size:.95rem;margin-bottom:1rem}
.hours-table th,.hours-table td{border:1px solid var(--line);padding:.7em .3em}
.hours-table thead th{background:var(--green-deep);color:#fff;font-weight:500}
.hours-table thead th.sat{background:#3d8fb0}
.hours-table thead th.sun{background:#c2603f}
.hours-table tbody th{background:var(--mint-2);font-weight:700;white-space:nowrap;font-size:.86rem}
.hours-table td{font-size:1.1rem;color:var(--green);font-weight:700}
.hours-table td.x{color:#cf7b5f}
.hours-table td.tri{color:#d99a3c}
.hours-rest{font-size:.82rem;color:var(--ink-soft);background:var(--cream);border-left:4px solid var(--green-soft);
  padding:.85em 1.1em;border-radius:6px;line-height:1.8}
.hours-rest .legend{color:#d99a3c;font-weight:700;margin-right:.3em}
.hours-rest strong{color:var(--green-deep)}

/* =========================================================
   About（top_6 を背景に）
   ========================================================= */
.about{position:relative;padding:8rem 0;background-size:cover;background-position:center center;
  background-attachment:fixed;overflow:hidden;text-align:center}
.about-overlay{position:absolute;inset:0;background:
  radial-gradient(125% 95% at 50% 44%,rgba(255,255,255,.62) 0%,rgba(255,255,255,.34) 46%,rgba(255,255,255,.12) 100%)}
.about-inner{position:relative;z-index:2}
.about-text{max-width:820px;margin-inline:auto}
.about-h{margin-bottom:1.6rem}
.about-h .en{color:var(--green-deep)}
.about-h.sec-h{text-shadow:0 1px 14px rgba(255,255,255,.95)}
.about-text p{margin-bottom:1.1rem;color:#222b27;font-weight:500;
  text-shadow:0 1px 10px rgba(255,255,255,.92),0 0 22px rgba(255,255,255,.7)}
.pc{display:inline}
.sp-br{display:none}

/* =========================================================
   Service（在宅医療・訪問看護：丸写真＋丸バッジ）
   ========================================================= */
.service{position:relative;padding:5rem 0;overflow:hidden}
.service--left{background:var(--mint)}
/* 各サービスに合う背景アイコン（さりげないウォーターマーク） */
.service::before,.sp-col::before{content:"";position:absolute;z-index:0;width:min(340px,44%);height:340px;
  background-repeat:no-repeat;background-position:center;background-size:contain;pointer-events:none}
#sv-homecare::before{top:8%;left:22%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23008955' fill-opacity='0.07' d='M12 3 3 10.5V21h6v-6h6v6h6V10.5z'/%3E%3C/svg%3E")}
#sv-visiting::before{top:8%;right:22%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23008955' fill-opacity='0.08' d='M12 21s-7.5-4.6-10-9C.6 9.3 2 5.5 6 5.5c2.1 0 3.2 1.4 4 2.8.8-1.4 1.9-2.8 4-2.8 4 0 5.4 3.8 4 6.5-2.5 4.4-10 9-10 9z'/%3E%3C/svg%3E")}
.service-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr 420px;gap:3.5rem;align-items:center}
.service--left .service-inner{grid-template-columns:420px 1fr}
.sv-lead{color:var(--green);font-size:1rem;font-weight:700;margin-bottom:.3rem}
.sv-title{font-family:"Noto Serif JP",serif;font-size:2rem;font-weight:600;color:var(--ink);margin-bottom:1.1rem;
  display:inline-block;border-bottom:3px solid var(--green-soft);padding-bottom:.15em}
.sv-body{color:var(--ink-soft);font-size:.94rem;margin-bottom:1.6rem}
/* 丸バッジ */
.sv-circles{list-style:none;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.8rem}
.sv-circles li{position:relative;width:118px;height:118px;border-radius:50%;border:1.5px solid var(--green-deep);
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:.95rem;font-weight:700;color:#fff;line-height:1.35;background:var(--green-deep)}
/* 円の内側に白の点線リング（参考：27584040.png） */
.sv-circles li::before{content:"";position:absolute;inset:7px;border-radius:50%;
  border:2px dashed rgba(255,255,255,.9);pointer-events:none}
.sv-btn{min-width:260px}
/* 丸写真 */
.service-photo{position:relative;aspect-ratio:1/1}
.photo-circle{width:100%;height:100%;border-radius:50%;overflow:hidden;box-shadow:var(--shadow);
  border:8px solid #fff;outline:1px solid var(--mint);position:relative;z-index:1;background:#fff}
.photo-circle img{width:100%;height:100%;object-fit:contain;padding:7%;transition:transform .8s}
.service-photo:hover .photo-circle img{transform:scale(1.06)}
/* ふんわりした薄オレンジのぼかし円（写真の背後からはみ出す） */
.photo-blob{position:absolute;z-index:0;width:190px;height:190px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 42% 42%,rgba(255,176,102,.85),rgba(255,150,74,.5));
  filter:blur(10px)}
.service--right .photo-blob{right:-42px;bottom:-30px}
.service--left .photo-blob{left:-42px;bottom:-30px}

/* =========================================================
   居宅介護 + 外来診療（2カラム）
   ========================================================= */
.service-pair{padding:5rem 0}
.service-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.sp-col{position:relative;overflow:hidden}
.sp-col>*{position:relative;z-index:1}
.sp-col::before{width:230px;height:230px;top:auto;bottom:6%;right:4%}
#sv-care::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23008955' fill-opacity='0.06' d='M9 2h6v2h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V2zm-1 9 3 3 5-5-1.4-1.4L11 11.2 9.4 9.6 8 11z'/%3E%3C/svg%3E")}
#sv-outpatient::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23008955' fill-opacity='0.06' d='M10 3h4v5h5v4h-5v5h-4v-5H5V8h5z'/%3E%3C/svg%3E")}
.sp-col .sv-body{min-height:auto}
.sp-btns{display:flex;flex-direction:column;gap:.7rem;align-items:flex-start}
.sp-btns .btn,.sp-col>.sv-btn{min-width:300px;max-width:100%}

/* =========================================================
   訪問車が走る区切り演出（訪問看護 → 居宅介護 の間）
   ========================================================= */
.road{position:relative;height:120px;overflow:hidden;
  background:linear-gradient(180deg,var(--mint) 0%,#fff 100%)}
.road::before{content:"";position:absolute;left:0;right:0;bottom:44px;height:3px;
  background:repeating-linear-gradient(90deg,var(--green-soft) 0 26px,transparent 26px 48px)}
.road-car{position:absolute;bottom:30px;left:0;width:132px;will-change:transform;
  animation:carDrive 9s linear infinite}
.road-car img{width:100%;height:auto;display:block;transform:scaleX(-1);
  filter:drop-shadow(0 5px 5px rgba(0,60,40,.18));animation:carBob .5s ease-in-out infinite alternate}
@keyframes carDrive{0%{transform:translateX(-170px)}100%{transform:translateX(calc(100vw + 40px))}}
@keyframes carBob{from{transform:scaleX(-1) translateY(0)}to{transform:scaleX(-1) translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.road-car{animation:none;left:50%;transform:translateX(-50%)}.road-car img{animation:none}}

/* =========================================================
   24時間連絡体制
   ========================================================= */
.contact24{position:relative;padding:5.5rem 0;overflow:hidden;
  background:radial-gradient(120% 130% at 15% 10%,#f6b26e 0%,#f0993f 48%,#e5822a 100%)}
/* さりげないドット＋十字模様 */
.contact24::before{content:"";position:absolute;inset:0;z-index:0;opacity:.6;
  background-image:radial-gradient(rgba(255,255,255,.2) 2px,transparent 2px);
  background-size:22px 22px}
.contact24::after{content:"";position:absolute;right:-40px;bottom:-40px;z-index:0;width:260px;height:260px;
  background-repeat:no-repeat;background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' fill-opacity='0.1' d='M10 3h4v5h5v4h-5v5h-4v-5H5V8h5z'/%3E%3C/svg%3E")}
.contact24 .container{position:relative;z-index:1}
.c24-box{position:relative;border:1px solid rgba(255,255,255,.7);border-radius:16px;padding:2rem;
  background:rgba(255,255,255,.95);backdrop-filter:blur(3px);box-shadow:0 18px 46px rgba(180,90,20,.28)}
.c24-title{text-align:center;font-family:"Noto Serif JP",serif;font-size:1.3rem;font-weight:600;color:#c56f16;margin-bottom:1.4rem;letter-spacing:.04em}
.c24-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;max-width:840px;margin-inline:auto}
.c24-tel{display:flex;align-items:center;gap:1.1rem;justify-content:center;background:#fff;
  border:1px solid var(--line);border-radius:12px;padding:1rem 1.4rem;transition:.25s}
.c24-tel:hover{border-color:#e5822a;box-shadow:0 10px 26px rgba(180,90,20,.18)}
.c24-badge{flex:0 0 auto;width:52px;height:52px;border-radius:50%;border:1.5px solid #d47a1f;
  display:flex;align-items:center;justify-content:center;font-size:.86rem;font-weight:700;color:#c56f16}
.c24-num{font-family:"Oswald",sans-serif;font-size:1.85rem;font-weight:600;color:var(--ink);letter-spacing:.04em}

/* =========================================================
   Footer
   ========================================================= */
.site-footer{background:var(--green-deep);color:#fff;padding:3.4rem 0 0}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:2.6rem;padding-bottom:2.6rem}
.f-brand-head{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}
.f-logo{width:50px;height:50px;background:#fff;border-radius:10px;padding:5px}
.f-brand-head small{display:block;font-size:.64rem;color:var(--green-soft);letter-spacing:.16em}
.f-brand-head strong{font-family:"Noto Serif JP",serif;font-size:1.3rem;letter-spacing:.1em}
.f-addr{font-size:.84rem;color:rgba(255,255,255,.85);line-height:1.9;margin-bottom:1.2rem}
.f-btns{display:flex;flex-direction:column;gap:.6rem;align-items:stretch;width:max-content;max-width:100%}
.f-btns .btn{width:auto;min-width:0;font-size:.8rem;padding:.6em 1.3em;gap:1.2em;white-space:nowrap}
.f-nav{display:flex;flex-direction:column;gap:.55rem;padding-top:.3rem}
.f-nav a{font-size:.94rem;color:rgba(255,255,255,.92)}
.f-nav a:hover{color:#fff;text-decoration:underline}
.f-facilities{display:flex;flex-direction:column;gap:.7rem}
.fac-card{display:block;background:rgba(255,255,255,.96);color:var(--ink);border-radius:8px;padding:.7rem 1rem;transition:.25s}
.fac-card:hover{transform:translateX(4px)}
.fac-card small{display:block;font-size:.66rem;color:var(--green);font-weight:700}
.fac-card strong{font-family:"Noto Serif JP",serif;font-size:1.05rem;color:var(--ink)}
.fac-card span{display:block;font-size:.68rem;color:var(--ink-soft);line-height:1.6;margin-top:.2em}
/* グループ施設バナー */
.footer-group{border-top:1px solid rgba(255,255,255,.18);padding:2.8rem 0 1rem}
.fg-title{text-align:center;font-family:"Noto Serif JP",serif;font-size:1.5rem;font-weight:600;color:#fff;letter-spacing:.08em;margin-bottom:1.6rem}
.fg-title .en{display:block;font-family:"Cormorant Garamond",serif;font-size:.85rem;letter-spacing:.24em;text-transform:uppercase;color:var(--green-soft);font-weight:600;margin-bottom:.1em}
.fg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.fg-banner{display:block;border-radius:10px;overflow:hidden;box-shadow:0 8px 22px rgba(0,40,25,.25);transition:.25s;background:#fff}
.fg-banner img{width:100%;height:auto;display:block;transition:transform .5s}
.fg-banner:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,40,25,.35)}
.fg-banner:hover img{transform:scale(1.04)}
.footer-map{height:340px}
.footer-map iframe{width:100%;height:100%;border:0;display:block}
.copyright{text-align:center;font-size:.72rem;color:rgba(255,255,255,.85);padding:1.1rem 0;
  font-family:"Cormorant Garamond",serif;letter-spacing:.08em;background:rgba(0,0,0,.12)}

/* ---------- Page top ---------- */
.pagetop{position:fixed;right:18px;bottom:18px;z-index:80;width:46px;height:46px;border-radius:50%;
  background:var(--green-deep);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;opacity:0;pointer-events:none;transition:.3s;box-shadow:0 6px 18px rgba(0,60,40,.3)}
.pagetop.show{opacity:1;pointer-events:auto}
.pagetop:hover{background:#00744a}

/* 右下に追従するWEB予約ボタン（スマホのみ表示） */
.fab-book{display:none;position:fixed;right:14px;bottom:14px;z-index:95;
  align-items:center;justify-content:center;gap:.45em;padding:.95em 1.5em;
  border-radius:999px;font-weight:700;font-size:1rem;color:#fff;letter-spacing:.03em;
  background:linear-gradient(135deg,#f5ad5e 0%,#e5822a 55%,#d4741f 100%);
  box-shadow:0 10px 24px rgba(200,110,25,.5)}
.fab-book svg{width:1.25em;height:1.25em;flex:0 0 auto}
.fab-book:active{transform:scale(.97)}

/* =========================================================
   下層ページ（医院案内 等）
   ========================================================= */
.page-hero{position:relative;background:url('../images/sec_home.jpg') center 62%/cover no-repeat;padding:4.5rem 0;text-align:center;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,120,72,.74),rgba(0,92,55,.8))}
.page-hero .container{position:relative;z-index:1}
.page-hero h1{font-family:"Noto Serif JP",serif;font-size:2.1rem;font-weight:600;color:#fff;letter-spacing:.1em;text-shadow:0 2px 14px rgba(0,40,25,.4)}
.page-hero .en{display:block;font-family:"Cormorant Garamond",serif;font-size:.95rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.85);font-weight:600;margin-bottom:.15em}
.breadcrumb{margin-top:.9rem;font-size:.8rem;color:rgba(255,255,255,.9);display:flex;gap:.6em;justify-content:center;align-items:center}
.breadcrumb a{color:#fff}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb span{color:rgba(255,255,255,.7)}

/* 下層ページの見出し（中央・見出しと本文の間を広めに） */
.sec-head{text-align:center;margin-bottom:3.6rem}
.sec-en{display:block;font-family:"Cormorant Garamond",serif;font-size:1rem;letter-spacing:.24em;text-transform:uppercase;color:var(--green-soft);font-weight:600;margin-bottom:.15em}
.sec-jp{font-family:"Noto Serif JP",serif;font-size:2rem;font-weight:600;color:var(--green-deep);letter-spacing:.06em}

/* ごあいさつ */
.greeting{padding:5rem 0}
.greeting-grid{display:grid;grid-template-columns:1fr 300px;gap:3rem;align-items:start}
.doctor-photo{aspect-ratio:3/4;border:2px dashed var(--green-soft);border-radius:12px;background:var(--mint-2);
  display:flex;align-items:center;justify-content:center;color:var(--green-soft);font-weight:700;letter-spacing:.14em;font-size:.95rem}
.doctor-photo img{width:100%;height:100%;object-fit:cover;border-radius:10px}
.doctor-name{margin-top:1rem;text-align:center;font-family:"Noto Serif JP",serif;font-size:1.15rem;color:var(--ink);font-weight:600}
.doctor-name small{display:block;font-family:"Noto Sans JP",sans-serif;font-size:.8rem;color:var(--ink-soft);font-weight:500;margin-top:.35em}
.doctor-career{margin-top:1.5rem;background:var(--mint);border-radius:12px;padding:1.3rem 1.5rem}
.doctor-career h3{font-family:"Noto Serif JP",serif;font-size:1.05rem;color:var(--green-deep);margin-bottom:.8rem;text-align:center}
.doctor-career ul{list-style:none;display:grid;gap:.55rem}
.doctor-career li{position:relative;padding-left:1.3em;font-size:.9rem;color:var(--ink-soft)}
.doctor-career li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:2px;background:var(--green-soft)}
.greeting-lead{font-weight:700;color:var(--green-deep);margin-bottom:1.1rem;font-size:1.05rem}
.greeting-body p{margin-bottom:1.1rem;color:var(--ink-soft);line-height:2}
.greeting-sign{margin-top:2rem;text-align:right;color:var(--ink)}
.greeting-sign p{margin-bottom:.4rem;line-height:1.8;font-size:.95rem}
.greeting-sign strong{font-size:1.25rem;font-family:"Noto Serif JP",serif;letter-spacing:.12em;color:var(--green-deep)}

/* 医院情報 */
.clinic-info{padding:5rem 0;background:var(--mint-2)}
.info-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:2.5rem;align-items:stretch;margin-bottom:2.5rem}
.info-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.info-table th,.info-table td{border-bottom:1px solid var(--line);padding:1em 1.2em;text-align:left;font-size:.92rem;vertical-align:top;line-height:1.7}
.info-table th{background:var(--green-deep);color:#fff;font-weight:500;white-space:nowrap;width:112px}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:0}
.info-table td{color:var(--ink)}
.info-table a{color:var(--green-deep);font-weight:700}
.info-map{border-radius:12px;overflow:hidden;box-shadow:var(--shadow);min-height:340px}
.info-map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.info-hours{background:#fff;border-radius:12px;padding:2rem;box-shadow:var(--shadow)}
.info-sub{font-family:"Noto Serif JP",serif;font-size:1.25rem;color:var(--green-deep);margin-bottom:1.2rem;text-align:center}
.info-hours .hours-table{max-width:780px;margin:0 auto 1rem}
.info-hours .hours-rest{max-width:780px;margin-inline:auto}
/* 院内・施設写真ギャラリー */
.facility-gallery{margin-top:2.5rem}
.fac-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.fac-card{margin:0;background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.fac-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .5s}
.fac-card:hover img{transform:scale(1.05)}
.fac-card figcaption{padding:.8em 1em;text-align:center;font-weight:700;font-size:.92rem;color:var(--green-deep)}

/* ボタン（塗り緑／緑アウトライン） */
.btn-green{background:var(--green-deep);color:#fff;border:1px solid var(--green-deep)}
.btn-green:hover{background:#00744a;color:#fff}
.btn-outline-green{background:#fff;color:var(--green-deep);border:1px solid var(--green-deep)}
.btn-outline-green:hover{background:var(--green-deep);color:#fff}

/* 外来診療ページ */
.dept-intro{padding:5rem 0 2rem}
.dept-lead{text-align:center;max-width:840px;margin:0 auto 2.2rem;color:var(--ink-soft);line-height:2}
.dept-chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}
.dept-chips a,.dept-chips li>span{display:block;padding:.5em 1.3em;border:1px solid var(--green-soft);border-radius:999px;font-size:.86rem;font-weight:700;color:var(--green-deep);transition:.2s}
.dept-chips a:hover{background:var(--green-deep);color:#fff;border-color:var(--green-deep)}
.departments{padding:2rem 0 5rem}
.dept-list{display:grid;gap:1.6rem;max-width:920px;margin-inline:auto}
.dept{background:#fff;border-radius:14px;padding:2rem 2.2rem;box-shadow:var(--shadow);border-top:4px solid var(--green-soft);scroll-margin-top:110px}
.dept h3{font-family:"Noto Serif JP",serif;font-size:1.45rem;color:var(--green-deep);margin-bottom:1rem;display:flex;align-items:center;gap:.7em;font-weight:600;line-height:1.4}
.dept-no{flex:0 0 auto;width:2.1em;height:2.1em;border-radius:50%;background:var(--mint);color:var(--green-deep);font-family:"Cormorant Garamond",serif;font-size:.9em;font-weight:600;display:flex;align-items:center;justify-content:center}
.dept p{color:var(--ink-soft);line-height:2;margin-bottom:.8rem}
.dept p:last-child{margin-bottom:0}
.dept-note{background:var(--mint);border-radius:8px;padding:.85em 1.1em;font-size:.9rem;color:var(--green-deep);font-weight:500;line-height:1.8}
.dept--feature{border-top-color:#e0954a}
.dept--feature h3{color:#c56f16}
.dept--feature .dept-no{background:#fbeede;color:#c56f16}
.dept--feature .dept-note{background:#fbeede;color:#c56f16}
/* 外来感染対策について（文章＋写真） */
.infection{max-width:920px;margin:1.6rem auto 0;background:#fff;border-radius:14px;box-shadow:var(--shadow);
  border-top:4px solid var(--green-soft);overflow:hidden;display:grid;grid-template-columns:1fr 40%;gap:0;align-items:stretch}
.infection-text{padding:2rem 2.2rem}
.infection-text h3{font-family:"Noto Serif JP",serif;font-size:1.45rem;color:var(--green-deep);margin-bottom:1.1rem;font-weight:600}
.infection-list{list-style:none;display:grid;gap:1rem}
.infection-list li{position:relative;padding-left:1.5em;color:var(--ink-soft);line-height:1.95;font-size:.95rem}
.infection-list li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:10px;border-radius:50%;background:var(--green-soft)}
.infection-photo{min-height:100%}
.infection-photo img{width:100%;height:100%;object-fit:cover;display:block}

.dept-cta{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;margin-top:3rem}
/* フッター上のCTA：オレンジ系・大きめ */
.dept-cta .btn{justify-content:center;gap:.6em;min-width:340px;padding:1.2em 2.4em;font-size:1.08rem;font-weight:700;letter-spacing:.02em;border-radius:999px}
.dept-cta .btn-green{color:#fff;border:2px solid transparent;
  background:linear-gradient(135deg,#f5ad5e 0%,#e5822a 55%,#d4741f 100%);
  box-shadow:0 8px 20px rgba(200,110,25,.35)}
.dept-cta .btn-green:hover{color:#fff;transform:translateY(-2px);
  background:linear-gradient(135deg,#ee9f47 0%,#d9761f 55%,#c46714 100%);
  box-shadow:0 12px 28px rgba(200,110,25,.45)}
.dept-cta .btn-outline-green{background:#fff;color:#c56f16;border:2px solid #e5822a}
.dept-cta .btn-outline-green:hover{background:#e5822a;color:#fff;border-color:#e5822a;transform:translateY(-2px)}

/* お知らせ一覧ページ */
.news-page{padding:5rem 0}
.nl-list{list-style:none;max-width:880px;margin-inline:auto;border-top:1px solid var(--line)}
.nl-list li{border-bottom:1px solid var(--line)}
.nl-list a{display:flex;gap:1.8rem;align-items:baseline;padding:1.35rem .6rem;transition:.2s}
.nl-list a:hover{background:var(--mint-2)}
.nl-date{flex:0 0 auto;min-width:104px;font-family:"Cormorant Garamond",serif;font-size:1.08rem;font-weight:600;color:var(--green)}
.nl-title{flex:1;font-size:1.06rem;color:var(--ink);line-height:1.7}
.nl-list a:hover .nl-title{color:var(--green-deep);text-decoration:underline}

/* お知らせ詳細ページ */
.news-article{max-width:820px;margin-inline:auto}
.na-head{border-bottom:2px solid var(--mint);padding-bottom:1.2rem;margin-bottom:2rem}
.na-date{font-family:"Cormorant Garamond",serif;font-size:1.05rem;font-weight:600;color:var(--green);margin-bottom:.3rem}
.na-title{font-family:"Noto Serif JP",serif;font-size:1.7rem;font-weight:600;color:var(--ink);line-height:1.5}
.na-body p{color:var(--ink-soft);line-height:2;margin-bottom:1.2rem}
.na-body h3{font-family:"Noto Serif JP",serif;font-size:1.15rem;color:var(--green-deep);margin:1.8rem 0 .7rem;padding-left:.7em;border-left:3px solid var(--green-soft)}
.na-body ul{list-style:none;display:grid;gap:.5rem;margin-bottom:1.2rem}
.na-body ul li{position:relative;padding-left:1.3em;color:var(--ink-soft);line-height:1.9}
.na-body ul li::before{content:"";position:absolute;left:0;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--green-soft)}
.na-back{margin-top:3rem;text-align:center}

/* 在宅医療ページ */
/* 導入：見出し＋文章｜水たまり型写真 */
.zt-intro{display:grid;grid-template-columns:1fr 40%;gap:3rem;align-items:center}
.zt-intro .sec-head{text-align:left;margin-bottom:1.4rem}
.zt-intro .sec-en{margin-left:.1em}
.zt-intro .dept-lead{text-align:left;margin:0 0 1.6rem}
.zt-intro-photo img{width:100%;height:auto;display:block;
  filter:drop-shadow(0 14px 24px rgba(0,80,50,.14))}
/* キーワード（ボタンに見えないタグ・非緑） */
.zt-keywords{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem .6rem}
.zt-keywords li{background:#f3ece0;color:#9a744a;font-size:.82rem;font-weight:500;padding:.35em 1em;border-radius:6px;letter-spacing:.02em}
.zt-keywords li::before{content:"#";color:#c3a06f;margin-right:.15em;font-weight:700}

.zt-features{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;max-width:980px;margin:0 auto}
.zt-card{position:relative;overflow:hidden;background:#fff;border-radius:12px;padding:1.7rem 1.9rem;box-shadow:var(--shadow);border-top:3px solid var(--green-soft)}
.zt-card>*{position:relative;z-index:1}
/* カード背景のアイコンイラスト（さりげなく右下に） */
.zt-card::after{content:"";position:absolute;right:-8px;bottom:-8px;width:124px;height:124px;z-index:0;
  background-repeat:no-repeat;background-position:center;background-size:contain;opacity:.2;pointer-events:none}
.zt-card--stethoscope::after{background-image:url('../images/icons/icon_stethoscope.png')}
.zt-card--bed::after{background-image:url('../images/icons/icon_bed.png')}
.zt-card--crutch::after{background-image:url('../images/icons/icon_crutch.png')}
.zt-card--brain::after{background-image:url('../images/icons/icon_brain.png')}
.zt-card--handheart::after{background-image:url('../images/icons/icon_handheart.png')}
.zt-card--talk::after{background-image:url('../images/icons/icon_talk.png')}
.zt-card--document::after{background-image:url('../images/icons/icon_document.png')}
.zt-card--calendar::after{background-image:url('../images/icons/icon_calendar.png')}
.zt-card--house::after{background-image:url('../images/icons/icon_house.png')}
.zt-card--wheelchair::after{background-image:url('../images/icons/icon_wheelchair.png')}
.zt-card--van::after{background-image:url('../images/icons/icon_van.png')}
/* キャラクターイラスト版（訪問看護のサービス内容） */
.zt-card--illust::after{width:158px;height:158px;right:2px;bottom:0;opacity:.3;background-position:right bottom}
.zt-card--sv-iv::after{background-image:url('../images/icons/sv_iv.png')}
.zt-card--sv-care::after{background-image:url('../images/icons/sv_care.png')}
.zt-card--sv-rehab::after{background-image:url('../images/icons/sv_rehab.png')}
.zt-card--sv-dementia::after{background-image:url('../images/icons/sv_dementia.png')}
.zt-card--sv-terminal::after{background-image:url('../images/icons/sv_terminal.png')}
.zt-card--sv-consult::after{background-image:url('../images/icons/sv_consult.png')}
.zt-card h3{display:flex;align-items:center;gap:.65em;font-family:"Noto Serif JP",serif;font-size:1.15rem;color:var(--green-deep);margin-bottom:.7rem;font-weight:600;line-height:1.45}
.zt-no{flex:0 0 auto;width:2em;height:2em;border-radius:50%;background:var(--mint);color:var(--green-deep);font-family:"Cormorant Garamond",serif;font-size:.95em;font-weight:600;display:flex;align-items:center;justify-content:center}
.zt-card p{color:var(--ink-soft);font-size:.99rem;line-height:1.95}
.zt-proc{max-width:980px;margin:2.6rem auto 0;background:var(--mint);border-radius:14px;padding:2.2rem}
.zt-proc h3{text-align:center;font-family:"Noto Serif JP",serif;font-size:1.3rem;color:var(--green-deep);margin-bottom:1.3rem;font-weight:600}
.proc-tags{list-style:none;display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center}
.proc-tags li{background:#fff;border:1px solid var(--green-soft);color:var(--green-deep);padding:.55em 1.3em;border-radius:999px;font-size:.86rem;font-weight:700}
/* 24時間連絡体制（緑） */
.zt-contact{max-width:980px;margin:2.6rem auto 0;border-radius:16px;padding:2.4rem;text-align:center;
  background:radial-gradient(120% 130% at 15% 10%,#18a870 0%,#008955 48%,#00713f 100%);color:#fff;overflow:hidden;position:relative}
.zt-contact h3{font-family:"Noto Serif JP",serif;font-size:1.3rem;font-weight:600;margin-bottom:.4rem;color:#fff}
.zt-contact>p{font-size:.92rem;color:rgba(255,255,255,.9);margin-bottom:1.3rem}
.zt-tel-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;max-width:660px;margin:0 auto}
.zt-tel{display:flex;align-items:center;justify-content:center;gap:1rem;background:#fff;border-radius:12px;padding:1rem 1.2rem;transition:.25s}
.zt-tel:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,40,25,.3)}
.zt-badge{flex:0 0 auto;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--green-deep);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:var(--green-deep);line-height:1.1}
.zt-tel-body{text-align:left}
.zt-tel-label{display:block;font-size:.68rem;color:var(--ink-soft);font-weight:700}
.zt-tel-num{font-family:"Oswald",sans-serif;font-size:1.5rem;font-weight:600;color:var(--ink);letter-spacing:.03em}
.dept-btn{margin-top:1.4rem;min-width:0;width:auto;font-size:.9rem}
.dept--feature .dept-btn{background:#e0954a;border-color:#e0954a}
.dept--feature .dept-btn:hover{background:#cf7f2f}

/* かかりつけ医としての取り組み */
.kakari{padding:5rem 0}
.kakari-box{max-width:900px;margin-inline:auto;background:var(--mint);border-radius:16px;padding:2.4rem}
.kakari-lead{font-family:"Noto Serif JP",serif;font-size:1.2rem;color:var(--green-deep);text-align:center;margin-bottom:1.6rem}
.kakari-list{list-style:none;display:grid;gap:.9rem}
.kakari-list li{position:relative;padding:.95em 1.1em .95em 2.8em;background:#fff;border-radius:10px;font-size:.94rem;color:var(--ink);line-height:1.8;box-shadow:0 4px 14px rgba(0,80,50,.05)}
.kakari-list li::before{content:"";position:absolute;left:1em;top:1.05em;width:18px;height:18px;border-radius:50%;
  background:var(--green-deep) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/11px no-repeat}
.kakari-note{margin-top:1.5rem;font-size:.85rem;color:var(--ink-soft);line-height:1.8}
/* ごあいさつ内に配置した かかりつけ医の取り組み */
.kakari-inline{margin-top:2.6rem}
.inline-head{font-family:"Noto Serif JP",serif;font-size:1.3rem;color:var(--green-deep);font-weight:600;
  padding-left:.7em;border-left:4px solid var(--green-soft);margin-bottom:1.1rem;line-height:1.4}
.kakari-inline .kakari-box{padding:1.6rem 1.8rem;max-width:none}
.kakari-inline .kakari-lead{font-size:1rem;text-align:left;margin-bottom:1.1rem}

/* 各種掲示事項・加算のご案内 */
.notices{padding:5rem 0;background:var(--mint-2)}
.notice-list{max-width:900px;margin-inline:auto;display:grid;gap:1.4rem}
.notice-guide{max-width:900px;margin:0 auto 1.2rem;font-size:.82rem;color:var(--ink-soft);text-align:right}
.notice-item{background:#fff;border-radius:12px;box-shadow:var(--shadow);border-left:5px solid var(--green-soft);overflow:hidden}
.notice-head{list-style:none;cursor:pointer;padding:1.25rem 1.8rem;font-family:"Noto Serif JP",serif;font-size:1.13rem;font-weight:600;color:var(--green-deep);line-height:1.5;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:background .2s}
.notice-head::-webkit-details-marker{display:none}
.notice-head::after{content:"＋";flex:0 0 auto;font-size:1.4rem;font-weight:400;color:var(--green-soft);line-height:1}
.notice-item[open] .notice-head::after{content:"?"}
.notice-head:hover{background:var(--mint-2)}
.notice-item[open] .notice-head{background:var(--mint);border-bottom:1px solid var(--line)}
.notice-body{padding:1.4rem 1.8rem 1.8rem}
.notice-subhead{font-size:1.02rem;font-weight:700;color:var(--green-deep);margin:1.5rem 0 .5rem;padding-left:.7em;border-left:3px solid var(--green-soft);line-height:1.5}
.notice-subhead:first-child{margin-top:.2rem}
.notice-item p{color:var(--ink-soft);font-size:.94rem;line-height:1.95;margin-bottom:.7rem}
.notice-item p:last-child{margin-bottom:0}
.notice-sub{font-weight:700;color:var(--ink);margin-top:.4rem}
.notice-inner-list{list-style:none;display:grid;gap:.5rem;margin:.4rem 0 .9rem}
.notice-inner-list li{position:relative;padding-left:1.4em;font-size:.92rem;color:var(--ink-soft);line-height:1.8}
.notice-inner-list li::before{content:"";position:absolute;left:.15em;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--green-soft)}
.pdf-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-top:.3rem}
.pdf-link{display:flex;align-items:center;gap:.7em;padding:.7em 1em;background:var(--mint);border-radius:8px;font-size:.88rem;color:var(--ink);transition:.2s}
.pdf-link:hover{background:var(--green-deep);color:#fff}
.pdf-link::before{content:"PDF";flex:0 0 auto;font-size:.62rem;font-weight:700;letter-spacing:.05em;color:#fff;background:#c2603f;border-radius:3px;padding:.2em .45em}
.pdf-link:hover::before{background:#fff;color:#c2603f}
.notice-flag{font-size:.85rem;color:var(--ink-soft);margin-top:.4rem}

/* =========================================================
   Responsive
   ========================================================= */
@media(max-width:1080px){
  .gnav{display:none;border-top:0}
  .gnav.is-open{display:block;position:fixed;left:0;right:0;top:76px;background:#fff;box-shadow:0 14px 24px rgba(0,40,25,.12)}
  .gnav.is-open ul{flex-direction:column;gap:0;padding:.5rem 0}
  .gnav.is-open li{border-bottom:1px solid var(--line)}
  .gnav.is-open a{padding:1em 8%}
  .gnav.is-open a::after{display:none}
  .hamburger{display:flex}
  .hi-rest{display:none}
}
@media(max-width:880px){
  .header-info{gap:.8rem}
  .hi-hours{display:none}
  .top-row-grid{grid-template-columns:1fr;gap:3rem}
  /* スマホ：見出し → イラスト → 本文・バッジ・ボタン の順に並べ替え */
  .service-inner,.service--left .service-inner{grid-template-columns:1fr;gap:1.2rem;justify-items:center;text-align:center}
  .service-text{display:contents}
  .sv-lead{order:1}
  .sv-title{order:2;display:inline-block}
  .service-photo,.service--left .service-photo{order:3;width:min(300px,70%);margin-block:.3rem}
  .sv-body{order:4}
  .sv-circles{order:5;justify-content:center}
  .sv-btn{order:6}
  .sv-btn,.sp-btns .btn{margin-inline:auto}
  .service-pair-grid{grid-template-columns:1fr;gap:3rem}
  .sp-btns{align-items:stretch}
  .c24-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:2rem}
  .fg-grid{grid-template-columns:repeat(2,1fr)}
  .about{background-attachment:scroll;padding:5rem 0}
  .contact24{background-attachment:scroll}
  /* 下層ページ */
  .greeting-grid{grid-template-columns:1fr;gap:2rem}
  .doctor-photo{max-width:280px;margin-inline:auto}
  .info-grid{grid-template-columns:1fr;gap:1.6rem}
  .info-map,.info-map iframe{min-height:300px}
  .greeting-sign{text-align:left}
  .fac-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
  .infection{grid-template-columns:1fr}
  .infection-photo{order:-1;aspect-ratio:16/10}
  .infection-photo img{height:100%}
  .zt-features{grid-template-columns:1fr}
  .zt-tel-grid{grid-template-columns:1fr}
  .zt-intro{grid-template-columns:1fr;gap:1.8rem}
  .zt-intro-photo{order:-1;max-width:360px;margin-inline:auto}
  .nl-list a{flex-direction:column;gap:.35rem;padding:1.1rem .4rem}
  .na-title{font-size:1.35rem}
}
@media(max-width:560px){
  .pc{display:none}
  .sp-br{display:inline}
  .page-hero h1{font-size:1.7rem}
  .fg-grid{grid-template-columns:1fr;max-width:340px;margin-inline:auto}
}
@media(max-width:560px){
  .hi-tel{font-size:1.3rem}
  .c24-num{font-size:1.5rem}
  .sv-circles li{width:104px;height:104px;font-size:.86rem}
  /* 4つのバッジを2×2の2段に */
  .sv-circles{display:grid;grid-template-columns:repeat(2,auto);justify-content:center;gap:1rem 1.4rem}
  .hero-catch{font-size:1.5rem}
  .top-row,.about,.service,.service-pair{padding:3.5rem 0}
  .pdf-list{grid-template-columns:1fr}
  .notice-item{padding:1.4rem 1.3rem}
  .sec-jp{font-size:1.6rem}
  .dept-cta{gap:.9rem}
  .dept-cta .btn{min-width:0;width:100%;font-size:.98rem;padding:1.05em 1.3em}
}

/* ===== スマホのヘッダー：電話は角丸四角のアイコンのみ／WEB予約は右下に追従 ===== */
@media(max-width:680px){
  .header-top{gap:1rem;padding:.7rem 0}
  .brand-logo{width:48px;height:48px}
  .brand-text strong{font-size:1.4rem}
  .header-info{gap:.7rem}
  /* 電話：番号を隠してアイコンのみ、角丸の四角で囲う */
  .hi-tel{width:46px;height:46px;padding:0;gap:0;border:1.5px solid var(--green-deep);
    border-radius:12px;justify-content:center;background:#fff}
  .hi-tel span{display:none}
  .hi-tel-ico{width:24px;height:24px;transform:none;color:var(--green-deep)}
  /* WEB予約：ヘッダーからは隠し、右下の追従ボタンを表示 */
  .h-web{display:none}
  .fab-book{display:inline-flex}
  /* ページトップボタンは追従CTAの上に重ならないよう配置 */
  .pagetop{bottom:82px}
}

/* WordPress adjustments */
#main-content{display:block}.pagination{margin:50px 0;text-align:center}.nav-links{display:flex;justify-content:center;gap:12px}.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid #ddd}.page-numbers.current{background:#2f7059;color:#fff;border-color:#2f7059}.news-detail__body img{max-width:100%;height:auto}.alignwide{max-width:1200px;margin-left:auto;margin-right:auto}.alignfull{width:100%}


/* 1.1.0: HOMEのお知らせ＋診療時間をタブレット以上で2カラム固定 */
.top-row-grid > .news,
.top-row-grid > .hours { min-width: 0; }
@media (min-width: 769px) {
  .top-row-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) !important;
    gap: clamp(1.5rem, 3vw, 3rem) !important;
    align-items: start;
  }
}
@media (max-width: 768px) {
  .top-row-grid {
    grid-template-columns: 1fr !important;
  }
  .hours { overflow-x: auto; }
  .hours-table { min-width: 640px; }
}

/* 1.2.0: HOME 2カラムを確実に維持 */
@media (min-width: 641px) {
  .top-row .top-row-grid {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: clamp(1.5rem, 3vw, 3rem) !important;
  }
  .top-row .top-row-grid > .news {
    flex: 1 1 46% !important;
    width: auto !important;
    min-width: 0 !important;
  }
  .top-row .top-row-grid > .hours {
    flex: 1.15 1 54% !important;
    width: auto !important;
    min-width: 0 !important;
  }

  .contact24 .c24-grid {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    gap: 1.4rem !important;
  }
  .contact24 .c24-grid > .c24-tel {
    flex: 1 1 50% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 640px) {
  .top-row .top-row-grid,
  .contact24 .c24-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   1.3.0 WordPress お知らせ詳細ページ
   ========================================================= */
.news-sub-hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,var(--mint) 0%,#fff 72%);
  border-bottom:1px solid var(--line);
}
.news-sub-hero::after{
  content:"";
  position:absolute;
  right:-80px;
  top:-110px;
  width:320px;
  height:320px;
  border-radius:50%;
  border:1px solid rgba(47,112,89,.13);
  box-shadow:0 0 0 52px rgba(47,112,89,.035),0 0 0 104px rgba(47,112,89,.02);
  pointer-events:none;
}
.news-detail{
  padding:clamp(3.5rem,7vw,6.5rem) 0;
  background:var(--mint-2);
}
.news-detail__container{
  width:min(100% - 40px,1000px);
  margin-inline:auto;
}
.news-detail__card{
  max-width:900px;
  margin-inline:auto;
  padding:clamp(2rem,5vw,4.2rem);
  background:#fff;
  border-radius:18px;
  box-shadow:0 18px 50px rgba(25,76,58,.09);
  border-top:5px solid var(--green-soft);
}
.news-detail__header{
  padding-bottom:clamp(1.6rem,3vw,2.4rem);
  margin-bottom:clamp(1.8rem,4vw,3rem);
  border-bottom:1px solid var(--line);
}
.news-detail__meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.75rem 1rem;
  margin-bottom:1.15rem;
}
.news-detail__meta time{
  font-family:"Cormorant Garamond",serif;
  font-size:1.08rem;
  color:var(--green);
  font-weight:600;
  letter-spacing:.04em;
}
.news-detail__title{
  margin:0;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.55rem,3vw,2.25rem);
  line-height:1.55;
  color:var(--green-deep);
  font-weight:600;
  letter-spacing:.025em;
  overflow-wrap:anywhere;
}
.news-detail__body{
  max-width:760px;
  margin-inline:auto;
  color:var(--ink);
  font-size:1rem;
  line-height:2;
}
.news-detail__body > *:first-child{margin-top:0}
.news-detail__body > *:last-child{margin-bottom:0}
.news-detail__body p{margin:0 0 1.5em}
.news-detail__body h2,
.news-detail__body h3,
.news-detail__body h4{
  font-family:"Noto Serif JP",serif;
  color:var(--green-deep);
  line-height:1.55;
  font-weight:600;
}
.news-detail__body h2{
  margin:2.8em 0 1em;
  padding:.65em .9em;
  font-size:1.45rem;
  background:var(--mint);
  border-left:5px solid var(--green-soft);
}
.news-detail__body h3{
  margin:2.4em 0 .9em;
  padding:0 0 .55em .75em;
  font-size:1.25rem;
  border-left:4px solid var(--green-soft);
  border-bottom:1px solid var(--line);
}
.news-detail__body h4{margin:2em 0 .7em;font-size:1.08rem}
.news-detail__body ul,
.news-detail__body ol{
  margin:1.2em 0 1.7em;
  padding:1.2em 1.4em 1.2em 2.6em;
  background:var(--mint-2);
  border-radius:10px;
}
.news-detail__body li+li{margin-top:.45em}
.news-detail__body a{
  color:var(--green-deep);
  text-decoration:underline;
  text-underline-offset:.18em;
}
.news-detail__body blockquote{
  margin:2em 0;
  padding:1.2em 1.5em;
  background:var(--mint-2);
  border-left:4px solid var(--green-soft);
  color:var(--ink-soft);
}
.news-detail__body img{
  display:block;
  max-width:100%;
  height:auto;
  margin:2rem auto;
  border-radius:12px;
}
.news-detail__body .wp-caption{max-width:100%}
.news-detail__body .wp-caption-text{
  margin-top:.65rem;
  color:var(--ink-soft);
  font-size:.82rem;
  text-align:center;
}
.news-detail__body table{
  width:100%;
  margin:1.8rem 0;
  border-collapse:collapse;
  font-size:.94rem;
}
.news-detail__body th,
.news-detail__body td{
  padding:.8em 1em;
  border:1px solid var(--line);
  text-align:left;
}
.news-detail__body th{background:var(--mint);color:var(--green-deep)}
.news-detail__footer{
  display:flex;
  justify-content:center;
  margin-top:clamp(2.5rem,5vw,4rem);
  padding-top:clamp(2rem,4vw,3rem);
  border-top:1px solid var(--line);
}
.news-back-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7em;
  min-width:230px;
  padding:1em 1.8em;
  border:1px solid var(--green-deep);
  border-radius:999px;
  background:var(--green-deep);
  color:#fff;
  font-weight:700;
  letter-spacing:.04em;
  box-shadow:0 8px 20px rgba(47,112,89,.16);
  transition:transform .2s,background .2s,color .2s,box-shadow .2s;
}
.news-back-btn:hover{
  background:#fff;
  color:var(--green-deep);
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(47,112,89,.18);
}
.news-back-btn span{font-size:1.15em;line-height:1}

@media(max-width:640px){
  .news-detail__container{width:min(100% - 28px,1000px)}
  .news-detail__card{padding:1.7rem 1.25rem 2rem;border-radius:14px}
  .news-detail__title{font-size:1.45rem}
  .news-detail__body{font-size:.95rem;line-height:1.9}
  .news-detail__body h2{font-size:1.25rem}
  .news-detail__body h3{font-size:1.12rem}
  .news-detail__body table{display:block;overflow-x:auto;white-space:nowrap}
  .news-back-btn{width:100%;min-width:0}
}

/* v1.4: 在宅医療ページ下部「医療・看護」電話番号を横2列に固定 */
@media (min-width: 641px) {
  .zt-contact .zt-tel-grid,
  .zt-tel-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.2rem !important;
    max-width: 720px;
    width: 100%;
  }

  .zt-contact .zt-tel,
  .zt-tel-grid .zt-tel {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 640px) {
  .zt-contact .zt-tel-grid,
  .zt-tel-grid {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   v1.5 在宅医療ページ：医療・看護の電話番号を全端末で横並び
   ========================================================= */
.zt-contact .zt-tel-grid {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: center !important;
  gap: 1.2rem !important;
  width: 100% !important;
  max-width: 760px !important;
  margin-inline: auto !important;
}

.zt-contact .zt-tel-grid > .zt-tel {
  display: flex !important;
  flex: 1 1 0 !important;
  width: calc(50% - .6rem) !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 640px) {
  .zt-contact {
    padding: 1.6rem .8rem !important;
  }

  .zt-contact .zt-tel-grid {
    gap: .55rem !important;
  }

  .zt-contact .zt-tel-grid > .zt-tel {
    width: calc(50% - .275rem) !important;
    padding: .8rem .45rem !important;
    gap: .45rem !important;
    flex-direction: column !important;
    text-align: center !important;
  }

  .zt-contact .zt-badge {
    flex: 0 0 auto !important;
  }

  .zt-contact .zt-tel-body {
    text-align: center !important;
    min-width: 0 !important;
  }

  .zt-contact .zt-tel-label {
    font-size: .62rem !important;
    line-height: 1.4 !important;
  }

  .zt-contact .zt-tel-num {
    display: block !important;
    font-size: clamp(.9rem, 4vw, 1.1rem) !important;
    white-space: nowrap !important;
    letter-spacing: 0 !important;
  }
}


/* =========================================================
   1.6.0 お知らせ一覧・詳細ページ共通調整
   ========================================================= */
.news-page-hero{
  background-image:url('../images/sec_home.jpg');
  background-position:center 62%;
}
.news-page{
  padding:clamp(3.5rem,7vw,6.5rem) 0;
  background:var(--mint-2);
}
.news-page__container{
  width:min(100% - 40px,1080px);
  margin-inline:auto;
}
.news-page__card{
  padding:clamp(1.5rem,4vw,3.5rem);
  background:#fff;
  border-radius:18px;
  border-top:5px solid var(--green-soft);
  box-shadow:0 18px 50px rgba(25,76,58,.09);
}
.news-list--page{
  margin:0;
  padding:0;
}
.news-list--page li{
  list-style:none;
}
.news-list--page li + li{
  border-top:1px solid var(--line);
}
.news-list--page a{
  display:grid;
  grid-template-columns:190px minmax(0,1fr) 32px;
  align-items:center;
  gap:1.3rem;
  padding:1.45rem .8rem;
  border-bottom:0;
  border-radius:10px;
  transition:background .2s,color .2s,transform .2s;
}
.news-list--page a:hover{
  background:var(--mint-2);
  color:var(--green-deep);
  transform:translateX(3px);
}
.news-list__meta{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.news-list--page time{
  min-width:0;
  white-space:nowrap;
}
.news-list--page p{
  min-width:0;
  font-size:1rem;
  line-height:1.75;
  overflow-wrap:anywhere;
}
.news-list__arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border:1px solid var(--green-soft);
  border-radius:50%;
  color:var(--green-deep);
  font-weight:700;
  transition:.2s;
}
.news-list--page a:hover .news-list__arrow{
  background:var(--green-deep);
  color:#fff;
  border-color:var(--green-deep);
}
.news-list__empty{
  padding:3rem 1rem;
  text-align:center;
  color:var(--ink-soft);
}
.news-page .pagination{
  margin:clamp(2.5rem,5vw,4rem) 0 0;
  padding-top:2rem;
  border-top:1px solid var(--line);
}
.news-page .page-numbers{
  border-radius:999px;
  border-color:var(--line);
  background:#fff;
}
.news-page .page-numbers.current,
.news-page .page-numbers:hover{
  background:var(--green-deep);
  color:#fff;
  border-color:var(--green-deep);
}
/* 詳細ページも一覧と同じタイトル装飾を使用 */
.news-detail{
  padding-top:clamp(3.5rem,7vw,6.5rem);
}
@media(max-width:760px){
  .news-page__container{width:min(100% - 28px,1080px)}
  .news-page__card{padding:1.25rem 1rem 1.8rem;border-radius:14px}
  .news-list--page a{
    grid-template-columns:1fr 30px;
    gap:.75rem 1rem;
    padding:1.25rem .45rem;
  }
  .news-list__meta{grid-column:1/2}
  .news-list--page p{grid-column:1/2;font-size:.95rem}
  .news-list__arrow{grid-column:2/3;grid-row:1/3;align-self:center}
}


/* =========================================================
   1.7.0 お知らせタイトル帯・パンくず調整
   ========================================================= */
.news-page-hero{
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding:4.5rem 0;
  min-height:240px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.news-page-hero .container{
  width:min(100% - 40px,1200px);
  margin-inline:auto;
}
.news-page-hero h1{
  margin:0;
}
.news-page-hero .breadcrumb{
  max-width:100%;
  flex-wrap:wrap;
  line-height:1.7;
}
.news-page-hero .breadcrumb__current{
  display:inline-block;
  max-width:min(520px,70vw);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:rgba(255,255,255,.78);
}
@media (max-width:640px){
  .news-page-hero{
    min-height:190px;
    padding:3.3rem 0;
  }
  .news-page-hero .container{
    width:min(100% - 28px,1200px);
  }
  .news-page-hero .breadcrumb{
    gap:.4em;
    font-size:.74rem;
  }
  .news-page-hero .breadcrumb__current{
    max-width:58vw;
  }
}

/* =========================================================
   v1.8 HOME buttons and mobile service ordering
   ========================================================= */

/* PC: 外来診療エリアの3ボタンの間隔を少し詰める */
@media (min-width: 881px) {
  #sv-outpatient .sp-btns {
    gap: .38rem !important;
  }
}

/* SP: 在宅医療・訪問看護のタイトルを4つの丸の下へ移動 */
@media (max-width: 880px) {
  #sv-homecare .sv-lead,
  #sv-visiting .sv-lead {
    order: 1 !important;
  }

  #sv-homecare .service-photo,
  #sv-visiting .service-photo {
    order: 2 !important;
  }

  #sv-homecare .sv-body,
  #sv-visiting .sv-body {
    order: 3 !important;
  }

  #sv-homecare .sv-circles,
  #sv-visiting .sv-circles {
    order: 4 !important;
  }

  #sv-homecare .sv-title,
  #sv-visiting .sv-title {
    order: 5 !important;
    margin: .35rem auto .15rem !important;
  }

  #sv-homecare .sv-btn,
  #sv-visiting .sv-btn {
    order: 6 !important;
  }

  /* 居宅介護のボタンを中央寄せ */
  #sv-care > .sv-btn {
    display: flex !important;
    width: fit-content !important;
    min-width: 260px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* HOME下部の医療・看護：枠同士の距離を縮める */
  .contact24 .c24-grid {
    gap: .65rem !important;
  }
}

@media (max-width: 640px) {
  .contact24 .c24-grid {
    gap: .45rem !important;
  }
}

/* =========================================================
   v1.9 HOME responsive layout corrections
   ========================================================= */

/* PC: 外来診療エリアの3ボタンを近づける */
@media (min-width: 881px) {
  #sv-outpatient .sp-btns {
    gap: .22rem !important;
  }
}

/* SP: service-text の子要素と写真を同じ並び替え階層にする */
@media (max-width: 880px) {
  #sv-homecare .service-inner,
  #sv-visiting .service-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.25rem !important;
  }

  #sv-homecare .service-text,
  #sv-visiting .service-text {
    display: contents !important;
  }

  #sv-homecare .sv-lead,
  #sv-visiting .sv-lead {
    order: 1 !important;
    width: 100%;
    margin-bottom: 0 !important;
  }

  #sv-homecare .service-photo,
  #sv-visiting .service-photo {
    order: 2 !important;
    width: min(82vw, 380px) !important;
    margin-inline: auto !important;
  }

  #sv-homecare .sv-body,
  #sv-visiting .sv-body {
    order: 3 !important;
    width: 100%;
    margin-bottom: .3rem !important;
  }

  #sv-homecare .sv-circles,
  #sv-visiting .sv-circles {
    order: 4 !important;
    width: 100%;
    margin-bottom: .25rem !important;
  }

  #sv-homecare .sv-title,
  #sv-visiting .sv-title {
    order: 5 !important;
    align-self: center !important;
    margin: .15rem auto 0 !important;
  }

  #sv-homecare .sv-btn,
  #sv-visiting .sv-btn {
    order: 6 !important;
    align-self: center !important;
    margin: 0 auto !important;
  }

  /* 居宅介護の詳細ボタンを中央寄せ */
  #sv-care > .sv-btn {
    display: flex !important;
    width: fit-content !important;
    min-width: min(260px, 100%) !important;
    margin: 0 auto !important;
  }

  /* 医療・看護の電話番号カード間の縦余白を詰める */
  .contact24 .c24-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .22rem !important;
  }

  .contact24 .c24-tel {
    margin: 0 !important;
  }
}

/* =========================================================
   v2.0 HOME layout fix ? active theme-safe
   ========================================================= */
@media (min-width: 881px) {
  #sv-outpatient .sp-btns { gap: .25rem !important; }
}
@media (max-width: 880px) {
  #sv-homecare .service-text,
  #sv-visiting .service-text {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }
  #sv-homecare .sv-lead,
  #sv-visiting .sv-lead { order:1 !important; }
  #sv-homecare .sv-body,
  #sv-visiting .sv-body { order:2 !important; }
  #sv-homecare .sv-circles,
  #sv-visiting .sv-circles { order:3 !important; margin-bottom:.7rem !important; }
  #sv-homecare .sv-title,
  #sv-visiting .sv-title { order:4 !important; align-self:center !important; margin:0 auto .8rem !important; }
  #sv-homecare .sv-btn,
  #sv-visiting .sv-btn { order:5 !important; align-self:center !important; margin-inline:auto !important; }
  #sv-care > .sv-btn {
    display:flex !important;
    width:fit-content !important;
    max-width:100% !important;
    min-width:min(260px,100%) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .contact24 .c24-grid { grid-template-columns:1fr !important; gap:.3rem !important; }
  .contact24 .c24-tel { margin:0 !important; }
}

/* ===== HOME layout fixes v2.1 ===== */
@media (min-width: 881px) {
  #sv-outpatient .sp-btns {
    gap: 0.25rem !important;
  }
}

@media (max-width: 880px) {
  #sv-homecare .service-text,
  #sv-visiting .service-text {
    display: block !important;
  }

  #sv-homecare .sv-btn,
  #sv-visiting .sv-btn {
    display: flex !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0.8rem auto 0 !important;
  }

  #sv-care .sv-btn {
    display: flex !important;
    width: fit-content !important;
    max-width: calc(100% - 2rem) !important;
    margin: 1rem auto 0 !important;
    float: none !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    justify-content: center !important;
  }

  .contact24 .c24-grid {
    gap: 0.35rem !important;
  }
}

/* =========================================================
   v2.2 SP service image order
   在宅医療・訪問看護：タイトル直下へ画像を配置
   ========================================================= */
@media (max-width: 880px) {
  #sv-homecare .service-text,
  #sv-visiting .service-text {
    display: flex !important;
    flex-direction: column !important;
  }

  #sv-homecare .sv-lead,
  #sv-visiting .sv-lead { order: 1 !important; }

  #sv-homecare .sv-title,
  #sv-visiting .sv-title { order: 2 !important; }

  #sv-homecare .service-photo,
  #sv-visiting .service-photo {
    order: 3 !important;
    width: min(82vw, 360px) !important;
    margin: 1.2rem auto 1.5rem !important;
    align-self: center !important;
  }

  #sv-homecare .sv-body,
  #sv-visiting .sv-body { order: 4 !important; }

  #sv-homecare .sv-circles,
  #sv-visiting .sv-circles { order: 5 !important; }

  #sv-homecare .sv-btn,
  #sv-visiting .sv-btn {
    order: 6 !important;
    margin: .9rem auto 0 !important;
  }
}

/* v2.3: 下層ページ導入画像のスマホ配置 */
@media (max-width: 640px) {
  .dept-intro .zt-intro {
    display: block;
  }

  .dept-intro .zt-intro-photo.is-mobile-in-text {
    width: 100%;
    max-width: 360px;
    margin: 1.25rem auto 1.5rem;
    order: initial;
  }

  .dept-intro .zt-intro-photo.is-mobile-in-text img {
    width: 100%;
    height: auto;
    display: block;
  }
}

/* ごあいさつを1カラム化 */
.greeting-grid {
  display: block !important;
}

.greeting-body {
  width: 100% !important;
  max-width: 100% !important;
}

/* 署名 */
.greeting-signature {
  width: 100%;
  margin-top: 2rem;
  text-align: right;
}

.greeting-signature p {
  margin: 0;
}

.greeting-signature__name {
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.greeting-signature__qualification {
  margin-top: 0.35rem !important;
  font-size: 0.9rem;
  color: #666;
}

/* 院長略歴 */
.doctor-career--wide {
  width: 100%;
  margin-top: 2.5rem;
  padding: 2rem 2.2rem;
  background: #f7faf8;
  border-left: 4px solid #4f8068;
  border-radius: 8px;
}

.doctor-career--wide h3 {
  margin: 0 0 1rem;
  font-size: 1.25rem;
  color: #315f4d;
}

.doctor-career--wide ul {
  margin: 0;
  padding-left: 1.4em;
}

.doctor-career--wide li {
  margin-bottom: 0.55rem;
  line-height: 1.8;
}

/* かかりつけ医としての取り組み */
.kakari-inline {
  margin-top: 2.5rem;
}

@media screen and (max-width: 640px) {
  .doctor-career--wide {
    padding: 1.5rem;
  }

  .greeting-signature__name {
    font-size: 1.05rem;
  }
}