:root{
  --teal:#0FB3A6; --teal-d:#0A8F86; --blue:#3B82F6;
  --ink:#1D3B3D; --body:#3C5658; --muted:#7C9698;
  --bg:#F3FBFA; --card:#fff; --line:#E4F0EF;
  --grad:linear-gradient(120deg,#0FB3A6,#39C6BC);
  --f:'Noto Sans JP',system-ui,-apple-system,sans-serif;
  --radius:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--f);background:var(--bg);color:var(--body);line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit} img{max-width:100%;display:block}
.wrap{max-width:1060px;margin:0 auto;padding:0 24px}
section{padding:88px 0}
.center{text-align:center}
.tag{color:var(--teal);font-weight:800;letter-spacing:2px;font-size:.78rem}
h2.t{color:var(--ink);font-size:clamp(1.7rem,3.6vw,2.4rem);font-weight:900;margin:8px 0 6px;line-height:1.35}
.lead{color:var(--muted);font-size:.95rem}
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:800;padding:15px 32px;border-radius:999px;background:var(--grad);color:#fff;box-shadow:0 12px 28px rgba(15,179,166,.35);transition:transform .2s,box-shadow .2s;border:none;cursor:pointer}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(15,179,166,.5)}
.btn.ghost{background:#fff;color:var(--teal-d);border:2px solid var(--line);box-shadow:none}
.btn.ghost:hover{border-color:var(--teal)}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;max-width:1160px;margin:0 auto}
.logo{font-weight:900;color:var(--ink);font-size:1.2rem;display:flex;align-items:center;gap:8px}
.menu{display:flex;gap:26px}
.menu a{font-size:.9rem;font-weight:600;color:var(--body);transition:color .2s}
.menu a:hover{color:var(--teal)}
.tel{display:flex;flex-direction:column;align-items:flex-end;background:var(--grad);color:#fff;padding:8px 20px;border-radius:10px;font-weight:900;line-height:1.2}
.tel small{font-weight:600;font-size:.65rem;opacity:.9}

/* hero */
.hero{background:radial-gradient(700px 400px at 85% -10%,rgba(15,179,166,.16),transparent 60%),radial-gradient(600px 400px at 0% 110%,rgba(59,130,246,.08),transparent 55%),var(--bg);padding:96px 0}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}
.hero h1{color:var(--ink);font-size:clamp(2rem,4.6vw,3.2rem);font-weight:900;line-height:1.3}
.hero h1 .hl{color:var(--teal)}
.hero p{margin:20px 0 28px;color:var(--body);max-width:36ch}
.hero .chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.hero .chips span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:.8rem;font-weight:700;color:var(--teal-d)}
.hero-art{border-radius:26px;aspect-ratio:4/3.4;box-shadow:0 30px 60px rgba(15,179,166,.28);position:relative;overflow:hidden}
.hero-art img{width:100%;height:100%;object-fit:cover;display:block}

