:root{
  --bg:#FFFFFF;
  --surface:#FFFFFF;
  --surface-alt:#F5F1E6;
  --ink:#33302A;
  --ink-soft:#6B6455;
  --line:#E5DFCF;
  --sage:#6F8F6B;
  --sage-deep:#3F5A3D;
  --sage-tint:#E9F0E6;
  --gold:#C08F3E;
  --gold-tint:#F4E8CC;
  --gold-ink:#6B4E1E;
  --shadow: 0 18px 40px -24px rgba(63,90,61,0.30);
  --header-offset:108px;
  --badge-st-bg:#DCEAEC;
  --badge-st-ink:#2F5A61;
  --badge-st-hover:#2F5A61;
  --badge-st-hover-ink:#FBF8EF;
  --on-sage-deep:#FBF8EF;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#221F19;
    --surface:#2B271F;
    --surface-alt:#332E24;
    --ink:#EEE7D6;
    --ink-soft:#BBB29B;
    --line:#443E2F;
    --sage:#93B08C;
    --sage-deep:#C7DBC0;
    --sage-tint:#33402F;
    --gold:#E0B563;
    --gold-tint:#3B331F;
    --gold-ink:#F0D9A8;
    --shadow: 0 18px 40px -24px rgba(0,0,0,0.55);
    --badge-st-bg:#26383B;
    --badge-st-ink:#A9CED4;
    --badge-st-hover:#A9CED4;
    --badge-st-hover-ink:#1B2A2C;
    --on-sage-deep:#1E2A1C;
  }
}
:root[data-theme="dark"]{
  --bg:#221F19;
  --surface:#2B271F;
  --surface-alt:#332E24;
  --ink:#EEE7D6;
  --ink-soft:#BBB29B;
  --line:#443E2F;
  --sage:#93B08C;
  --sage-deep:#C7DBC0;
  --sage-tint:#33402F;
  --gold:#E0B563;
  --gold-tint:#3B331F;
  --gold-ink:#F0D9A8;
  --shadow: 0 18px 40px -24px rgba(0,0,0,0.55);
  --badge-st-bg:#26383B;
  --badge-st-ink:#A9CED4;
  --badge-st-hover:#A9CED4;
  --badge-st-hover-ink:#1B2A2C;
  --on-sage-deep:#1E2A1C;
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3{
  font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  text-wrap:balance;
  margin:0;
  color:var(--ink);
  font-weight:600;
}
.wrap{max-width:1120px;margin-inline:auto;padding-inline:20px;}
@media (min-width:900px){.wrap{padding-inline:40px;}}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:40;
  background:color-mix(in srgb, var(--surface) 92%, transparent);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-row{
  display:flex;align-items:center;justify-content:space-between;
  padding-block:10px;gap:16px;
}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0;}
.brand-mark{height:clamp(58px,15vw,94px);width:auto;flex-shrink:0;}
.brand-text-img{height:clamp(24px,4.9vw,50px);width:auto;}

.header-bottom{display:none;border-top:1px solid var(--line);}
@media (min-width:900px){
  .header-bottom{display:block;padding-block:10px;}
}
.main-nav{display:none;gap:26px;font-size:16px;justify-content:center;}
.main-nav a{text-decoration:none;position:relative;padding-block:4px;}
.main-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;
  background:var(--sage);transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.main-nav a:hover::after,.main-nav a:focus-visible::after{transform:scaleX(1);}

.header-tel{display:none;flex-direction:column;align-items:flex-end;flex-shrink:0;}
.header-tel .num{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:800;font-size:28px;
  font-variant-numeric:tabular-nums;letter-spacing:.02em;
}
.header-tel .note{font-size:13.5px;color:var(--ink-soft);}

