:root{
  --tokiwa:#14352A;      /* 深い常磐グリーン：見出し・フッター */
  --matsuba:#2E5E4E;     /* 松葉：メイングリーン */
  --wakanae:#7FAF9B;     /* 若苗：淡いグリーン */
  --usurai:#EDF3EF;      /* 薄氷：セクション背景 */
  --hakuji:#FBFCFA;      /* 白磁：ベース背景 */
  --sumi:#2B2F2D;        /* 墨：本文 */
  --akari:#C98A2F;       /* 灯：採用・CTAの一点アクセント */
  --line:#DCE7E1;        /* 枠線 */
  --dash:#C9D8D0;        /* 破線 */
  --soft:#E7EFEA;        /* 表の罫線 */
  --hero-edge:#E3EDE7;   /* ヒーローのグラデ端 */
  --serif:"Shippori Mincho B1",serif;
  --sans:"Zen Kaku Gothic New",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:var(--sans);color:var(--sumi);background:var(--hakuji);line-height:1.9;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--akari);outline-offset:3px;border-radius:2px}
::selection{background:var(--wakanae);color:#fff}

/* ---------- 共通パーツ ---------- */
.container{width:min(1120px,92%);margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:.75rem;font-size:.8rem;letter-spacing:.32em;color:var(--matsuba);font-weight:700;text-transform:uppercase}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--matsuba)}
.sec-title{font-family:var(--serif);font-size:clamp(1.7rem,3.4vw,2.5rem);color:var(--tokiwa);line-height:1.5;margin:.6rem 0 1.2rem;font-weight:600}
section{padding:clamp(4.5rem,9vw,7.5rem) 0}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{animation:none!important;transition:none!important}
}