/* care grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.care{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;transition:transform .25s,box-shadow .25s}
.care:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(15,179,166,.14)}
.care .ic{width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg,#E6FAF8,#D6F4F1);display:grid;place-items:center;font-size:1.6rem;margin-bottom:14px}
.care h3{color:var(--ink);font-size:1.1rem;font-weight:800;margin-bottom:6px}
.care p{font-size:.88rem;color:var(--muted)}

/* features */
.feat{background:#fff}
.feat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:40px}
.fc{display:flex;gap:18px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.fc .n{font-weight:900;color:#fff;background:var(--grad);width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex-shrink:0}
.fc h3{color:var(--ink);font-size:1.05rem;font-weight:800;margin-bottom:4px}
.fc p{font-size:.88rem;color:var(--muted)}

/* news */
.news-list{margin-top:36px;max-width:820px;margin-left:auto;margin-right:auto}
.ni{display:flex;gap:20px;align-items:center;padding:20px 8px;border-bottom:1px solid var(--line);transition:background .2s}
.ni:hover{background:#fff}
.ni .date{color:var(--muted);font-size:.85rem;font-weight:700;white-space:nowrap}
.ni .cat{font-size:.72rem;font-weight:800;color:#fff;background:var(--teal);padding:3px 12px;border-radius:999px;white-space:nowrap}
.ni .cat.b{background:var(--blue)} .ni .cat.o{background:#F59E0B}
.ni .ttl{color:var(--ink);font-weight:600;font-size:.95rem}
.ni:hover .ttl{color:var(--teal-d)}

/* about */
.about{background:#fff}
.about-grid{display:grid;grid-template-columns:280px 1fr;gap:40px;align-items:center}
.about-photo{aspect-ratio:1;background:linear-gradient(135deg,#E6FAF8,#CDEFEC);border-radius:20px;display:grid;place-items:center;font-size:4.5rem}
.about h3{color:var(--ink);font-size:1.4rem;font-weight:900;margin-bottom:4px}
.about .role{color:var(--teal);font-weight:700;font-size:.9rem;margin-bottom:14px}

/* access */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:40px;align-items:start}
.info-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.info-table th,.info-table td{padding:14px 18px;text-align:left;font-size:.9rem;border-bottom:1px solid var(--line)}
.info-table th{background:var(--bg);color:var(--ink);font-weight:700;width:34%;white-space:nowrap}
.map{background:linear-gradient(135deg,#DFF3F1,#EAF7F6);border:1px solid var(--line);border-radius:var(--radius);min-height:280px;display:grid;place-items:center;color:var(--muted);font-weight:700}

/* footer */
footer{background:var(--ink);color:#BFD6D6;padding:56px 0 30px}
footer .fgrid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
footer .logo{color:#fff}
footer a:hover{color:#fff}
footer .cp{border-top:1px solid rgba(255,255,255,.1);margin-top:30px;padding-top:20px;font-size:.8rem;opacity:.7;text-align:center}
.cta-band{background:var(--grad);color:#fff;text-align:center;padding:64px 24px;border-radius:22px;margin:0 24px}
.cta-band h2{font-size:clamp(1.5rem,3.4vw,2.1rem);font-weight:900;color:#fff}
.cta-band .btn{background:#fff;color:var(--teal-d);margin-top:20px;box-shadow:0 12px 30px rgba(0,0,0,.15)}

/* page header (sub pages) */
.phead{background:var(--grad);color:#fff;padding:66px 0;text-align:center}
.phead h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:900;color:#fff}
.phead .crumb{font-size:.82rem;opacity:.9;margin-top:8px}
.phead .crumb a:hover{text-decoration:underline}

/* article */
.article{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:48px}
.article .meta{display:flex;gap:12px;align-items:center;margin-bottom:16px}
.article h1{color:var(--ink);font-size:1.7rem;font-weight:900;line-height:1.45;margin-bottom:24px;border-bottom:2px solid var(--line);padding-bottom:20px}
.article h2{color:var(--ink);font-size:1.25rem;font-weight:800;margin:32px 0 12px;padding-left:14px;border-left:5px solid var(--teal)}
.article p{margin-bottom:16px}
.article ul{margin:0 0 16px 22px} .article li{margin-bottom:6px}
.back{display:inline-flex;gap:8px;margin-top:30px;font-weight:700;color:var(--teal-d)}

.rv{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}
.hamb{display:none}

@media(max-width:860px){
  .hero .wrap,.about-grid,.access-grid,.feat-grid{grid-template-columns:1fr}
  .hero-art{max-width:320px;margin:0 auto}
  .grid{grid-template-columns:1fr 1fr}
  .menu{display:none}
  section{padding:60px 0}
  .article{padding:28px}
}
@media(max-width:560px){.grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv{opacity:1;transform:none;transition:none}*{transition:none!important}}