.header-hours{display:none;flex-shrink:0;}
.header-hours table{border-collapse:collapse;font-size:13px;}
.header-hours th,.header-hours td{
  padding:3px 9px;text-align:center;font-variant-numeric:tabular-nums;
}
.header-hours th{color:var(--ink-soft);font-weight:500;}
.header-hours .time-label{color:var(--ink-soft);white-space:nowrap;text-align:left;font-weight:500;}
.header-hours .mark-open,.header-hours td:not(.time-label){color:var(--sage-deep);}

.nav-toggle{
  background:none;border:1px solid var(--line);border-radius:8px;
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  content:"";display:block;width:18px;height:2px;background:var(--ink);
  position:relative;transition:transform .2s ease,opacity .2s ease;
}
.nav-toggle span::before{position:absolute;top:-6px;}
.nav-toggle span::after{position:absolute;top:6px;}

.mobile-nav{
  display:flex;flex-direction:column;
  position:absolute;top:100%;left:0;right:0;z-index:39;
  max-height:calc(100vh - var(--header-offset));overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  box-shadow:var(--shadow);
}
.mobile-nav[hidden]{display:none;}
.mobile-nav a{
  padding:14px 20px;text-decoration:none;border-bottom:1px solid var(--line);font-size:17px;
}
.mobile-nav .m-tel{display:block;padding:14px 20px;font-weight:800;font-size:22px;color:var(--sage-deep);
  font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line);}

@media (min-width:900px){
  .main-nav{display:flex;}
  .header-hours{display:block;}
  .header-tel{display:flex;}
  .nav-toggle{display:none;}
  .mobile-nav{display:none !important;}
  :root{--header-offset:162px;}
}

/* ---------- hero (top page) ---------- */
.hero{padding-block:44px 0;}
.hero-grid{
  display:grid;grid-template-columns:1fr;gap:34px;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--gold-tint);color:var(--gold-ink);
  border-radius:999px;padding:10px 22px 10px 14px;
  font-size:17px;font-weight:700;letter-spacing:.03em;margin-bottom:20px;
}
.hero-eyebrow svg{width:20px;height:20px;flex-shrink:0;}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;}
.hero-badges .hero-eyebrow{margin-bottom:0;}
.hero-eyebrow--recruit{
  background:var(--sage-tint);color:var(--sage-deep);
  text-decoration:none;transition:background .15s ease,color .15s ease;
}
.hero-eyebrow--recruit:hover{background:var(--sage-deep);color:var(--on-sage-deep);}
.hero-eyebrow--st{
  background:var(--badge-st-bg);color:var(--badge-st-ink);
  text-decoration:none;transition:background .15s ease,color .15s ease;
}
.hero-eyebrow--st:hover{background:var(--badge-st-hover);color:var(--badge-st-hover-ink);}
.hero h1{
  font-size:clamp(28px,4.2vw,40px);letter-spacing:.02em;line-height:1.6;margin-bottom:22px;
}
.hero h1 br.mobile-break{display:none;}
@media (max-width:640px){
  .hero h1{font-size:clamp(20px,calc(7.8vw - 3px),28px);}
  .hero h1 br.mobile-break{display:inline;}
}
.hero-lede{color:var(--ink-soft);font-size:17px;margin-bottom:26px;max-width:34em;}
.hours-card{
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:20px 22px;box-shadow:var(--shadow);
}
.hours-table{width:100%;border-collapse:collapse;font-size:15px;}
.hours-table caption{text-align:left;font-weight:700;font-size:15px;margin-bottom:10px;color:var(--ink);}
.hours-table th,.hours-table td{
  text-align:center;padding:8px 4px;border-bottom:1px solid var(--line);
  font-variant-numeric:tabular-nums;
}
.hours-table th{color:var(--ink-soft);font-weight:500;font-size:15px;}
.hours-table .time-label{text-align:center;color:var(--ink-soft);white-space:nowrap;font-size:17.5px;font-weight:500;}
.mark-open{color:var(--sage-deep);font-size:17px;}
.mark-half{color:var(--gold);font-size:16px;}
.mark-visit{color:var(--ink);font-size:16px;}
.mark-closed{color:var(--ink-soft);opacity:.5;}
.hours-note{margin-top:12px;font-size:15px;color:var(--ink-soft);}
.hours-note strong{color:var(--sage-deep);}