/* ---------- ヘッダー ---------- */
header{position:fixed;inset:0 0 auto;z-index:100;background:rgba(251,252,250,.88);backdrop-filter:blur(10px);transition:box-shadow .3s}
header.is-scrolled{box-shadow:0 1px 0 rgba(20,53,42,.12),0 8px 24px rgba(20,53,42,.06)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:76px}
.logo{display:flex;align-items:baseline;gap:.6rem}
.logo .en{font-family:var(--serif);font-size:1.55rem;font-weight:700;color:var(--tokiwa);letter-spacing:.04em}
.logo .en em{font-style:normal;color:var(--matsuba)}
.logo .ja{font-size:.72rem;letter-spacing:.22em;color:var(--matsuba)}
nav ul{display:flex;gap:2rem;list-style:none;align-items:center}
nav a{font-size:.9rem;font-weight:500;letter-spacing:.08em;padding:.4rem 0;position:relative}
nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--matsuba);transform:scaleX(0);transform-origin:left;transition:transform .3s}
nav a:not(.nav-cta):hover::after{transform:scaleX(1)}
.nav-cta{background:var(--matsuba);color:#fff;padding:.6rem 1.3rem;border-radius:999px;transition:background .3s}
.nav-cta:hover{background:var(--tokiwa)}
.menu-btn{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;position:relative;z-index:110}
.menu-btn span{display:block;width:24px;height:2px;background:var(--tokiwa);margin:6px auto;transition:.3s}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ---------- ヒーロー ---------- */
.hero{min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--hakuji) 0%,var(--usurai) 55%,var(--hero-edge) 100%);padding:120px 0 80px}
.hero-grid{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;width:min(1120px,92%);margin-inline:auto;position:relative;z-index:2}
.hero h1{font-family:var(--serif);font-weight:600;color:var(--tokiwa);font-size:clamp(2.1rem,5.2vw,3.9rem);line-height:1.55;letter-spacing:.06em}
.hero h1 .accent{color:var(--matsuba)}
.hero p.lead{margin-top:1.6rem;max-width:34em;color:#41504a;font-size:clamp(.95rem,1.4vw,1.05rem)}
.hero-tags{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.2rem}
.hero-tags span{border:1px solid var(--matsuba);color:var(--matsuba);border-radius:999px;padding:.45rem 1.2rem;font-size:.85rem;letter-spacing:.1em;background:rgba(255,255,255,.6)}
.hero-cta{display:inline-flex;align-items:center;gap:.7rem;margin-top:2.4rem;background:var(--matsuba);color:#fff;padding:1rem 2.2rem;border-radius:999px;font-weight:700;letter-spacing:.12em;transition:background .3s,transform .3s;box-shadow:0 10px 24px rgba(46,94,78,.25)}
.hero-cta:hover{background:var(--tokiwa);transform:translateY(-2px)}
.hero-cta svg{transition:transform .3s}
.hero-cta:hover svg{transform:translateX(4px)}
/* 縦書きキャッチ */
.tategaki{writing-mode:vertical-rl;font-family:var(--serif);font-size:clamp(1rem,1.6vw,1.25rem);letter-spacing:.5em;color:var(--matsuba);border-left:1px solid rgba(46,94,78,.35);padding-left:1.4rem;height:clamp(240px,38vh,340px);align-self:start;margin-top:1rem}
/* リンク（輪）モチーフ */
.rings{position:absolute;right:-8%;bottom:-14%;width:min(560px,60vw);opacity:.5;z-index:1;pointer-events:none}
.rings circle{fill:none;stroke:var(--wakanae);stroke-width:1.5}
.scroll-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-size:.7rem;letter-spacing:.4em;color:var(--matsuba);writing-mode:vertical-rl;z-index:2}
.scroll-hint::after{content:"";display:block;width:1px;height:44px;background:var(--matsuba);margin-top:.6rem;animation:drop 2s ease-in-out infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- 理念 ---------- */
.philosophy{background:var(--hakuji);text-align:center}
.philosophy .kanji{font-family:var(--serif);font-size:clamp(2.4rem,6vw,4rem);color:var(--tokiwa);letter-spacing:.3em;margin-bottom:1.4rem}
.philosophy .kanji em{font-style:normal;color:var(--matsuba)}
.philosophy p{max-width:38em;margin:0 auto 1.2rem;color:#41504a}
.phil-links{display:flex;justify-content:center;gap:0;margin-top:3.5rem;flex-wrap:wrap}
.phil-links div{width:clamp(160px,20vw,230px);aspect-ratio:1;border:1.5px solid var(--matsuba);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;margin:0 clamp(-30px,-2.4vw,-20px);background:rgba(251,252,250,.7)}
.phil-links .word{font-family:var(--serif);font-size:clamp(1.15rem,1.7vw,1.5rem);color:var(--tokiwa);font-weight:600}
.phil-links .en{font-size:clamp(.66rem,.85vw,.76rem);letter-spacing:.25em;color:var(--matsuba)}

/* ---------- 代表挨拶 ---------- */
.message{background:var(--usurai)}
.message-grid{display:grid;grid-template-columns:340px 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.portrait{position:relative}
.portrait .frame{aspect-ratio:3/4;border-radius:2px;background:linear-gradient(180deg,#CFE0D6,#A8C6B6);display:flex;align-items:center;justify-content:center;overflow:hidden}
.portrait .frame svg{width:58%;opacity:.85}
.portrait figcaption{margin-top:.9rem;font-size:.85rem;color:#41504a;text-align:right}
.portrait figcaption strong{display:block;font-family:var(--serif);font-size:1.15rem;color:var(--tokiwa);letter-spacing:.15em}
.message-body h3{font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.6rem);color:var(--tokiwa);margin-bottom:1.4rem;line-height:1.7;font-weight:600}
.message-body p{margin-bottom:1.1rem;color:#3a4742}

/* ---------- サービス ---------- */
.services{background:var(--hakuji)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.5rem}
.svc-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s}
.svc-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(20,53,42,.12)}
.svc-visual{height:150px;display:flex;align-items:center;justify-content:center;position:relative}
.svc-visual.v1{background:linear-gradient(135deg,#E7F1EB,#CBE0D4)}
.svc-visual.v2{background:linear-gradient(135deg,#E6F2F9,#CDE4F0)}
.svc-visual.v3{background:linear-gradient(135deg,#F7E9EC,#EDD5DB)}
.svc-visual svg{width:64px;height:64px;stroke:var(--matsuba)}
.svc-num{position:absolute;top:12px;left:16px;font-family:var(--serif);font-size:.8rem;letter-spacing:.25em;color:var(--matsuba)}
.svc-body{padding:1.6rem 1.6rem 1.8rem;display:flex;flex-direction:column;flex:1}
.svc-body h3{font-family:var(--serif);font-size:1.2rem;color:var(--tokiwa);margin-bottom:.2rem;font-weight:600}
.svc-body .sub{font-size:.78rem;letter-spacing:.2em;color:var(--matsuba);margin-bottom:1rem}
.svc-body p{font-size:.92rem;color:#41504a;margin-bottom:1.2rem}
.svc-spec{margin-top:auto;border-top:1px dashed var(--dash);padding-top:1rem;font-size:.84rem}
.svc-spec dt{color:var(--matsuba);font-weight:700;float:left;clear:left;width:5.5em}
.svc-spec dd{margin-left:6em;margin-bottom:.3rem;color:#3a4742}

/* ---------- 実績・お知らせ ---------- */
.news{background:var(--tokiwa);color:#EAF2ED}
.news .eyebrow{color:var(--wakanae)}
.news .eyebrow::before{background:var(--wakanae)}
.news .sec-title{color:#fff}
.news-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(2rem,5vw,4rem);align-items:start;margin-top:1rem}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.stat{border:1px solid rgba(127,175,155,.4);border-radius:12px;padding:1.4rem 1.2rem;background:rgba(255,255,255,.03)}
.stat .num{font-family:var(--serif);font-size:2.1rem;color:#fff;line-height:1.2}
.stat .num small{font-size:1rem;margin-left:.15em;color:var(--wakanae)}
.stat .label{font-size:.8rem;letter-spacing:.12em;color:var(--wakanae);margin-top:.3rem}
.news-list{list-style:none;border-top:1px solid rgba(127,175,155,.35)}
.news-list li a{display:grid;grid-template-columns:7.2em 6.5em 1fr;gap:1rem;align-items:center;padding:1.15rem .4rem;border-bottom:1px solid rgba(127,175,155,.35);transition:background .3s}
.news-list li a:hover{background:rgba(127,175,155,.12)}
.news-list time{font-size:.85rem;color:var(--wakanae);letter-spacing:.05em}
.news-list .cat{font-size:.7rem;text-align:center;border:1px solid var(--wakanae);color:var(--wakanae);border-radius:999px;padding:.2rem .5rem;letter-spacing:.1em}
.news-list .cat.akari{border-color:var(--akari);color:#E9BE7A}
.news-list .ttl{font-size:.94rem;color:#EAF2ED}

/* ---------- 採用 ---------- */
.recruit{background:linear-gradient(160deg,#FDFBF6,#F7F1E4);position:relative;overflow:hidden}
.recruit-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.recruit .eyebrow{color:var(--akari)}
.recruit .eyebrow::before{background:var(--akari)}
.recruit p{color:#4a4436;max-width:32em}
.jobs{list-style:none;margin-top:1.6rem;display:grid;gap:.8rem}
.jobs li{background:#fff;border:1px solid #E7DCC4;border-radius:10px;padding:1rem 1.3rem;display:flex;justify-content:space-between;align-items:center;font-size:.95rem}
.jobs li b{color:var(--tokiwa)}
.jobs li span{font-size:.78rem;color:var(--akari);letter-spacing:.1em}
.recruit-cta{display:inline-flex;align-items:center;gap:.7rem;margin-top:2.2rem;background:var(--akari);color:#fff;padding:1rem 2.2rem;border-radius:999px;font-weight:700;letter-spacing:.12em;transition:background .3s,transform .3s;box-shadow:0 10px 24px rgba(201,138,47,.3)}
.recruit-cta:hover{background:#A87322;transform:translateY(-2px)}
.recruit-copy{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.2rem);color:var(--tokiwa);line-height:1.7;font-weight:600}
.recruit-copy em{font-style:normal;color:var(--akari)}

/* ---------- 会社概要 ---------- */
.company{background:var(--hakuji)}
.company-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);margin-top:1rem}
.company table{width:100%;border-collapse:collapse;font-size:.94rem}
.company th{width:9em;text-align:left;font-weight:700;color:var(--matsuba);padding:1rem .4rem;border-bottom:1px solid var(--line);vertical-align:top;letter-spacing:.05em}
.company td{padding:1rem .4rem;border-bottom:1px solid var(--line);color:#3a4742}
.map-ph{border-radius:14px;overflow:hidden;border:1px solid var(--line);min-height:320px;background:
  linear-gradient(rgba(237,243,239,.7),rgba(237,243,239,.7)),
  repeating-linear-gradient(0deg,#CFE0D6 0 1px,transparent 1px 42px),
  repeating-linear-gradient(90deg,#CFE0D6 0 1px,transparent 1px 42px),#EDF3EF;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.6rem;color:var(--matsuba)}
.map-ph strong{font-family:var(--serif);letter-spacing:.2em}
.map-ph small{font-size:.78rem;letter-spacing:.1em}

/* ---------- お問い合わせ ---------- */
.contact{background:var(--usurai);text-align:center}
.tel{font-family:var(--serif);font-size:clamp(2rem,5vw,3.2rem);color:var(--tokiwa);letter-spacing:.06em;display:inline-flex;align-items:center;gap:.8rem;margin:.8rem 0 .3rem}
.tel svg{width:.8em;height:.8em;stroke:var(--matsuba)}
.contact .hours{font-size:.9rem;color:#41504a;margin-bottom:2rem}
.contact-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.btn-line{display:inline-flex;align-items:center;gap:.6rem;border:1.5px solid var(--matsuba);color:var(--matsuba);padding:.95rem 2rem;border-radius:999px;font-weight:700;letter-spacing:.1em;transition:.3s;background:#fff}
.btn-line:hover{background:var(--matsuba);color:#fff}
.btn-fill{display:inline-flex;align-items:center;gap:.6rem;background:var(--matsuba);color:#fff;padding:.95rem 2rem;border-radius:999px;font-weight:700;letter-spacing:.1em;transition:.3s}
.btn-fill:hover{background:var(--tokiwa)}

/* ---------- フッター ---------- */
footer{background:var(--tokiwa);color:#BFD3C9;padding:3.5rem 0 2rem}
.footer-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}
.footer-logo .en{font-family:var(--serif);font-size:1.5rem;color:#fff;letter-spacing:.05em}
.footer-logo .en em{font-style:normal;color:var(--wakanae)}
.footer-logo p{font-size:.82rem;margin-top:.6rem;line-height:1.8}
.footer-nav{display:flex;gap:2rem;list-style:none;flex-wrap:wrap}
.footer-nav a{font-size:.85rem;letter-spacing:.08em;transition:color .3s}
.footer-nav a:hover{color:#fff}
.copy{text-align:center;font-size:.72rem;letter-spacing:.15em;margin-top:2.8rem;color:#7FAF9B}

/* ---------- 訪問看護（専用セクション） ---------- */
.nursing{background:#fff}
.nursing-lead{max-width:42em;color:#41504a}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin:2.4rem 0 3.6rem}
.pillar{background:var(--usurai);border-radius:14px;padding:1.9rem 1.5rem;text-align:center}
.pillar .p-ic{width:54px;height:54px;margin:0 auto 1rem;border:1.5px solid var(--matsuba);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff}
.pillar .p-ic svg{width:26px;height:26px;stroke:var(--matsuba)}
.pillar h3{font-family:var(--serif);color:var(--tokiwa);font-size:1.15rem;margin-bottom:.6rem;font-weight:600}
.pillar p{font-size:.9rem;color:#41504a;text-align:left}
.sub-heading{font-family:var(--serif);font-size:1.3rem;color:var(--tokiwa);margin:0 0 1.4rem;font-weight:600;display:flex;align-items:center;gap:.9rem}
.sub-heading::after{content:"";flex:1;height:1px;background:var(--line)}
.care-list{display:grid;grid-template-columns:1fr 1fr;gap:0 2.6rem;margin-bottom:3.6rem}
.care-list>div{display:grid;grid-template-columns:10.5em 1fr;gap:1rem;padding:1rem .2rem;border-bottom:1px dashed var(--dash)}
.care-list dt{color:var(--matsuba);font-weight:700;font-size:.92rem}
.care-list dd{font-size:.9rem;color:#3a4742}
/* 母子訪問看護ハイライト */
.boshi{background:linear-gradient(150deg,#FBF3F3,#F6EAEC);border:1px solid #EAD6D9;border-radius:18px;padding:clamp(1.8rem,4vw,3rem);margin-bottom:3.6rem}
.boshi .eyebrow{color:#B96A7A}
.boshi .eyebrow::before{background:#B96A7A}
.boshi-head h3{font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,1.9rem);color:#8A4A57;margin:.4rem 0 .9rem;font-weight:600}
.boshi-head p{max-width:46em;color:#5A4A4C;font-size:.95rem}
.boshi-feat{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin:1.9rem 0}
.boshi-feat>div{background:rgba(255,255,255,.78);border-radius:12px;padding:1.3rem 1.2rem}
.boshi-feat h4{font-size:.98rem;color:#8A4A57;margin-bottom:.5rem}
.boshi-feat p{font-size:.86rem;color:#5A4A4C}
.voices{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.voices figure{background:#fff;border:1px solid #EAD6D9;border-radius:12px;padding:1.4rem 1.5rem}
.voices blockquote{font-size:.92rem;color:#4a3e40}
.voices blockquote::before{content:"\201C";font-family:var(--serif);font-size:2rem;color:#B96A7A;line-height:0;margin-right:.2rem;vertical-align:-.35em}
.voices figcaption{margin-top:.8rem;font-size:.74rem;color:#B96A7A;letter-spacing:.08em}
/* ご利用の流れ */
.flow{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.flow li{background:var(--usurai);border-radius:12px;padding:1.5rem 1.3rem;position:relative}
.flow li span{font-family:var(--serif);color:var(--matsuba);font-size:.85rem;letter-spacing:.25em}
.flow li h4{font-family:var(--serif);font-size:1.02rem;color:var(--tokiwa);margin:.4rem 0 .5rem;font-weight:600}
.flow li p{font-size:.85rem;color:#41504a}
.flow li:not(:last-child)::after{content:"";position:absolute;right:-1.15rem;top:50%;width:.9rem;height:1px;background:var(--matsuba)}
.svc-more{margin-top:1.1rem;font-size:.86rem;color:var(--matsuba);font-weight:700;letter-spacing:.08em}
.svc-more:hover{text-decoration:underline}

/* ---------- デイサービス空き状況 ---------- */
.avail{margin-top:4rem}
.avail-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.avail-update{font-size:.8rem;color:#6b7a74;letter-spacing:.05em}
.avail-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:14px;background:#fff}
.avail table{width:100%;border-collapse:collapse;min-width:720px;font-size:.92rem}
.avail .slot{white-space:nowrap;font-weight:700;color:var(--matsuba);font-size:.86rem}
.avail .slot small{display:block;font-weight:500;font-size:.7rem;color:#6b7a74;letter-spacing:.03em}
.avail th,.avail td{padding:.95rem .8rem;text-align:center;border-bottom:1px solid var(--soft)}
.avail thead th{background:var(--usurai);color:var(--matsuba);font-size:.85rem;letter-spacing:.1em;font-weight:700}
.avail thead th:first-child{border-top-left-radius:14px}
.avail thead th:last-child{border-top-right-radius:14px}
.avail tbody tr:last-child th,.avail tbody tr:last-child td{border-bottom:0}
.avail tbody th{text-align:left;font-weight:700;color:var(--tokiwa);white-space:nowrap;padding-left:1.2rem}
.avail tbody th small{display:block;font-weight:500;font-size:.75rem;color:var(--matsuba);letter-spacing:.05em}
.avail .sat{color:#3b6ea5}
.avail .mark{font-size:1.15rem;line-height:1}
.avail .m-ok{color:var(--matsuba)}
.avail .m-few{color:var(--akari);font-weight:700}
.avail .m-full{color:#B0483F;font-weight:700}
.avail .m-closed{color:#9AA8A1}
.avail-legend{display:flex;gap:1.4rem;flex-wrap:wrap;margin-top:1rem;font-size:.82rem;color:#41504a}
.avail-legend span{display:inline-flex;align-items:center;gap:.4rem}
.avail-note{margin-top:.6rem;font-size:.8rem;color:#6b7a74}

/* ---------- 写真プレースホルダー ---------- */
.ph{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;text-align:center;padding:1.2rem;background:linear-gradient(135deg,#E7F0EB,#D3E4DB);color:var(--matsuba);border:1.5px dashed rgba(46,94,78,.4);border-radius:12px}
.ph svg{width:28px;height:28px;stroke:currentColor;opacity:.75}
.ph strong{font-size:.78rem;letter-spacing:.14em}
.ph small{font-size:.74rem;color:#54685f;line-height:1.7;max-width:26em}
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:3.5rem}
.photo-strip .ph{aspect-ratio:4/3}
.svc-visual.ph{height:200px;border-radius:0;border-left:0;border-right:0;border-top:0}
.boshi-top{display:grid;grid-template-columns:1.5fr 1fr;gap:1.6rem;align-items:stretch}
.boshi-ph{background:linear-gradient(135deg,#F5E4E6,#EDD5D9);color:#8A4A57;border-color:rgba(138,74,87,.4);min-height:220px}
.boshi-ph small{color:#7a5a5f}
.boshi-photo{margin:0;border-radius:12px;overflow:hidden;min-height:220px;box-shadow:0 10px 26px rgba(138,74,87,.18)}
.boshi-photo img{width:100%;height:100%;object-fit:cover;display:block}
.recruit-ph{aspect-ratio:4/3;background:linear-gradient(135deg,#F4E9D2,#ECDDBE);color:#8a6a2f;border-color:rgba(169,115,34,.4);margin-bottom:1.6rem}
.recruit-ph small{color:#7d6a45}
.portrait .frame{flex-direction:column;gap:.8rem}
.portrait .ph-note{font-size:.72rem;color:#3f5a4d;background:rgba(251,252,250,.75);border-radius:8px;padding:.4rem .8rem;line-height:1.6;max-width:85%}

/* ---------- レスポンシブ ---------- */
@media (max-width:960px){
  .svc-grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto}
  .news-grid,.recruit-inner,.company-grid,.message-grid{grid-template-columns:1fr}
  .pillar-grid,.care-list,.boshi-feat,.voices{grid-template-columns:1fr}
  .photo-strip,.boshi-top{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr 1fr}
  .flow li::after{display:none}
  .care-list>div{grid-template-columns:9em 1fr}
  .message-grid{gap:2.2rem}
  .portrait{max-width:300px;margin-inline:auto}
}
@media (max-width:820px){
  .flow{grid-template-columns:1fr}
  .menu-btn{display:block}
  nav{position:fixed;inset:0;background:rgba(20,53,42,.97);transform:translateX(100%);transition:transform .4s ease;display:flex;align-items:center;justify-content:center}
  nav.is-open{transform:none}
  nav ul{flex-direction:column;gap:2.2rem;text-align:center}
  nav a{color:#fff;font-size:1.1rem}
  nav a:not(.nav-cta)::after{background:var(--wakanae)}
  .nav-cta{background:var(--akari)}
  .hero-grid{grid-template-columns:1fr}
  .tategaki{display:none}
  .rings{right:-30%;bottom:-8%;opacity:.35}
  .news-list li a{grid-template-columns:6.5em 1fr;grid-template-rows:auto auto}
  .news-list .cat{display:none}
  .phil-links div{width:min(30vw,135px);height:auto;margin:0 -14px}
  .stats{grid-template-columns:1fr 1fr}
}

/* ---------- サブページ共通 ---------- */
.page-hero{padding:150px 0 64px;background:linear-gradient(160deg,var(--hakuji) 0%,var(--usurai) 70%,var(--hero-edge) 100%);position:relative;overflow:hidden}
.page-hero .container{position:relative}
.hero-watermark{position:absolute;inset:0 0 0 auto;width:58%;z-index:0;pointer-events:none;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 42%);
  mask-image:linear-gradient(to right,transparent 0,#000 42%)}
.hero-watermark img{width:100%;height:100%;object-fit:cover;opacity:.32;filter:grayscale(15%) saturate(.85)}
@media (max-width:820px){
  .hero-watermark{width:100%;opacity:.7;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 55%);
    mask-image:linear-gradient(to bottom,transparent 0,#000 55%)}
}
.page-hero h1{font-family:var(--serif);font-size:clamp(1.7rem,3.6vw,2.6rem);color:var(--tokiwa);line-height:1.5;margin-top:.6rem;font-weight:600}
.breadcrumb{font-size:.76rem;color:#6b7a74;margin-top:1.2rem;letter-spacing:.05em}
.breadcrumb a{color:var(--matsuba)}
.breadcrumb a:hover{text-decoration:underline}
nav a.is-active:not(.nav-cta)::after{transform:scaleX(1)}

/* ---------- トップ：入口カード ---------- */
.entry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.5rem}
.entry-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s}
.entry-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(20,53,42,.12)}
.entry-body{padding:1.5rem 1.5rem 1.7rem;display:flex;flex-direction:column;flex:1;gap:.7rem}
.entry-body h3{font-family:var(--serif);font-size:1.14rem;color:var(--tokiwa);font-weight:600;line-height:1.6}
.entry-body .sub{font-size:.76rem;letter-spacing:.2em;color:var(--matsuba)}
.entry-body p{font-size:.9rem;color:#41504a}
.btn-more{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--matsuba);color:#fff;border-radius:999px;padding:.75rem 1.6rem;font-weight:700;font-size:.88rem;letter-spacing:.1em;transition:.3s;margin-top:auto;align-self:flex-start}
.btn-more:hover{background:var(--tokiwa)}
.btn-more svg{transition:transform .3s}
.btn-more:hover svg{transform:translateX(4px)}
.about-band{margin-top:1.6rem;background:var(--usurai);border-radius:14px;padding:1.8rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.about-band h3{font-family:var(--serif);color:var(--tokiwa);font-size:1.2rem;font-weight:600}
.about-band p{font-size:.9rem;color:#41504a;flex:1;min-width:240px}

/* ---------- トップ：採用バナー ---------- */
.recruit-banner{background:linear-gradient(150deg,#FDFBF6,#F7F1E4);border:1px solid #E7DCC4;border-radius:18px;padding:clamp(1.8rem,4vw,2.8rem);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.recruit-banner h3{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.7rem);color:var(--tokiwa);font-weight:600;line-height:1.6}
.recruit-banner h3 em{font-style:normal;color:var(--akari)}
.recruit-banner p{font-size:.9rem;color:#4a4436}

/* ---------- 事業所ページ：概要表 ---------- */
.spec-table{width:100%;border-collapse:collapse;font-size:.94rem;margin-top:1rem}
.spec-table th{width:10em;text-align:left;font-weight:700;color:var(--matsuba);padding:1rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}
.spec-table td{padding:1rem .4rem;border-bottom:1px solid var(--line);color:#3a4742}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}

/* ---------- お問い合わせバンド（全ページ共通） ---------- */
.avail .avail-note a{color:var(--matsuba);font-weight:700}

@media (max-width:960px){
  .entry-grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto}
  .two-col{grid-template-columns:1fr}
}

/* ---------- ページ別テーマ ---------- */
/* 訪問看護：淡いピンク */
body.theme-pink{
  --tokiwa:#5C2E3A;      /* 深い梅 */
  --matsuba:#B96A7A;     /* 梅 */
  --wakanae:#DCA7B2;
  --usurai:#F9EFF1;
  --hakuji:#FDFAFB;
  --line:#EBD9DD;
  --dash:#E0C6CC;
  --soft:#F2E3E6;
  --hero-edge:#F2E2E6;
}
body.theme-pink .ph{background:linear-gradient(135deg,#F7E9EC,#EDD5DB)}
body.theme-pink .boshi{background:#fff;border-color:#EBD9DD}
body.theme-pink .pillar .p-ic{background:#fff}
body.theme-pink .care-list dt{color:#A25666}

/* ケアステーション：明るい水色 */
body.theme-blue{
  --tokiwa:#1C3D52;      /* 深い藍 */
  --matsuba:#3E7FA6;     /* 空色 */
  --wakanae:#8FC1DC;
  --usurai:#EBF4F9;
  --hakuji:#FAFCFD;
  --line:#D6E5EE;
  --dash:#C2D9E6;
  --soft:#E2EEF5;
  --hero-edge:#DCEBF4;
}
body.theme-blue .ph{background:linear-gradient(135deg,#E6F2F9,#CDE4F0)}
body.theme-blue .svc-visual.v2{background:linear-gradient(135deg,#E6F2F9,#CDE4F0)}

/* ---------- ロゴ ---------- */
.logo{align-items:center}
.logo-img{height:44px;width:auto;display:block}
.footer-logo-img{height:32px;width:auto;margin-bottom:.7rem;opacity:.95}
.office-logo{height:clamp(38px,5.5vw,52px);width:auto;margin-bottom:1.1rem}
.entry-logo{height:26px;width:auto;align-self:flex-start;margin-bottom:.1rem}
@media (max-width:820px){
  .logo-img{height:34px}
}

/* ---------- SNSバンド ---------- */
.sns-band{display:flex;align-items:center;gap:clamp(1.5rem,4vw,3rem);background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1.6rem,4vw,2.5rem)}
.sns-qr{width:clamp(140px,18vw,190px);height:auto;flex-shrink:0;border-radius:10px}
.sns-body h3{font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.5rem);color:var(--tokiwa);font-weight:600;margin-bottom:.6rem}
.sns-body p{font-size:.92rem;color:#41504a;max-width:34em}
.sns-body .sns-id{font-weight:700;color:var(--matsuba);letter-spacing:.05em}
@media (max-width:820px){
  .sns-band{flex-direction:column;text-align:center}
  .sns-body p{margin-inline:auto}
  .sns-band .btn-more{align-self:center}
}

/* ---------- 理念バンド ---------- */
.creed{text-align:center;background:var(--usurai);border-radius:18px;padding:clamp(2.2rem,5vw,3.5rem) 1.5rem;margin:0 0 3.6rem}
.creed .phrase{font-family:var(--serif);font-size:clamp(1.6rem,3.6vw,2.4rem);color:var(--tokiwa);letter-spacing:.12em;font-weight:600;line-height:1.6}
.creed .note{margin-top:.8rem;font-size:.9rem;color:#41504a;letter-spacing:.05em}
.creed .en{display:block;margin-top:1rem;font-size:.72rem;letter-spacing:.35em;color:var(--matsuba)}

/* ---------- 訪問看護：写真レイアウト ---------- */
.nursing-intro{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(1.8rem,4vw,3rem);align-items:center;margin-bottom:1rem}
.nursing-intro img{width:100%;height:auto;border-radius:14px;box-shadow:0 12px 30px rgba(92,46,58,.15)}
.creed.has-img{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(1.5rem,4vw,3rem);text-align:left;align-items:center}
.creed.has-img img{width:100%;height:100%;object-fit:cover;border-radius:12px;min-height:200px}
@media (max-width:820px){
  .nursing-intro,.creed.has-img{grid-template-columns:1fr}
  .creed.has-img{text-align:center}
  .creed.has-img img{min-height:0}
}

/* ---------- 母子訪問看護：お悩み＆笑顔 ---------- */
.boshi-worry{display:grid;grid-template-columns:1fr 1.7fr;gap:clamp(1.2rem,3vw,2rem);background:rgba(255,255,255,.8);border-radius:12px;padding:clamp(1.2rem,3vw,1.8rem);margin-top:1.9rem;align-items:center}
.boshi-worry img{width:100%;height:100%;object-fit:cover;border-radius:10px;min-height:180px}
.boshi-worry h4{font-family:var(--serif);font-size:1.1rem;color:#8A4A57;margin-bottom:.8rem;font-weight:600}
.boshi-worry ul{list-style:none;display:grid;gap:.45rem;font-size:.9rem;color:#5A4A4C}
.boshi-worry li{padding-left:1.4em;position:relative}
.boshi-worry li::before{content:"✓";position:absolute;left:0;color:#B96A7A;font-weight:700}
.boshi-worry .lead-out{margin-top:1rem;font-size:.9rem;font-weight:700;color:#8A4A57}
.voices.has-img{grid-template-columns:1fr 1.2fr 1.2fr;align-items:stretch}
.voices .voice-img{margin:0;border-radius:12px;overflow:hidden;border:1px solid #EAD6D9;grid-row:span 2}
.voices .voice-img img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:820px){
  .boshi-worry{grid-template-columns:1fr}
  .boshi-worry img{min-height:0;max-height:260px}
  .voices.has-img{grid-template-columns:1fr}
  .voices .voice-img{grid-row:auto;aspect-ratio:4/3}
}

/* ---------- 美容室ハイライト ---------- */
.salon-band{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(1.5rem,4vw,3rem);background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1.6rem,4vw,2.5rem);align-items:center;margin-top:2.8rem}
.salon-band img{width:100%;height:100%;object-fit:cover;border-radius:12px;min-height:220px}
.salon-band h3{font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.6rem);color:var(--tokiwa);font-weight:600;margin:.4rem 0 .8rem}
.salon-band p{font-size:.93rem;color:#41504a;max-width:38em}
.salon-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem}
.salon-tags span{border:1px solid var(--matsuba);color:var(--matsuba);border-radius:999px;padding:.35rem 1rem;font-size:.8rem;letter-spacing:.08em}
.salon-tags .rsv{background:var(--matsuba);color:#fff;border-color:var(--matsuba)}
@media (max-width:820px){
  .salon-band{grid-template-columns:1fr}
  .salon-band img{min-height:0;max-height:280px}
}

.salon-band.rev{grid-template-columns:1.5fr 1fr}
@media (max-width:820px){.salon-band.rev{grid-template-columns:1fr}.salon-band.rev img{order:-1}}

/* ---------- ご利用の流れ（図解版） ---------- */
.flow2{list-style:none;max-width:860px;margin-top:.5rem}
.flow2 li{display:grid;grid-template-columns:64px 1fr;gap:1.3rem;position:relative;padding-bottom:1.8rem}
.flow2 li::before{content:"";position:absolute;left:31px;top:64px;bottom:-4px;width:2px;background:var(--wakanae)}
.flow2 li:last-child{padding-bottom:0}
.flow2 li:last-child::before{display:none}
.flow2 .num{width:64px;height:64px;border-radius:50%;background:var(--matsuba);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;z-index:2;box-shadow:0 6px 14px rgba(0,0,0,.12)}
.flow2 .num small{font-size:.58rem;letter-spacing:.2em}
.flow2 .num b{font-family:var(--serif);font-size:1.5rem;font-weight:600}
.flow2 .body{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.3rem 1.5rem 1.4rem}
.flow2 h4{font-family:var(--serif);font-size:1.1rem;color:var(--tokiwa);font-weight:600;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.flow2 h4 .who{font-family:var(--sans);font-size:.68rem;font-weight:700;letter-spacing:.1em;color:#fff;background:var(--wakanae);border-radius:999px;padding:.2rem .8rem}
.flow2 .desc{font-size:.92rem;color:#41504a;margin-top:.5rem}
.flow2 .point{margin-top:.8rem;background:var(--usurai);border-radius:9px;padding:.6rem 1rem;font-size:.82rem;color:var(--tokiwa);display:flex;gap:.6rem;align-items:baseline}
.flow2 .point::before{content:"POINT";flex-shrink:0;font-size:.62rem;font-weight:700;letter-spacing:.18em;color:var(--matsuba);border:1px solid var(--matsuba);border-radius:999px;padding:.15rem .6rem;transform:translateY(-1px)}
@media (max-width:820px){
  .flow2 li{grid-template-columns:48px 1fr;gap:.9rem;padding-bottom:1.4rem}
  .flow2 .num{width:48px;height:48px}
  .flow2 .num b{font-size:1.15rem}
  .flow2 li::before{left:23px;top:48px}
}

/* ---------- ヒーロー：写真スライドショー ---------- */
.hero-slides{position:absolute;top:0;right:0;bottom:0;width:52%;z-index:1;pointer-events:none;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 45%);
  mask-image:linear-gradient(to right,transparent 0,#000 45%)}
.hero-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  transition:opacity 2.8s ease;filter:blur(2px) saturate(.8)}
.hero-slides img.is-active{opacity:.4}
.hero-slides::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(251,252,250,.5),rgba(227,237,231,.25))}
@media (max-width:820px){
  .hero-slides{width:100%;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 40%);mask-image:linear-gradient(to bottom,transparent 0,#000 40%)}
  .hero-slides img.is-active{opacity:.22}
}
@media (prefers-reduced-motion:reduce){
  .hero-slides img{transition:none}
}

/* ---------- 入口カードの写真 ---------- */
.svc-visual.has-photo{height:200px;padding:0;display:block}
.svc-visual.has-photo img{width:100%;height:100%;object-fit:cover;display:block}
.svc-visual.has-photo .svc-num{background:rgba(255,255,255,.88);padding:.3rem .8rem;border-radius:999px}

/* ---------- 行動指針 ---------- */
.principles{list-style:none;counter-reset:pr;max-width:680px;margin:1.2rem auto 0;text-align:left;display:grid;gap:.7rem}
.principles li{counter-increment:pr;background:var(--usurai);border-radius:10px;padding:.95rem 1.3rem .95rem 3.6rem;position:relative;font-size:.93rem;color:#3a4742}
.principles li::before{content:counter(pr,decimal-leading-zero);position:absolute;left:1.15rem;top:50%;transform:translateY(-50%);font-family:var(--serif);color:var(--matsuba);font-weight:600;font-size:1.05rem}
.kanji-sub{font-family:var(--serif);color:var(--matsuba);letter-spacing:.12em;margin:-0.6rem 0 1.4rem;font-size:clamp(.95rem,1.8vw,1.15rem)}

/* ---------- 地図埋め込み ---------- */
.map-embed{border-radius:14px;overflow:hidden;border:1px solid var(--line);min-height:320px}
.map-embed iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

.voices .v-title{font-weight:700;color:#8A4A57;font-size:.95rem;margin-bottom:.5rem;line-height:1.6}
/* 声の一覧：文章量に応じて隙間なく積む段組みレイアウト */
.voices.grid3{display:block;column-count:3;column-gap:1.2rem}
.voices.grid3 > figure{break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 1.2rem;width:100%}
.voices.grid3 .voice-img{grid-row:auto;aspect-ratio:auto;padding:0}
.voices.grid3 .voice-img img{height:auto}
@media (max-width:820px){
  .voices.grid3{column-count:1}
  .voices.grid3 .voice-img{aspect-ratio:4/3}
  .voices.grid3 .voice-img img{height:100%;object-fit:cover}
}

/* ---------- 母子訪問看護の内容チェックリスト ---------- */
.care-checks{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem .9rem;margin-bottom:3.6rem}
.care-checks li{background:var(--usurai);border-radius:9px;padding:.8rem 1rem .8rem 2.5rem;position:relative;font-size:.92rem;color:#5A4A4C;font-weight:500;line-height:1.6}
.care-checks li::before{content:"\2713";position:absolute;left:1rem;top:.8rem;color:#B96A7A;font-weight:700}
@media (max-width:820px){.care-checks{grid-template-columns:1fr}}

/* ---------- 流れる理念テキスト ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:1rem 0;white-space:nowrap;background:var(--hakuji)}
.marquee span{display:inline-block;font-family:var(--serif);letter-spacing:.3em;color:var(--matsuba);font-size:.9rem;animation:mq 30s linear infinite;padding-right:4rem}
@media (prefers-reduced-motion:reduce){.marquee span{animation:none}}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- スタッフ紹介 ---------- */
.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-bottom:3.6rem}
.staff-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.staff-photo{aspect-ratio:3/4}
.staff-photo img{width:100%;height:100%;object-fit:cover;display:block}
.staff-photo.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;padding:1rem;background:linear-gradient(135deg,#F7E9EC,#EDD5DB);color:#8A4A57;border-bottom:1px solid var(--line)}
.staff-photo.ph svg{width:26px;height:26px;stroke:currentColor;opacity:.75}
.staff-photo.ph strong{font-size:.76rem;letter-spacing:.1em}
.staff-body{padding:1.2rem 1.3rem 1.4rem}
.staff-role{font-size:.7rem;letter-spacing:.16em;color:#B96A7A;font-weight:700}
.staff-name{font-family:var(--serif);font-size:1.1rem;color:var(--tokiwa);font-weight:600;margin:.3rem 0 .7rem}
.staff-msg{font-size:.86rem;color:#41504a}
@media (max-width:820px){.staff-grid{grid-template-columns:1fr;max-width:360px;margin-inline:auto}}
.staff-grid.cols-2{grid-template-columns:repeat(2,1fr);max-width:640px;margin-inline:auto}
@media (max-width:820px){.staff-grid.cols-2{grid-template-columns:1fr;max-width:360px}}

/* ---------- 埋め込み動画 ---------- */
.video-section{padding:clamp(3rem,6vw,4.5rem) 0 0}
.video-frame{max-width:900px;margin-inline:auto;border-radius:16px;overflow:hidden;box-shadow:0 14px 34px rgba(20,53,42,.14);background:#000}
video-js.video-js.vjs-fluid:not(.vjs-audio-only-mode){padding-top:56.25%}
.video-frame video-js{width:100%;display:block}
