@charset "utf-8";
/* ===========================================================
   訪問看護ステーション みちのり
   参考：bondsship.com（構造のみ）／配色・書体・図版は独自
   =========================================================== */

:root{
  --navy:#1f3a5f;      /* 深藍：見出し・面 */
  --navy-d:#152941;    /* さらに深い藍：フッター */
  --blue:#2e7bc4;      /* 鮮青：リンク・アクセント */
  --blue-l:#6ba3dd;
  --blue-p:#e7f0fa;    /* 淡い青：面 */
  --sun:#f0b429;       /* 晴れ間：差し色 */
  --sun-d:#b7810f;
  --mist:#f2f6fa;
  --sand:#faf6ee;      /* わずかな暖色。寒色だけだと冷たい */
  --ink:#25303d;
  --sub:#5d6b7a;
  --line:#dce4ec;
  --white:#fff;
  --w:1120px;
  --hdr-h:78px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;color:var(--ink);background:var(--white);
  font-family:'Zen Kaku Gothic New',-apple-system,BlinkMacSystemFont,'Hiragino Sans',sans-serif;
  font-size:17px;line-height:1.95;font-feature-settings:"palt";
  overflow-x:clip;
}
img{max-width:100%;height:auto;display:block}
figure{margin:0}
a{color:var(--blue);text-decoration-thickness:1px;text-underline-offset:.25em}
h1,h2,h3,h4{
  font-family:'Zen Old Mincho',serif;font-weight:600;
  line-height:1.5;letter-spacing:.02em;margin:0;
}
p{margin:0 0 1.2em}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0}
li{list-style:none}
.nb{white-space:nowrap}
/* BudouXが区切り位置を1つも見つけられなかった文は、保護のスタイルが付かずに
   素通しになり、「労災保／険」のように語の途中で割れる。念のため親側でも押さえる。
   overflow-wrap:anywhere は、どうしても入りきらないときの逃げ道（はみ出させない）。 */
budoux-ja{word-break:keep-all;overflow-wrap:anywhere}
:focus-visible{outline:3px solid var(--sun-d);outline-offset:3px;border-radius:4px}

.wrap{width:min(100% - 40px,var(--w));margin-inline:auto}
.narrow{width:min(100% - 40px,880px);margin-inline:auto}

/* ---------- セクション見出し ---------- */
.lead{display:block;font-family:'Zen Old Mincho',serif;font-size:12px;letter-spacing:.28em;
  color:var(--blue);margin-bottom:14px;font-weight:600}
.lead.on-navy{color:var(--sun)}
.sec-h{font-size:clamp(25px,4.4vw,34px);margin-bottom:22px}
.sec-note{color:var(--sub);font-size:15.5px;max-width:40em}

/* ---------- ボタン ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 30px;border-radius:999px;
  font-weight:700;text-decoration:none;font-size:16px;transition:transform .2s,box-shadow .2s,background .2s}
.btn::after{content:"";width:18px;height:8px;flex:none;
  background:currentColor;clip-path:polygon(0 40%,72% 40%,72% 0,100% 50%,72% 100%,72% 60%,0 60%)}
.btn:hover{transform:translateX(3px)}
.btn-sun{background:var(--sun);color:#3a2a00;box-shadow:0 4px 0 var(--sun-d)}
.btn-sun:hover{box-shadow:0 2px 0 var(--sun-d)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:#2a4d7a}
.btn-ghost{border:2px solid rgba(255,255,255,.6);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--navy)}

/* ---------- 「道」の線：全ページ共通のシグネチャー ---------- */
.road{display:block;width:100%;height:52px;color:var(--line)}
.road path{fill:none;stroke:currentColor;stroke-width:1.4}
.road path:nth-child(2){stroke-dasharray:7 9;opacity:.75}

/* =========================================================
   ヘッダー
   ========================================================= */
.hdr{position:sticky;top:0;z-index:60;background:#fffffff2;backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.hdr-in{width:min(100% - 32px,1280px);margin-inline:auto;
  display:flex;align-items:center;gap:20px;min-height:var(--hdr-h)}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--navy);margin-right:auto}
.logo-mk{width:38px;height:38px;flex:none}
.logo b{font-family:'Zen Old Mincho',serif;font-size:20px;line-height:1.2;display:block}
.logo small{display:block;font-size:10.5px;letter-spacing:.14em;color:var(--sub);line-height:1.4}
/* ---------- グローバルナビ（日本語＋英語の2段。子メニューはホバーで開く） ---------- */
.nav{display:block}
.gnav{display:flex;align-items:stretch;gap:min(2.2vw,26px)}
.gnav>li{position:relative;display:flex;align-items:center}
.gnav>li>a{display:block;text-align:center;text-decoration:none;color:var(--ink);
  padding:9px 2px;position:relative;white-space:nowrap}
.gnav>li>a b{display:block;font-size:14.5px;font-weight:500;line-height:1.5}
.gnav>li>a span{display:block;font-family:'Zen Old Mincho',serif;font-size:10px;
  letter-spacing:.14em;color:var(--blue);margin-top:1px;line-height:1.4}