.hero-visual{
  position:relative;border-radius:20px;
  overflow:hidden;aspect-ratio:1400/689;
  background:var(--surface-alt);
  border:1px solid var(--line);
  animation:blob-in .9s cubic-bezier(.2,.8,.2,1) both;
  align-self:start;
}
.hero-visual img{width:100%;height:100%;object-fit:cover;}
@keyframes blob-in{from{opacity:0;transform:scale(.96) translateY(10px);}to{opacity:1;transform:none;}}

.recruit-strip{
  margin-top:44px;border:1px solid var(--line);border-radius:16px;
  background:var(--surface);overflow:hidden;
  display:flex;flex-direction:column;
}
@media (min-width:700px){.recruit-strip{flex-direction:row;align-items:stretch;}}
.recruit-photo{
  background:var(--surface-alt);
  min-height:150px;flex-shrink:0;overflow:hidden;
}
.recruit-photo img{width:100%;height:100%;object-fit:cover;}
@media (min-width:700px){.recruit-photo{width:220px;}}
.recruit-body{padding:22px 26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;flex:1;}
.recruit-body h2{font-size:21px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--sage-deep);color:var(--on-sage-deep);text-decoration:none;
  padding:12px 22px;border-radius:999px;font-size:15.5px;font-weight:700;
  letter-spacing:.02em;border:none;cursor:pointer;flex-shrink:0;
}
.btn:hover{background:var(--sage);}
.btn-outline{
  background:transparent;color:var(--sage-deep);border:1px solid var(--sage-deep);
}
.btn-outline:hover{background:var(--sage-tint);}

/* ---------- section shell ---------- */
section{padding-block:74px;scroll-margin-top:var(--header-offset);}
.section-head{text-align:center;max-width:620px;margin:0 auto 46px;container-type:inline-size;}
.section-tag{
  display:inline-flex;align-items:center;gap:10px;color:var(--sage-deep);
  font-size:clamp(22px,2.8vw,28px);font-weight:700;letter-spacing:.02em;margin-bottom:14px;
  font-family:"Shippori Mincho",serif;
}
.section-tag svg{width:24px;height:24px;}
.section-head-cta{
  display:inline-block;background:var(--surface-alt);border:1px solid var(--line);color:var(--ink);
  text-decoration:none;font-size:12.5px;font-weight:700;
  padding:7px 16px;border-radius:999px;margin-bottom:16px;
  transition:background .15s ease,color .15s ease;
}
.section-head-cta:hover{background:var(--sage-deep);color:var(--on-sage-deep);border-color:var(--sage-deep);}
.section-head h2{font-size:clamp(24px,3.2vw,30px);}
.section-head h2.section-tag{font-size:clamp(22px,2.8vw,28px);margin:0 0 14px;}
.section-head p{color:var(--ink-soft);font-size:16px;margin-top:14px;}
.section-head p.section-head-statement{
  font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  color:var(--ink);font-weight:600;font-size:clamp(11px,3.8cqw,22px);
  line-height:1.6;white-space:nowrap;
}

.intro-panel{
  background:var(--surface-alt);border:1px solid var(--line);border-radius:20px;
  padding:clamp(36px,6vw,56px) clamp(20px,5vw,56px);text-align:center;
}
.intro-panel p{
  max-width:46em;margin:0 auto 18px;
  font-size:clamp(19px,2.6vw,23px);font-weight:700;color:var(--ink);line-height:1.85;
  font-family:"Shippori Mincho",serif;
}
.intro-panel p:last-child{margin-bottom:0;}
.nowrap-ja{white-space:nowrap;}

.photo-ph{
  background:var(--surface-alt);border:1px solid var(--line);border-radius:16px;
  aspect-ratio:4/3;overflow:hidden;
}
.photo-ph img{width:100%;height:100%;object-fit:cover;}

/* ---------- services ---------- */
.service-grid{display:grid;grid-template-columns:1fr;gap:24px;}
@media (min-width:640px){.service-grid{grid-template-columns:1fr 1fr;}}
@media (min-width:1000px){.service-grid{grid-template-columns:1fr 1fr 1fr;}}
.service-card{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;
  overflow:hidden;transition:box-shadow .2s ease,transform .2s ease;
}
.service-card:hover{box-shadow:var(--shadow);transform:translateY(-3px);}
.service-card-photo{aspect-ratio:4/3;overflow:hidden;background:var(--surface-alt);}
.service-card-photo img{width:100%;height:100%;object-fit:cover;}
.service-card-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1;}
.service-card-body h3{font-family:"Shippori Mincho",serif;font-size:20.5px;color:var(--sage-deep);margin:0;}
.service-card-body p{margin:0;color:var(--ink-soft);font-size:15.5px;line-height:1.8;flex:1;}
.service-card-body .chevron{color:var(--sage);font-size:13px;font-weight:700;margin-top:2px;}

/* ---------- features ---------- */
.feature-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media (min-width:640px){.feature-grid{grid-template-columns:1fr 1fr;}}
@media (min-width:1000px){.feature-grid{grid-template-columns:1fr 1fr 1fr;}}
.feature-card{background:var(--surface);padding:28px 24px;border-radius:22px;
  border:1px solid var(--line);box-shadow:var(--shadow);}
.feature-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:14px;
  font-variant-numeric:tabular-nums;letter-spacing:.02em;
}
.feature-card:nth-child(odd) .feature-num{background:var(--sage-tint);color:var(--sage-deep);}
.feature-card:nth-child(even) .feature-num{background:var(--gold-tint);color:var(--gold-ink);}
.feature-card h3{display:flex;align-items:center;gap:12px;font-size:18.5px;margin-bottom:10px;font-weight:700;
  font-family:"Zen Kaku Gothic New",sans-serif;}
.feature-card p{margin:0;font-size:15.5px;color:var(--ink-soft);line-height:1.85;}

.features-cta{text-align:center;margin-top:38px;}

/* ---------- facility (coming soon) ---------- */
.facility-soon{
  background:var(--surface-alt);border:1px dashed var(--line);border-radius:20px;
  padding:60px 24px;text-align:center;
}
.facility-soon p{margin:0;color:var(--ink-soft);font-size:16px;line-height:1.8;}

/* ---------- staff ---------- */
.staff-card{
  background:var(--surface-alt);border:1px solid var(--line);border-radius:20px;
  padding:clamp(22px,4vw,44px);
}
.staff-card + .staff-card{margin-top:32px;}
.staff-top{display:grid;grid-template-columns:1fr;gap:30px;}
@media (min-width:840px){.staff-top{grid-template-columns:260px 1fr;}}
.staff-photo{
  aspect-ratio:3/4;border-radius:14px;overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--shadow);
  max-width:280px;margin-inline:auto;
}
.staff-photo img{width:100%;height:100%;object-fit:cover;display:block;}
@media (min-width:840px){
  .staff-photo{max-width:none;margin-inline:0;}
}
.staff-name-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:6px;}
.staff-role{background:var(--sage-tint);color:var(--sage-deep);font-size:13px;font-weight:700;
  padding:4px 12px;border-radius:999px;}