.gnav>li>a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:var(--blue);transition:right .25s}
.gnav>li>a:hover::after,.gnav>li>a[aria-current="page"]::after{right:0}
.gnav>li>a[aria-current="page"] b{color:var(--blue)}
/* 子メニューがあることを示す小さな印 */
.has-sub>a b::after{content:"";display:inline-block;width:5px;height:5px;margin-left:7px;
  border-right:1.5px solid var(--sub);border-bottom:1.5px solid var(--sub);
  transform:translateY(-2px) rotate(45deg)}
.has-sub:hover>a b::after,.has-sub:focus-within>a b::after{border-color:var(--blue)}

.sub{position:absolute;top:100%;left:50%;min-width:200px;z-index:5;
  transform:translateX(-50%) translateY(8px);
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px 0;
  box-shadow:0 12px 28px #1f3a5f24;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .2s ease,transform .2s ease,visibility .2s}
/* 親から子へマウスを移す途中で消えないように、すき間を埋めておく */
.sub::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.has-sub:hover>.sub,.has-sub:focus-within>.sub{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.sub a{display:block;padding:9px 20px;font-size:14px;color:var(--ink);
  text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}
.sub a:hover{background:var(--mist);color:var(--blue)}
.gnav>li.only-sp{display:none}

.burger{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:10px;
  background:#fff;cursor:pointer;padding:0;position:relative}
.burger span{position:absolute;left:13px;width:20px;height:1.8px;background:var(--navy);
  transition:transform .25s,opacity .2s}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:22px}
.burger span:nth-child(3){top:28px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* =========================================================
   トップのヒーロー
   ========================================================= */
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.hero-in{display:grid;grid-template-columns:1fr 44%;align-items:center;gap:0;
  width:100%;padding-left:max(16px,calc(50% - 640px));min-height:min(76vh,600px)}
.hero-txt{padding:70px 56px 74px 0;position:relative;z-index:3}
.hero-txt h1{font-size:clamp(28px,4.6vw,47px);line-height:1.42;letter-spacing:.01em;color:#fff}
.hero-txt h1 em{font-style:normal;color:var(--sun)}
.hero-txt p{margin-top:26px;color:#dbe6f2;font-size:16.5px;max-width:26em}
.hero-fig{position:relative;align-self:stretch;min-height:340px}
.hero-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 38%}
.hero-fig::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--navy) 0%,#1f3a5f00 26%)}
.hero-badge{position:absolute;z-index:2;left:-38px;bottom:44px;background:var(--sun);color:#3a2a00;
  padding:14px 24px;border-radius:6px;font-weight:700;font-size:14.5px;line-height:1.6;
  box-shadow:0 10px 26px #0003}
.hero-badge b{font-family:'Zen Old Mincho',serif;font-size:23px;margin:0 3px}

/* 導線の分岐 */
.gate{position:relative;margin-top:-46px;z-index:5}
.gate-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:20px}
.gate-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:212px;padding:30px 32px;border-radius:14px;text-decoration:none;overflow:hidden;
  box-shadow:0 14px 34px #1f3a5f1f;transition:transform .25s,box-shadow .25s}
.gate-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px #1f3a5f2e}
.gate-card small{font-family:'Zen Old Mincho',serif;font-size:11.5px;letter-spacing:.24em;opacity:.85}
.gate-card b{font-family:'Zen Old Mincho',serif;font-size:clamp(21px,3vw,27px);
  font-weight:600;display:block;margin:8px 0 6px}
.gate-card span{font-size:14.5px;line-height:1.8;opacity:.92}
.gate-card i{position:absolute;right:26px;bottom:28px;width:34px;height:34px;border-radius:50%;
  border:1.5px solid currentColor;display:grid;place-items:center;font-style:normal;transition:background .25s}
.gate-card i::before{content:"";width:14px;height:7px;background:currentColor;
  clip-path:polygon(0 40%,66% 40%,66% 0,100% 50%,66% 100%,66% 60%,0 60%)}
.gate-r{background:var(--sun);color:#3a2a00}
.gate-r i::before{background:#3a2a00}
.gate-s{background:var(--blue);color:#fff}
.gate-card:hover i{background:#ffffff33}

/* =========================================================
   汎用セクション
   ========================================================= */
.sec{padding:88px 0}
.sec-sm{padding:62px 0}
.bg-mist{background:var(--mist)}
.bg-sand{background:var(--sand)}
.bg-navy{background:var(--navy);color:#fff}
.bg-navy .sec-h,.bg-navy h3{color:#fff}
.bg-navy .sec-note,.bg-navy p{color:#cfdcea}

/* 見出しと本文を左右に置く（毎回センター寄せにしない） */
.split{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:min(6vw,66px);align-items:start}
.split-r{grid-template-columns:minmax(0,1fr) minmax(0,340px)}

/* =========================================================
   事業の紹介：交互に組む
   ========================================================= */
.svc{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:min(5vw,58px);
  padding:44px 0;border-top:1px solid var(--line)}
.svc:first-of-type{border-top:0}
.svc:nth-child(even) .svc-fig{order:2}
.svc-fig{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:16/10}
.svc-fig img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}
.svc-fig figcaption{position:absolute;left:0;bottom:0;background:var(--navy);color:#fff;
  font-size:12px;letter-spacing:.16em;padding:7px 16px;border-radius:0 8px 0 0;
  font-family:'Zen Old Mincho',serif}
.svc-b h3{font-size:clamp(21px,3vw,26px);margin-bottom:6px}
.svc-b .ruby{display:block;font-family:'Zen Old Mincho',serif;font-size:11.5px;
  letter-spacing:.24em;color:var(--blue);margin-bottom:10px}
.svc-b p{font-size:15.8px;color:var(--sub)}
.tagline{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.tagline li{background:var(--blue-p);color:#1a4f85;font-size:13px;font-weight:500;
  padding:5px 13px;border-radius:4px}
.more{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:15px;
  text-decoration:none;color:var(--navy);border-bottom:2px solid var(--sun);padding-bottom:3px}
.more::after{content:"";width:16px;height:7px;background:currentColor;
  clip-path:polygon(0 40%,68% 40%,68% 0,100% 50%,68% 100%,68% 60%,0 60%);transition:transform .2s}
.more:hover::after{transform:translateX(4px)}

/* =========================================================
   数字
   ========================================================= */
.figs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.figs li{padding:26px 22px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.figs li:nth-child(4n){border-right:0}
.figs dt{font-size:13.5px;color:var(--sub);margin-bottom:2px}
.figs dd{margin:0;font-family:'Zen Old Mincho',serif;font-size:clamp(30px,5vw,44px);
  line-height:1.15;color:var(--navy);font-weight:600}
.figs dd small{font-size:15px;font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:500;margin-left:4px;color:var(--sub)}
.bg-navy .figs{border-color:#ffffff2e}
.bg-navy .figs li{border-color:#ffffff2e}
.bg-navy .figs dt{color:#a9c1da}
.bg-navy .figs dd{color:#fff}
.bg-navy .figs dd small{color:#a9c1da}

/* グラフの箱 */
.chart{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 26px 20px}
.chart h3{font-size:17.5px;margin-bottom:4px}
.chart .src{font-size:12px;color:var(--sub);margin:12px 0 0;line-height:1.6}
.chart svg{width:100%;height:auto;display:block;margin-top:16px}

/* =========================================================
   スタッフ
   ========================================================= */
.faces{display:grid;grid-template-columns:repeat(3,1fr);gap:min(4vw,34px)}
.face{text-decoration:none;color:inherit;display:block}
.face-img{position:relative;aspect-ratio:3/4;border-radius:10px;overflow:hidden;
  background:#dce4ec;transition:transform .3s}
.face-img>span{position:absolute;inset:0;background-size:cover;background-position:center 22%;background-repeat:no-repeat}
.face:hover .face-img{transform:translateY(-4px)}
.face-img::after{content:"";position:absolute;inset:auto 0 0 0;height:44%;
  background:linear-gradient(#0000,#152941cc)}
.face-cap{position:absolute;left:18px;right:18px;bottom:14px;z-index:2;color:#fff}
.face-cap em{font-style:normal;font-size:11.5px;letter-spacing:.16em;opacity:.85;display:block}
.face-cap b{font-family:'Zen Old Mincho',serif;font-size:19px;font-weight:600}
.face-cap b span{font-size:12.5px;font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:400;margin-left:8px;opacity:.85}
.face q{display:block;margin-top:13px;font-size:15px;color:var(--sub);quotes:"「" "」"}

/* =========================================================
   お知らせ
   ========================================================= */
.news li{border-bottom:1px solid var(--line)}
.news a{display:grid;grid-template-columns:104px 96px 1fr;gap:16px;align-items:baseline;
  padding:17px 4px;text-decoration:none;color:var(--ink);transition:background .2s}
.news a:hover{background:var(--mist)}
.news time{font-family:'Zen Old Mincho',serif;font-size:14.5px;color:var(--sub)}
.news .tag{font-size:11.5px;letter-spacing:.1em;text-align:center;padding:3px 0;border-radius:3px;
  background:var(--blue-p);color:#1a4f85;line-height:1.6}
.news .tag.saiyou{background:#fdf0d2;color:var(--sun-d)}
.news p{margin:0;font-size:15.5px;font-weight:500}

/* =========================================================
   バナー・CTA
   ========================================================= */
.bnr{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 42%;
  border-radius:16px;overflow:hidden;background:var(--navy);color:#fff;min-height:300px}
.bnr-t{align-self:center;padding:46px min(5vw,54px)}
.bnr-t h2{font-size:clamp(23px,3.6vw,32px);color:#fff;margin-bottom:14px}
.bnr-t p{color:#c9d9ea;font-size:15.5px;margin-bottom:24px}
.bnr figure{margin:0;position:relative}
.bnr figure img{width:100%;height:100%;object-fit:cover;object-position:52% 30%}
.bnr figure::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--navy),#1f3a5f00 42%)}
.bnr-sun{background:var(--sun);color:#3a2a00}
.bnr-sun h2{color:#3a2a00}
.bnr-sun p{color:#5c4408}
.bnr-sun figure::before{background:linear-gradient(90deg,var(--sun),#f0b42900 42%)}

.callout{background:var(--navy);color:#fff;border-radius:16px;padding:40px min(5vw,52px);
  display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}
.callout h2{color:#fff;font-size:clamp(21px,3vw,27px);margin-bottom:8px}
.callout p{color:#c9d9ea;font-size:15px;margin:0}
.tel{font-family:'Zen Old Mincho',serif;font-size:clamp(27px,4.4vw,36px);color:#fff;
  text-decoration:none;display:block;letter-spacing:.02em;line-height:1.2}
.tel small{display:block;font-family:'Zen Kaku Gothic New',sans-serif;font-size:12.5px;
  letter-spacing:.1em;color:#a9c1da;margin-bottom:4px;font-weight:400}

/* =========================================================
   下層ページ
   ========================================================= */
.phero{position:relative;background:var(--navy);color:#fff;overflow:hidden;
  padding:66px 0 60px}
.phero::after{content:"";position:absolute;right:-90px;top:-90px;width:320px;height:320px;
  border:1px solid #ffffff2b;border-radius:50%}
.phero::before{content:"";position:absolute;right:10px;top:30px;width:180px;height:180px;
  border:1px solid #ffffff1f;border-radius:50%}
.phero h1{font-size:clamp(27px,5vw,40px);color:#fff;position:relative;z-index:2}
.phero .lead{color:var(--sun)}
.phero p{color:#c9d9ea;margin-top:14px;max-width:34em;font-size:15.5px;position:relative;z-index:2}
.crumb{background:var(--mist);font-size:12.5px;color:var(--sub)}
.crumb ol{display:flex;flex-wrap:wrap;gap:8px;padding:11px 0}
.crumb li::after{content:"／";margin-left:8px;color:var(--line)}
.crumb li:last-child::after{content:""}
.crumb a{color:var(--sub)}

/* 本文まわりの部品 */

.qa{border-top:1px solid var(--line)}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{cursor:pointer;list-style:none;padding:19px 44px 19px 40px;position:relative;
  font-weight:700;font-size:16px}
.qa summary::-webkit-details-marker{display:none}
.qa summary::before{content:"Q";position:absolute;left:4px;top:19px;
  font-family:'Zen Old Mincho',serif;color:var(--blue);font-size:17px}
.qa summary::after{content:"";position:absolute;right:10px;top:29px;width:12px;height:12px;
  border-right:2px solid var(--sub);border-bottom:2px solid var(--sub);
  transform:rotate(45deg) translateY(-3px);transition:transform .25s}
.qa details[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
.qa .a{padding:0 10px 22px 40px;position:relative;color:var(--sub);font-size:15.5px}
.qa .a::before{content:"A";position:absolute;left:4px;top:0;
  font-family:'Zen Old Mincho',serif;color:var(--sun-d);font-size:17px}

.tbl{width:100%;border-collapse:collapse;font-size:15.3px}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:16px 18px;text-align:left;vertical-align:top}
.tbl th{width:190px;background:var(--mist);font-weight:700;color:var(--navy);white-space:nowrap}
.tbl td{color:var(--sub)}
.tbl td b{color:var(--ink)}
.tbl ul li{padding-left:1.1em;position:relative;margin-bottom:.25em}
.tbl ul li::before{content:"";position:absolute;left:0;top:.85em;width:6px;height:6px;
  border-radius:50%;background:var(--blue-l)}

/* 時間軸 */
.tl{position:relative;padding-left:30px}
.tl::before{content:"";position:absolute;left:6px;top:10px;bottom:10px;width:2px;
  background:linear-gradient(var(--blue-l),var(--line))}
.tl li{position:relative;padding:0 0 26px}
.tl li::before{content:"";position:absolute;left:-30px;top:9px;width:14px;height:14px;
  border-radius:50%;background:#fff;border:3px solid var(--blue)}
.tl time{font-family:'Zen Old Mincho',serif;font-size:16px;color:var(--navy);
  display:inline-block;min-width:74px;font-weight:600}
.tl b{font-size:16px;display:block;margin-bottom:2px}
.tl p{font-size:15px;color:var(--sub);margin:2px 0 0}

/* 引用・声 */
.voice{position:relative;background:var(--sand);border-radius:14px;padding:34px 36px 30px;
  border-left:5px solid var(--sun)}
.voice::before{content:"“";position:absolute;right:22px;top:6px;font-family:'Zen Old Mincho',serif;
  font-size:80px;color:#e8dcc2;line-height:1}
.voice p{font-size:16px;position:relative;z-index:1}
.voice cite{display:block;margin-top:14px;font-style:normal;font-size:13.5px;color:var(--sub)}

/* =========================================================
   フォーム
   ========================================================= */
.form{display:grid;gap:20px}
.field label{display:block;font-weight:700;font-size:14.5px;margin-bottom:7px}
.req{background:var(--sun);color:#3a2a00;font-size:11px;padding:2px 8px;border-radius:3px;
  margin-left:8px;font-weight:700;letter-spacing:.06em}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:8px;
  font:inherit;font-size:16px;background:#fff;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:none;
  box-shadow:0 0 0 3px #2e7bc433}
.field .hint{font-size:12.5px;color:var(--sub);margin:6px 0 0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* =========================================================
   フッター
   ========================================================= */
.ftr{background:var(--navy-d);color:#c3d2e2;padding:64px 0 26px;font-size:14.5px}
.ftr a{color:#c3d2e2;text-decoration:none}
.ftr a:hover{color:#fff;text-decoration:underline}
.ftr-top{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:min(6vw,60px)}
.ftr .logo{color:#fff}
.ftr .logo small{color:#8ea6c0}
.ftr-addr{margin-top:22px;line-height:1.9;font-size:14px}
.ftr-addr b{color:#fff;display:block;font-size:14.5px;margin-top:14px}
.sitemap{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.sitemap h3{font-family:'Zen Kaku Gothic New',sans-serif;font-size:12px;letter-spacing:.16em;
  color:var(--sun);margin-bottom:12px;font-weight:700}
.sitemap li{margin-bottom:9px}
.ftr-btm{margin-top:46px;padding-top:20px;border-top:1px solid #ffffff1f;
  display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;font-size:12.5px;color:#8ea6c0}
.demo-note{background:#ffffff14;border:1px dashed #ffffff3d;border-radius:7px;
  padding:9px 15px;font-size:12.5px;color:#a9c1da;line-height:1.7;margin-top:18px}

/* =========================================================
   スクロールで出す
   ========================================================= */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.rv.on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

/* =========================================================
   タブレット
   ========================================================= */
@media (max-width:1080px){
  .nav{display:none}
  .nav.open{display:block;position:fixed;inset:var(--hdr-h) 0 auto;
    background:#fff;border-bottom:1px solid var(--line);padding:6px 20px 22px;
    box-shadow:0 18px 30px #1f3a5f1f;max-height:calc(100dvh - var(--hdr-h));overflow-y:auto}
  .gnav{flex-direction:column;gap:0}
  .gnav>li{display:block}
  .gnav>li>a{text-align:left;padding:15px 4px;border-bottom:1px solid var(--line);white-space:normal}
  .gnav>li>a b{font-size:16px;display:inline}
  .gnav>li>a span{display:inline;margin-left:10px;font-size:10.5px}
  .gnav>li>a::after{display:none}
  .has-sub>a b::after{transform:translateY(-2px) rotate(45deg);opacity:.5}
  /* スマホでは折りたたまず、そのまま下にぶら下げる（開く手間を省く） */
  .sub{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    min-width:0;background:var(--mist);border:0;border-bottom:1px solid var(--line);
    border-radius:0;box-shadow:none;padding:4px 0 8px}
  .sub::before{display:none}
  .sub a{padding:10px 4px 10px 24px;font-size:14.5px;position:relative;white-space:normal}
  .sub a::before{content:"";position:absolute;left:7px;top:1.15em;width:9px;height:1px;background:var(--blue-l)}
  .gnav>li.only-sp{display:block}
  .nav-cta{display:flex;justify-content:center;font-weight:700;
    border-radius:999px;padding:14px 4px;margin-top:16px;text-decoration:none}
  .cta-tel{border:2px solid var(--navy);color:var(--navy);
    font-family:'Zen Old Mincho',serif;letter-spacing:.03em}
  .cta-entry{background:var(--sun);color:#3a2a00;margin-top:10px}
  .burger{display:block}
  .hdr .btn{display:none}
  .split,.split-r{grid-template-columns:1fr;gap:26px}
  .figs{grid-template-columns:repeat(2,1fr)}
  .figs li:nth-child(2n){border-right:0}
  .sitemap{grid-template-columns:repeat(2,1fr)}
}

/* =========================================================
   スマホ
   ========================================================= */
@media (max-width:760px){
  body{font-size:16.5px;line-height:1.9}
  .wrap,.narrow{width:min(100% - 32px,var(--w))}
  .sec{padding:58px 0}
  .sec-sm{padding:44px 0}
  .road{height:34px}

  :root{--hdr-h:64px}
  .logo b{font-size:18px}
  .logo-mk{width:34px;height:34px}

  .hero-in{grid-template-columns:1fr;min-height:0}
  .hero-fig{order:-1;aspect-ratio:16/11;min-height:0}
  .hero-fig::before{background:linear-gradient(0deg,var(--navy) 0%,#1f3a5f00 46%)}
  .hero-txt{padding:24px 0 46px}
  .hero-badge{left:16px;right:auto;bottom:14px;font-size:13px;padding:11px 17px;
    box-shadow:0 6px 18px #0000003d}
  .hero-badge b{font-size:20px}

  .gate{margin-top:0}
  .gate-grid{grid-template-columns:1fr;gap:14px}
  .gate-card{min-height:150px;padding:22px 24px}
  .gate-card i{right:20px;bottom:20px;width:30px;height:30px}

  .svc{grid-template-columns:1fr;gap:20px;padding:32px 0}
  .svc:nth-child(even) .svc-fig{order:0}
  .faces{grid-template-columns:1fr 1fr;gap:16px}
  .faces .face:nth-child(3){grid-column:1 / -1;max-width:calc(50% - 8px)}

  .news a{grid-template-columns:88px 84px;padding:15px 2px}
  .news p{grid-column:1 / -1;margin-top:4px}

  .bnr{grid-template-columns:1fr}
  .bnr figure{aspect-ratio:16/9;order:-1}
  .bnr figure::before{background:linear-gradient(0deg,var(--navy),#1f3a5f00 60%)}
  .bnr-sun figure::before{background:linear-gradient(0deg,var(--sun),#f0b42900 60%)}
  .bnr-t{padding:26px 24px 34px}

  .callout{grid-template-columns:1fr;gap:20px;padding:30px 24px;text-align:left}
  .phero{padding:44px 0 42px}
  .chart{padding:20px 18px 16px}
  .tbl th,.tbl td{display:block;width:auto;white-space:normal}
  .tbl th{border-bottom:0;padding:14px 16px 10px}
  .tbl td{padding:0 16px 16px}
  .two{grid-template-columns:1fr}
  .ftr-top{grid-template-columns:1fr;gap:34px}
  .sitemap{grid-template-columns:1fr 1fr;gap:20px}
  .voice{padding:26px 24px}
  .qa summary{padding:17px 38px 17px 34px;font-size:15.5px}
  .qa .a{padding-left:34px}
}
@media (max-width:400px){
  .figs{grid-template-columns:1fr}
  .figs li{border-right:0}
  .faces{grid-template-columns:1fr}
  .faces .face:nth-child(3){max-width:none}
}

/* =========================================================
   下層ページの部品
   ========================================================= */

/* 約束・特徴：カードを並べず、横罫線で区切る */
.promise{border-top:1px solid var(--line)}
.promise>li{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:min(5vw,52px);
  padding:34px 0;border-bottom:1px solid var(--line);align-items:start}
.promise h3{font-size:clamp(19px,2.6vw,23px);position:relative;padding-left:24px}
.promise h3::before{content:"";position:absolute;left:0;top:.6em;width:12px;height:12px;
  border-radius:50%;border:3px solid var(--sun)}
.promise p{font-size:15.5px;color:var(--sub)}

/* 代表メッセージ */
.msg{display:grid;grid-template-columns:minmax(0,290px) minmax(0,1fr);gap:min(5vw,54px);align-items:start}
.msg img{border-radius:12px;width:100%}
.msg figcaption{margin-top:13px;font-size:13.5px;color:var(--sub);line-height:1.7}
.msg figcaption b{display:block;font-family:'Zen Old Mincho',serif;font-size:18px;
  color:var(--ink);margin-bottom:2px}

/* グラフを並べる */
.charts{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.charts .full{grid-column:1 / -1}

/* 横棒グラフ */
.bars{margin-top:14px}
.bars>li{display:grid;grid-template-columns:minmax(84px,auto) minmax(0,1fr) 64px;
  gap:14px;align-items:center;padding:8px 0;font-size:14.5px}
.bars .track{display:block;background:var(--mist);border-radius:999px;height:15px;overflow:hidden}
.bars .fill{display:block;height:15px;background:var(--blue);border-radius:999px;min-width:7px}
.bars b{text-align:right;font-family:'Zen Old Mincho',serif;font-size:16.5px;color:var(--navy)}

/* 費用の目安 */
.price{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.price>li{border:1px solid var(--line);border-radius:12px;padding:22px 20px;background:#fff}
.price em{font-style:normal;font-size:13px;color:var(--sub);display:block;margin-bottom:6px}
.price strong{font-family:'Zen Old Mincho',serif;font-size:27px;color:var(--navy);display:block;line-height:1.3}
.price strong small{font-size:14px;font-family:'Zen Kaku Gothic New',sans-serif;color:var(--sub);margin-left:3px}
.price p{font-size:13.5px;color:var(--sub);margin:8px 0 0}

/* インタビュー */
.iv{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:min(5vw,54px);
  align-items:start;padding:52px 0;border-top:1px solid var(--line)}
.iv:first-of-type{border-top:0;padding-top:22px}
.iv-fig{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/5;background:#dce4ec}
.iv-fig>span{position:absolute;inset:0;background-size:cover;background-position:center 22%;background-repeat:no-repeat}
.iv-name{margin-top:16px}
.iv-name em{font-style:normal;font-size:11.5px;letter-spacing:.18em;color:var(--blue);display:block}
.iv-name b{font-family:'Zen Old Mincho',serif;font-size:22px;display:block;margin-top:4px}
.iv-name span{font-size:13.5px;color:var(--sub)}
.iv-q{margin:26px 0 8px;font-size:17px;color:var(--navy);
  font-family:'Zen Old Mincho',serif;font-weight:600;padding-left:16px;border-left:4px solid var(--sun)}
.iv-b>p{font-size:15.8px;color:var(--sub)}
.iv-b>p:first-of-type{font-size:17px;color:var(--ink)}

/* 数字を文中に置く帯 */
.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;
  border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.strip>li{padding:22px 20px;border-right:1px solid var(--line)}
.strip>li:last-child{border-right:0}
.strip dt{font-size:13px;color:var(--sub)}
.strip dd{margin:2px 0 0;font-family:'Zen Old Mincho',serif;font-size:28px;color:var(--navy);line-height:1.2}
.strip dd small{font-size:13.5px;font-family:'Zen Kaku Gothic New',sans-serif;color:var(--sub);margin-left:3px}

/* 注記 */
.note{font-size:13px;color:var(--sub);line-height:1.8;background:var(--mist);
  border-radius:10px;padding:18px 20px;margin-top:26px}
.note b{color:var(--ink)}

@media (max-width:1080px){
  .charts{grid-template-columns:1fr}
  .price{grid-template-columns:1fr}
}
@media (max-width:760px){
  .promise>li{grid-template-columns:1fr;gap:10px;padding:24px 0}
  .msg{grid-template-columns:1fr;gap:22px}
  .msg figure{max-width:250px}
  .iv{grid-template-columns:1fr;gap:24px;padding:38px 0}
  .iv-fig{aspect-ratio:16/11}
  .iv-fig>span{background-size:cover;background-position:center 25%}
  .bars>li{grid-template-columns:minmax(72px,auto) minmax(0,1fr) 54px;gap:10px;font-size:13.5px}
  .strip>li{border-right:0;border-bottom:1px solid var(--line)}
}
.pc-only{display:inline}
@media (max-width:760px){.pc-only{display:none}}

/* ドーナツ */
.dn-wrap{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;align-items:center;margin-top:16px}
.donut{width:150px;height:150px;display:block}
.donut .seg{transition:stroke-width .2s}
.dn-b{font-family:'Zen Old Mincho',serif;font-size:9px;fill:#1f3a5f;font-weight:600}
.dn-s{font-size:3.4px;fill:#5d6b7a;font-family:sans-serif}
.legend>li{display:grid;grid-template-columns:12px minmax(0,1fr) auto 48px;gap:10px;
  align-items:center;font-size:13.5px;padding:4px 0;line-height:1.6}
.legend i{width:12px;height:12px;border-radius:3px;display:block}
.legend b{font-family:'Zen Old Mincho',serif;font-size:15.5px;color:var(--navy)}
.legend span{color:var(--sub);font-size:12.5px;text-align:right}
@media (max-width:520px){
  .dn-wrap{grid-template-columns:1fr;justify-items:center;gap:16px}
  .legend{width:100%}
}

/* 積み上げ帯（全体を100として構成比を見せる） */
.stack{display:flex;height:36px;border-radius:6px;overflow:hidden;margin-top:18px}
.stack>span{display:block;height:100%}
.stack-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));
  gap:7px 24px;margin-top:16px}
.stack-legend>li{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--sub);line-height:1.6}
.stack-legend i{width:11px;height:11px;border-radius:3px;flex:none;display:block}
.stack-legend b{margin-left:auto;font-family:'Zen Old Mincho',serif;font-size:15.5px;color:var(--navy)}

/* =========================================================
   対応エリア：路線図のかたちで「どの拠点がどこへ行くか」を見せる
   （架空の地図を描いても位置関係が嘘になるので、地図はやめた）
   ========================================================= */
.route{background:var(--mist);border-radius:14px;padding:34px min(4vw,32px) 28px}
.route-line{display:grid;grid-template-columns:repeat(3,1fr);gap:min(3vw,24px);position:relative}
.route-line::before{content:"";position:absolute;left:16.6%;right:16.6%;top:13px;height:3px;
  border-radius:3px;background:linear-gradient(90deg,var(--sun),var(--blue) 45%,var(--blue-l))}
.stop{position:relative;padding-top:40px;text-align:center}
.stop::before{content:"";position:absolute;top:5px;left:50%;transform:translateX(-50%);
  width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--blue);z-index:1}
.stop.is-main::before{width:24px;height:24px;top:2px;background:var(--sun);border-color:var(--sun-d)}
.stop>b{display:block;font-family:'Zen Old Mincho',serif;font-size:17.5px;color:var(--navy);line-height:1.4}
.stop>b span{display:block;font-family:'Zen Kaku Gothic New',sans-serif;font-size:10.5px;
  letter-spacing:.16em;color:var(--sub);font-weight:700;margin-top:3px}
.stop ul{margin-top:13px;display:grid;gap:6px}
.stop ul li{background:#fff;border:1px solid var(--line);border-radius:6px;
  padding:8px 10px;font-size:13.5px;color:var(--sub);line-height:1.5}
.route-note{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);
  font-size:13.5px;color:var(--sub);line-height:1.8}
.route-note b{color:var(--ink)}

@media (max-width:760px){
  .route{padding:26px 20px 22px}
  .route-line{grid-template-columns:1fr;gap:0}
  .route-line::before{left:10px;right:auto;top:10px;bottom:30px;width:3px;height:auto;
    background:linear-gradient(180deg,var(--sun),var(--blue) 45%,var(--blue-l))}
  .stop{padding:0 0 24px 38px;text-align:left}
  .stop::before{top:3px;left:3px;transform:none}
  .stop.is-main::before{left:0}
  .stop ul{grid-template-columns:1fr 1fr;margin-top:10px}
}
@media (max-width:430px){
  .stop ul{grid-template-columns:1fr}
}

/* =========================================================
   事業所案内（ボンズシップの /access に倣った形）
   拠点を横に並べず、1拠点1ブロックで縦に積む。
   項目名は左に固定幅・薄地・枠線つき、内容は右。右に地図。
   ========================================================= */
.office{padding-top:40px;margin-top:40px;border-top:1px solid var(--line)}
.office:first-of-type{padding-top:0;margin-top:0;border-top:0}
.office-name{position:relative;text-align:center;margin-bottom:34px}
.office-name b{display:inline-block;background:var(--mist);border:1px solid var(--navy);
  border-radius:6px;padding:10px 38px;font-family:'Zen Old Mincho',serif;
  font-size:18.5px;color:var(--navy);position:relative;z-index:2}
.office-name::after{content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;
  background:var(--mist);border-right:1px solid var(--navy);border-bottom:1px solid var(--navy);
  transform:translateX(-50%) rotate(45deg)}
.office-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);
  gap:min(4vw,38px);align-items:start}
.office dl{display:grid;grid-template-columns:126px minmax(0,1fr);gap:0 22px;align-items:start;margin:0}
.office dt{background:var(--mist);border:1px solid var(--navy);border-radius:4px;
  font-size:12.5px;font-weight:700;color:var(--navy);text-align:center;
  padding:5px 4px;line-height:1.6;letter-spacing:.02em}
.office dd{margin:0 0 20px;padding-bottom:18px;font-size:14.5px;color:var(--sub);
  line-height:1.85;border-bottom:1px dotted #c6d2de}
.office dl>dd:last-of-type{margin-bottom:0;padding-bottom:0;border-bottom:0}
.office dd b{color:var(--ink)}
.office dd .sub-line{display:block;font-size:13.5px;margin-top:4px}
.office dd a{color:var(--navy);font-weight:700;text-decoration:none;border-bottom:1px solid var(--sun)}
.office-map{margin:0}
.office-map svg{width:100%;height:auto;display:block;border-radius:10px;border:1px solid var(--line)}
.office-map figcaption{margin-top:10px;font-size:13px;color:var(--sub);line-height:1.7}
.office-map figcaption b{color:var(--ink)}

@media (max-width:860px){
  .office-body{grid-template-columns:1fr;gap:26px}
  .office-map{max-width:420px}
}
@media (max-width:560px){
  .office dl{grid-template-columns:1fr;gap:0}
  .office dt{text-align:left;padding:5px 12px;margin-bottom:8px;display:inline-block}
  .office dd{margin-bottom:18px;padding-bottom:16px}
  .office-name b{padding:9px 22px;font-size:17px}
}

/* =========================================================
   スタッフ一覧（ボンズシップの /staff に倣った寸法）
   写真 310×400px ／ 3列 ／ 横の間隔35px ／ 全体幅1000px
   ========================================================= */
.photo-ul{display:grid;grid-template-columns:repeat(3,310px);gap:52px 35px;
  justify-content:center;max-width:1000px;margin-inline:auto}
.photo-ul>li{width:310px}
.pc-photo{position:relative;width:100%;aspect-ratio:310/400;overflow:hidden;
  background:#dce4ec;border-radius:8px}
.pc-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pc-tag{position:absolute;left:0;right:0;top:0;z-index:2;background:var(--navy);color:#fff;
  font-size:13px;text-align:center;padding:5px 6px;letter-spacing:.05em;line-height:1.5}
.pc-body{margin-top:13px}
.pc-name{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 3px}
.pc-name i{font-style:normal;font-size:12.5px;background:#e9edf2;color:var(--navy);
  padding:2px 9px;border-radius:3px;white-space:nowrap}
.pc-name b{font-family:'Zen Old Mincho',serif;font-size:17.5px;color:var(--ink);font-weight:600}
.pc-year{font-size:13px;color:var(--sub);margin:0}
.photo-ul a{display:block;text-decoration:none;color:inherit}
.photo-ul a .pc-photo{transition:transform .3s}
.photo-ul a:hover .pc-photo{transform:translateY(-4px)}
.pc-more{display:inline-flex;align-items:center;gap:7px;margin-top:7px;
  font-size:12.5px;font-weight:700;color:var(--navy);border-bottom:2px solid var(--sun);padding-bottom:2px}
.pc-more::after{content:"";width:14px;height:6px;background:currentColor;
  clip-path:polygon(0 40%,68% 40%,68% 0,100% 50%,68% 100%,68% 60%,0 60%)}

@media (max-width:1059px){
  .photo-ul{grid-template-columns:repeat(2,minmax(0,1fr));max-width:700px;gap:40px 28px}
  .photo-ul>li{width:100%}
}
@media (max-width:760px){
  .photo-ul{gap:30px 16px;max-width:none}
  .pc-tag{font-size:11.5px;padding:4px 4px}
  .pc-name b{font-size:16px}
  .pc-name i{font-size:11.5px;padding:2px 7px}
}