.staff-name{font-size:25px;letter-spacing:.06em;}
.staff-name-en{font-size:12.5px;color:var(--ink-soft);letter-spacing:.1em;margin-bottom:20px;}
.staff-greeting{color:var(--ink-soft);font-size:16.5px;line-height:1.9;}
.staff-greeting p{margin:0;}
.staff-cred{margin-top:36px;padding-top:32px;border-top:1px solid var(--line);}
.cred-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media (min-width:600px){
  .cred-grid{grid-template-columns:1fr 1fr;}
  .cred-grid .cred-block:nth-child(2){margin-left:28px;}
}
.cred-block h4{font-size:13px;color:var(--sage-deep);letter-spacing:.06em;margin-bottom:8px;font-weight:700;}
.cred-block ul{margin:0;padding:0;list-style:none;font-size:15.5px;color:var(--ink-soft);}
.cred-block li{padding:5px 0;border-top:1px dashed var(--line);}
.cred-block li:first-child{border-top:none;}
.cred-block .yr{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600;margin-right:8px;}

/* ---------- footer ---------- */
footer{background:var(--surface-alt);border-top:1px solid var(--line);padding-block:52px 26px;scroll-margin-top:var(--header-offset);}
.footer-top{display:flex;flex-direction:column;gap:32px;}
@media (min-width:800px){.footer-top{flex-direction:row;justify-content:center;align-items:flex-start;gap:96px;}}
.footer-left{display:flex;flex-direction:column;gap:18px;}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px;max-width:520px;}
@media (max-width:799px){
  .footer-brand{align-items:center;text-align:center;margin-inline:auto;}
}
.footer-brand .brand-mark{height:200px;width:auto;max-width:100%;}
.footer-brand p{font-size:17px;color:var(--ink-soft);line-height:1.7;margin:0;}
.footer-address{font-size:19px;color:var(--ink-soft);line-height:1.6;}
.footer-address p{margin:0;}
.footer-address .f-addr{margin-left:.7em;}
@media (max-width:799px){
  .footer-address .f-zip{display:block;}
  .footer-address .f-addr{margin-left:0;}
}
.footer-address .f-num{font-variant-numeric:tabular-nums;margin-top:4px;font-weight:800;font-size:23px;color:var(--ink);}
.footer-address .f-num-note{margin-top:4px;font-size:14.5px;line-height:1.7;max-width:26em;}
.footer-payment{margin-top:16px;}
.hours-footer{display:flex;flex-wrap:wrap;gap:20px 40px;margin-top:4px;}
.hours-notes{flex:1 1 220px;}
.hours-footer .footer-payment{flex:1 1 200px;margin-top:0;}
.footer-payment h4{font-size:13px;color:var(--sage-deep);letter-spacing:.06em;margin-bottom:8px;font-weight:700;}
.footer-payment ul{margin:0;padding:0;list-style:none;font-size:15.5px;color:var(--ink-soft);line-height:1.75;}
.footer-payment li{margin-bottom:4px;}
.footer-payment li:last-child{margin-bottom:0;}
.footer-hours{font-size:14.5px;flex-shrink:0;}
@media (min-width:800px){.footer-hours{max-width:360px;width:100%;}}
.footer-hours table{border-collapse:collapse;margin-top:8px;width:100%;}
.footer-hours td,.footer-hours th{padding:6px 8px;text-align:center;font-variant-numeric:tabular-nums;}
.footer-hours th{color:var(--ink-soft);font-weight:500;}
.footer-hours .time-label{white-space:nowrap;}
.footer-map-full{
  margin-top:32px;padding-bottom:30px;border-bottom:1px solid var(--line);
  max-width:640px;margin-inline:auto;
}
.footer-map-full img{
  width:100%;aspect-ratio:2/1;object-fit:cover;display:block;
  border-radius:16px;border:1px solid var(--line);
}
.footer-nav{display:flex;flex-wrap:wrap;gap:18px;padding-block:22px;font-size:14.5px;}
.footer-nav a{text-decoration:none;color:var(--ink-soft);}
.footer-nav a:hover{color:var(--sage-deep);}
.copyright{font-size:12px;color:var(--ink-soft);letter-spacing:.03em;}

/* ---------- detail pages (診療項目 詳細) ---------- */
.detail-hero{padding-block:6px 0;}
.detail-hero-photo{
  border-radius:20px;overflow:hidden;border:1px solid var(--line);
  aspect-ratio:16/6;background:var(--surface-alt);
}
.detail-hero-photo img{width:100%;height:100%;object-fit:cover;}
.detail-hero-head{padding-block:28px 6px;}
.detail-hero-head .section-tag{margin-bottom:10px;}
.detail-hero-head h1{font-size:clamp(24px,3.4vw,32px);margin-bottom:14px;}
.detail-lede{color:var(--ink-soft);font-size:17px;max-width:40em;}

.detail-section{padding-block:46px;border-top:1px solid var(--line);}
.detail-section h2{font-size:21px;margin-bottom:18px;}
.detail-section h2 .num{color:var(--sage-deep);font-variant-numeric:tabular-nums;margin-right:10px;}

.placeholder-card{
  background:var(--surface-alt);border:1px dashed var(--line);border-radius:14px;
  padding:26px 24px;color:var(--ink-soft);font-size:15px;
}
.placeholder-card strong{display:block;color:var(--ink);font-size:14.5px;margin-bottom:6px;font-weight:700;}


.back-row{padding-block:38px 70px;text-align:center;}

/* ---------- care page (診療案内 まとめページ) ---------- */
.care-header{padding-block:10px 0;text-align:center;max-width:640px;margin-inline:auto;container-type:inline-size;}
.care-header h1{font-size:clamp(11px,3.65cqw,26px);white-space:nowrap;margin-bottom:14px;}
.care-header p{color:var(--ink-soft);font-size:16.5px;}

.jumpnav{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  padding-block:32px 0;
}
.jumpnav a{
  background:var(--surface-alt);border:1px solid var(--line);color:var(--ink);
  text-decoration:none;font-size:14.5px;font-weight:700;
  padding:9px 18px;border-radius:999px;transition:background .15s ease,color .15s ease;
}
.jumpnav a:hover{background:var(--sage-deep);color:var(--on-sage-deep);border-color:var(--sage-deep);}
.jumpnav-home{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--sage-deep);color:var(--on-sage-deep);border-color:var(--sage-deep);
}
.jumpnav-home svg{width:15px;height:15px;flex-shrink:0;}
.jumpnav-home:hover{background:var(--sage);border-color:var(--sage);}

.care-section{padding-block:56px;border-top:1px solid var(--line);scroll-margin-top:var(--header-offset);}
.care-heading{display:flex;align-items:baseline;gap:14px;margin-bottom:24px;flex-wrap:wrap;}
.care-heading h2{font-size:clamp(26px,3.2vw,32px);}
.care-heading .care-index{
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:14px;font-weight:700;
  color:var(--sage-deep);background:var(--sage-tint);border-radius:999px;
  padding:4px 12px;
}
.care-grid{display:grid;grid-template-columns:1fr;gap:26px;align-items:start;}
@media (min-width:800px){.care-grid{grid-template-columns:1.2fr 1fr;gap:40px;}}
.care-bullets{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:11px;}
.care-bullets li{
  display:flex;align-items:baseline;gap:12px;font-weight:700;font-size:18px;
}
.care-bullets li::before{
  content:"";width:11px;height:11px;background:var(--sage);flex-shrink:0;
  transform:translateY(-2px);border-radius:2px;
}
.care-text p{color:var(--ink-soft);font-size:16.5px;line-height:1.95;margin:0;}
.care-photo{border-radius:16px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;}
.care-photo img{width:100%;height:100%;object-fit:cover;}
.care-callout{
  margin-top:22px;background:var(--gold-tint);border-radius:12px;
  padding:16px 20px;font-size:16.5px;font-weight:700;color:var(--gold-ink);
}

.care-detail{margin-top:30px;}
.care-detail h3{font-size:17px;color:var(--sage-deep);margin-bottom:10px;font-weight:700;}
.care-detail p{color:var(--ink-soft);font-size:16.5px;line-height:1.95;margin:0 0 14px;}
.care-detail p:last-child{margin-bottom:0;}

.stage-illustration{border-radius:14px;overflow:hidden;border:1px solid var(--line);margin:16px 0 4px;}
.stage-illustration img{width:100%;display:block;}

.care-stages{
  display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:16px;
}
@media (min-width:640px){.care-stages{grid-template-columns:repeat(4,1fr);}}
.care-stage{background:var(--surface);padding:16px 18px;}
.care-stage .stage-tag{
  font-size:12.5px;font-weight:700;color:var(--sage-deep);letter-spacing:.04em;
  display:block;margin-bottom:4px;
}
.care-stage .stage-name{font-weight:700;font-size:16px;display:block;margin-bottom:6px;}
.care-stage p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.7;}

.flow-list{list-style:none;margin:28px 0 0;padding:0;}
.flow-item{display:flex;gap:20px;padding:20px 0;border-bottom:1px dashed var(--line);}
.flow-item:last-child{border-bottom:none;}
.flow-num{
  flex-shrink:0;width:40px;height:40px;border-radius:50%;
  background:var(--sage-deep);color:var(--on-sage-deep);
  display:flex;align-items:center;justify-content:center;
  font-family:"Shippori Mincho",serif;font-size:17px;font-weight:600;
}
.flow-body h3{font-size:17.5px;margin:0 0 6px;color:var(--ink);}
.flow-body p{margin:0;color:var(--ink-soft);font-size:16px;line-height:1.85;}

.detail-list{margin:0 0 14px;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;}
.detail-list li{font-size:16.5px;color:var(--ink-soft);line-height:1.8;padding-left:18px;position:relative;}
.detail-list li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;background:var(--sage);border-radius:50%;}
.detail-list li strong{color:var(--ink);font-weight:700;}

/* ---------- recruit page ---------- */
.job-section{margin-bottom:52px;}
.job-section:last-child{margin-bottom:0;}
.job-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:18px;}
.job-head h2{font-size:22px;}
.job-badge{background:var(--sage-tint);color:var(--sage-deep);font-size:13px;font-weight:700;
  padding:4px 12px;border-radius:999px;}
.job-card{border:1px solid var(--line);border-radius:18px;background:var(--surface-alt);
  padding:clamp(20px,4vw,36px);}
.job-callout{
  background:var(--gold-tint);color:var(--gold-ink);border-radius:12px;
  padding:12px 18px;font-size:15px;font-weight:700;margin-bottom:22px;
  display:inline-block;
}
.job-row{display:grid;grid-template-columns:1fr;gap:4px;padding:15px 0;border-bottom:1px dashed var(--line);}
@media (min-width:640px){.job-row{grid-template-columns:130px 1fr;gap:24px;}}
.job-row:last-child{border-bottom:none;}
.job-row dt{font-weight:700;font-size:14.5px;color:var(--sage-deep);}
.job-row dd{margin:0;font-size:15px;color:var(--ink-soft);white-space:pre-line;line-height:1.9;}

.visit-note{
  background:var(--sage-tint);border-radius:18px;padding:clamp(24px,4vw,40px);
  text-align:center;
}
.visit-note p{color:var(--ink-soft);font-size:16px;margin:0 auto;max-width:38em;}

.leaflet-wrap{display:flex;justify-content:center;}
.leaflet-frame{
  max-width:460px;width:100%;border:1px solid var(--line);border-radius:16px;
  overflow:hidden;box-shadow:var(--shadow);
}
.leaflet-frame img{width:100%;display:block;}

@media (prefers-reduced-motion:reduce){
  .hero-visual{animation:none;}
  .main-nav a::after{transition:none;}
}
:focus-visible{outline:2px solid var(--sage-deep);outline-offset:2px;}
