/* =========================================================
   NURSING PAGE / SENJU NO MORI
========================================================= */
.nursing-page{
  --bg:#f7f4ed;--bg2:#efeae1;--ink:#454d47;--muted:#727972;
  --green:#46554c;--green2:#35423b;--line:rgba(76,94,82,.18);
  background:var(--bg);color:var(--ink);
}
.ns-inner{width:min(88vw,1380px);margin:0 auto}
.ns-section{padding:clamp(120px,12vw,200px) 0;position:relative}
.ns-eyebrow{margin:0 0 28px;font-size:11px;letter-spacing:.24em;color:#7c857e}
.ns-section-head h2,.ns-area-head h2,.ns-target-head h2,.ns-price-head h2,.ns-professional-head h2,.ns-dark-head h2,.ns-life-head h2,.ns-manager-head h2{
  margin:0;font-family:"Noto Serif JP",serif;font-weight:300;letter-spacing:.06em;line-height:1.7;
  font-size:clamp(36px,4.5vw,64px);color:#465149;
}

/* HERO */
.ns-hero{height:100svh;min-height:720px;position:relative;overflow:hidden;background:#364239}
.ns-hero-photo{position:absolute;inset:0}
.ns-hero-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.86) brightness(.82);transform:scale(1.03)}
.ns-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,34,29,.52),rgba(26,34,29,.18) 56%,rgba(26,34,29,.05))}
.ns-hero-copy{position:absolute;z-index:3;left:max(6vw,70px);bottom:clamp(90px,11vh,145px);color:#fff}
.ns-hero-label{font-size:11px;letter-spacing:.26em;color:rgba(255,255,255,.7);margin:0 0 28px}
.ns-hero-copy h1{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(42px,5.2vw,78px);line-height:1.62;font-weight:300;letter-spacing:.07em}
.ns-hero-name{margin:28px 0 0;font-size:clamp(13px,.95vw,16px);letter-spacing:.08em;color:rgba(255,255,255,.78)}
.ns-hero-scroll{position:absolute;right:40px;bottom:40px;z-index:3;display:flex;align-items:center;gap:13px;color:rgba(255,255,255,.58);font-size:9px;letter-spacing:.26em}
.ns-hero-scroll i{width:42px;height:1px;background:rgba(255,255,255,.45)}

/* TYPING */
.ns-typing-output,.ns-statement-typing-output{white-space:pre-line}
.ns-typing-output.is-typing::after,.ns-statement-typing-output.is-typing::after{
  content:"";display:inline-block;width:1.05em;height:1px;margin-left:.12em;vertical-align:.12em;background:currentColor;animation:nsCursor 1s ease-in-out infinite
}
.ns-typing-output.is-converting,.ns-statement-typing-output.is-converting{opacity:.7;filter:blur(.6px)}
@keyframes nsCursor{0%,100%{opacity:.35;transform:scaleX(.65)}50%{opacity:1;transform:scaleX(1)}}

/* NAV */
.ns-nav{position:sticky;top:0;z-index:50;background:rgba(247,244,237,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(76,94,82,.13)}
.ns-nav-inner{width:min(94vw,1400px);margin:auto;padding:17px 0;display:flex;justify-content:center;gap:clamp(18px,2.7vw,42px);overflow-x:auto;scrollbar-width:none}
.ns-nav-inner::-webkit-scrollbar{display:none}
.ns-nav a{position:relative;flex:0 0 auto;text-decoration:none;color:#6b746d;font-size:10px;letter-spacing:.18em}
.ns-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:#435149;transform:scaleX(0);transition:.35s}
.ns-nav a.is-active::after,.ns-nav a:hover::after{transform:scaleX(1)}

/* PHILOSOPHY */
.ns-philosophy{padding-top:clamp(150px,15vw,240px)}
.ns-philosophy-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(70px,10vw,160px);margin-top:clamp(70px,8vw,120px)}
.ns-philosophy-title{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(42px,5vw,74px);line-height:1.65;font-weight:300;letter-spacing:.07em}
.ns-philosophy-lead p{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(21px,2vw,31px);line-height:2;color:#566159}
.ns-philosophy-text{padding-left:28px;border-left:1px solid var(--line)}
.ns-philosophy-text p{margin:0 0 26px;font-size:clamp(14px,1vw,16px);line-height:2.2;color:#6c736d}

/* MANAGER */
.ns-manager-message-section{padding:clamp(140px,14vw,220px) 0;background:#f1ede4}
.ns-manager-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(70px,9vw,140px);margin-top:clamp(80px,9vw,135px);align-items:start}
.ns-manager-photo{position:relative;overflow:hidden;aspect-ratio:.82/1;background:#ddd8ce}
.ns-manager-photo img,.ns-manager-photo-placeholder{width:100%;height:100%;object-fit:cover;display:grid;place-items:center}
.ns-manager-photo-placeholder{font-size:11px;letter-spacing:.2em;color:#8b918b;background:linear-gradient(145deg,#ded9d0,#ece8df)}
.ns-photo-curtain{position:absolute;inset:0;z-index:2;background:#e4dfd5;transition:transform 1.55s cubic-bezier(.76,0,.24,1)}
.ns-image-reveal.is-visible .ns-photo-curtain{transform:translateX(102%)}
.ns-manager-photo-caption{position:absolute;left:20px;bottom:18px;z-index:3;margin:0;font-size:9px;letter-spacing:.16em;color:rgba(255,255,255,.9)}
.ns-manager-profile{margin-top:34px;border-top:1px solid var(--line);padding-top:28px}
.ns-manager-profile-head p,.ns-manager-profile-label{font-size:9px;letter-spacing:.2em;color:#8a918b}
.ns-manager-profile-head h3{font-family:"Noto Serif JP",serif;font-weight:300;font-size:24px;margin:10px 0 28px}
.ns-manager-profile-group{padding:24px 0;border-top:1px solid var(--line)}
.ns-manager-career-list div{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:10px 0}
.ns-manager-career-list span{font-size:10px;color:#8b918c}
.ns-manager-career-list p,.ns-manager-qualification{margin:0;font-size:13px;line-height:1.9;color:#6f766f}
.ns-manager-qualification{padding-left:18px}
.ns-manager-lead{margin:0 0 50px;font-family:"Noto Serif JP",serif;font-size:clamp(28px,3vw,44px);line-height:1.8;color:#4a554d}
.ns-manager-body{padding-left:28px;border-left:1px solid var(--line)}
.ns-manager-body p{margin:0 0 28px;font-size:clamp(14px,1vw,16px);line-height:2.2;color:#6d746e}
.ns-manager-closing{margin:76px 0 0;font-family:"Noto Serif JP",serif}
.ns-manager-closing-pre,.ns-manager-closing-post{margin:0;font-size:clamp(16px,1.35vw,20px);line-height:2;color:#6d756f}
.ns-manager-closing-main{max-width:760px;margin:13px 0 16px;font-size:clamp(28px,3vw,44px);line-height:1.65;font-weight:300;color:#3f4e45}
.ns-manager-closing{opacity:0;transform:translateY(34px);transition:opacity 1.4s ease,transform 1.55s cubic-bezier(.2,.7,.2,1)}
.ns-manager-closing.is-visible{opacity:1;transform:none}
.ns-manager-closing-pre,.ns-manager-closing-main,.ns-manager-closing-post{opacity:0;transform:translateY(10px)}
.ns-manager-closing.is-visible .ns-manager-closing-pre{animation:nsClosingFade .9s ease .35s forwards}
.ns-manager-closing.is-visible .ns-manager-closing-main{animation:nsClosingMain 2.25s cubic-bezier(.2,.7,.2,1) .75s forwards}
.ns-manager-closing.is-visible .ns-manager-closing-post{animation:nsClosingFade 1s ease 2.15s forwards}
@keyframes nsClosingFade{to{opacity:1;transform:none}}
@keyframes nsClosingMain{0%{opacity:0;transform:translateY(12px);clip-path:inset(0 100% 0 0)}100%{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
.ns-manager-signature{margin-top:55px;padding-top:25px;border-top:1px solid var(--line)}
.ns-manager-signature p,.ns-manager-signature small{font-size:11px;color:#7d847e}
.ns-manager-name{display:flex;align-items:baseline;gap:18px;margin:12px 0}
.ns-manager-name span{font-size:12px}.ns-manager-name strong{font-family:"Noto Serif JP",serif;font-size:28px;font-weight:300}

/* STATEMENT */
.ns-statement{padding:clamp(150px,16vw,250px) 0;background:var(--green);color:#fff}
.ns-statement-typing-text{margin:0;text-align:center;font-family:"Noto Serif JP",serif;font-size:clamp(34px,4.6vw,68px);line-height:1.8;font-weight:300;letter-spacing:.07em}

/* ABOUT */
.ns-about-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(60px,8vw,120px);align-items:center;margin-top:clamp(80px,8vw,125px)}
.ns-about-photo,.ns-terminal-photo,.ns-rehab-photo{position:relative;overflow:hidden;background:#ddd8ce}
.ns-about-photo{aspect-ratio:1.28/1}
.ns-about-photo img,.ns-terminal-photo img,.ns-rehab-photo img{width:100%;height:100%;object-fit:cover;display:block;opacity:.35;transform:scale(1.06);transition:opacity 1.4s ease,transform 2.2s ease}
.ns-image-reveal.is-visible img{opacity:1;transform:scale(1.01)}
.ns-about-copy p,.ns-terminal-text p,.ns-rehab-text p{margin:0 0 25px;font-size:clamp(14px,1vw,16px);line-height:2.2;color:#6d746e}
.ns-about-facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(90px,10vw,150px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ns-fact{padding:34px 24px}
.ns-fact+.ns-fact{border-left:1px solid var(--line)}
.ns-fact-main{display:block;font-family:"Noto Serif JP",serif;font-size:clamp(28px,3vw,44px);font-weight:300;color:#45534a}
.ns-fact-sub{display:block;margin-top:14px;font-size:9px;letter-spacing:.18em;color:#8b918c}
.ns-fact p{margin:20px 0 0;font-size:13px;line-height:1.8;color:#727973}

/* 24H SUPPORT */
.ns-24h{
  position:relative;
  overflow:hidden;
  padding:clamp(145px,15vw,235px) 0;
  background:#f3efe7;
}
.ns-24h::before{
  content:"";
  position:absolute;
  left:-11vw;
  top:50%;
  width:34vw;
  height:34vw;
  min-width:430px;
  min-height:430px;
  border:1px solid rgba(66,86,73,.10);
  border-radius:50%;
  transform:translateY(-50%);
  pointer-events:none;
}
.ns-24h-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(340px,.82fr) minmax(0,1.18fr);
  gap:clamp(70px,9vw,145px);
  align-items:center;
}
.ns-24h-visual{
  position:relative;
  padding-left:clamp(0px,2vw,28px);
  color:#3f5146;
}
.ns-24h-number{
  margin-left:-.055em;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(150px,17vw,270px);
  font-weight:200;
  line-height:.76;
  letter-spacing:-.075em;
  color:#405448;
}
.ns-24h-unit{
  margin-top:31px;
  font-size:12px;
  letter-spacing:.34em;
  color:#69766e;
}
.ns-24h-rule{
  width:min(290px,82%);
  height:1px;
  margin:30px 0 25px;
  background:linear-gradient(90deg,rgba(64,84,72,.55),rgba(64,84,72,.08));
}
.ns-24h-days{
  display:flex;
  align-items:baseline;
  gap:12px;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(34px,3.2vw,48px);
  font-weight:300;
  color:#516158;
}
.ns-24h-days span{
  font-family:inherit;
  font-size:11px;
  letter-spacing:.26em;
  color:#7c857f;
}
.ns-24h-eyebrow{
  margin:0 0 27px;
  font-size:11px;
  letter-spacing:.28em;
  color:#7d877f;
}
.ns-24h-title{
  margin:0;
  max-width:840px;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(36px,4.15vw,62px);
  line-height:1.72;
  font-weight:300;
  letter-spacing:.055em;
  color:#4a554e;
}
.ns-24h-title span{color:#324a3c}
.ns-24h-body{
  max-width:760px;
  margin-top:clamp(48px,5vw,68px);
  padding-left:28px;
  border-left:1px solid rgba(66,86,73,.20);
}
.ns-24h-body p{
  margin:0 0 24px;
  font-size:clamp(15px,1.05vw,17px);
  line-height:2.15;
  color:#626d66;
}
.ns-24h-body p:last-child{margin-bottom:0}
.ns-24h-points{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  max-width:760px;
  margin-top:52px;
  border-top:1px solid rgba(66,86,73,.16);
  border-bottom:1px solid rgba(66,86,73,.16);
}
.ns-24h-points>div{
  display:flex;
  align-items:center;
  gap:18px;
  padding:22px 18px 22px 0;
}
.ns-24h-points>div+div{
  padding-left:22px;
  border-left:1px solid rgba(66,86,73,.14);
}
.ns-24h-points span{
  font-size:10px;
  letter-spacing:.08em;
  color:#8b948d;
}
.ns-24h-points strong{
  font-family:"Noto Serif JP",serif;
  font-size:20px;
  font-weight:300;
  letter-spacing:.06em;
  color:#4c5d53;
}
.ns-24h-closing{
  margin:clamp(58px,6vw,82px) 0 0;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(24px,2.6vw,38px);
  line-height:1.9;
  font-weight:300;
  letter-spacing:.055em;
  color:#59675f;
}
.ns-24h-closing span{color:#304a3a}
.ns-24h-note{
  margin:24px 0 0;
  font-size:12px;
  line-height:1.85;
  color:#858d87;
}

@media(max-width:1050px){
  .ns-24h-layout{grid-template-columns:1fr;gap:72px}
  .ns-24h-visual{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:end;column-gap:28px;padding-left:0}
  .ns-24h-number{font-size:clamp(145px,24vw,225px);grid-row:1 / span 2}
  .ns-24h-unit{margin:0 0 20px}
  .ns-24h-rule{display:none}
  .ns-24h-days{margin-bottom:5px}
}

@media(max-width:650px){
  .ns-24h{padding:105px 0 115px}
  .ns-24h::before{left:-240px;width:470px;height:470px;min-width:0;min-height:0;top:140px;transform:none}
  .ns-24h-layout{gap:64px}
  .ns-24h-visual{grid-template-columns:auto 1fr;column-gap:20px}
  .ns-24h-number{font-size:clamp(124px,38vw,160px);line-height:.78}
  .ns-24h-unit{font-size:10px;letter-spacing:.28em;margin-bottom:15px}
  .ns-24h-days{font-size:30px;margin-bottom:2px}
  .ns-24h-days span{font-size:9px}
  .ns-24h-eyebrow{font-size:12px;margin-bottom:24px}
  .ns-24h-title{font-size:clamp(30px,8.1vw,40px);line-height:1.72;letter-spacing:.035em}
  .ns-24h-body{margin-top:44px;padding-left:18px}
  .ns-24h-body p{font-size:16px;line-height:2.05}
  .ns-24h-points{margin-top:42px}
  .ns-24h-points>div{display:block;padding:18px 10px 18px 0}
  .ns-24h-points>div+div{padding-left:14px}
  .ns-24h-points span{display:block;margin-bottom:8px;font-size:9px}
  .ns-24h-points strong{font-size:17px}
  .ns-24h-closing{margin-top:52px;font-size:clamp(23px,6.6vw,30px);line-height:1.9}
  .ns-24h-note{font-size:12px}
}

/* SUPPORT */
.ns-support-section{padding:clamp(130px,13vw,210px) 0;background:var(--bg2)}
.ns-support-grid{display:grid;grid-template-columns:repeat(2,1fr);margin-top:clamp(80px,9vw,130px);border-top:1px solid var(--line)}
.ns-support-item{display:grid;grid-template-columns:50px 120px 1fr;gap:18px 26px;padding:32px 24px;border-bottom:1px solid var(--line)}
.ns-support-item:nth-child(even){border-left:1px solid var(--line)}
.ns-support-no{font-size:11px;color:#8a918b}.ns-support-en{margin:0;font-size:9px;letter-spacing:.17em;color:#909690}
.ns-support-item h3{grid-column:3;margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(20px,1.7vw,28px);font-weight:300}
.ns-support-item>p:last-child{grid-column:3;margin:8px 0 0;font-size:13px;line-height:2;color:#727973}

/* DARK */
.ns-dark-section{padding:clamp(140px,14vw,220px) 0;background:var(--green);color:#fff}
.ns-dark-section .ns-eyebrow{color:rgba(255,255,255,.6)}.ns-dark-head h2{color:#fff}
.ns-medical-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:clamp(60px,9vw,140px);margin-top:clamp(75px,8vw,120px)}
.ns-medical-lead p{margin:0 0 24px;font-size:15px;line-height:2.1;color:rgba(255,255,255,.7)}
.ns-medical-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid rgba(255,255,255,.16)}
.ns-medical-list>div{display:grid;grid-template-columns:48px 1fr;padding:22px 16px;border-bottom:1px solid rgba(255,255,255,.14)}
.ns-medical-list>div:nth-child(even){border-left:1px solid rgba(255,255,255,.12)}
.ns-medical-list span{font-size:10px;color:rgba(255,255,255,.4)}
.ns-medical-list p{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(17px,1.4vw,22px);color:rgba(255,255,255,.9)}

/* TERMINAL */
.ns-terminal{padding:clamp(130px,13vw,210px) 0;background:var(--bg)}
.ns-terminal-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(60px,8vw,120px);align-items:center}
.ns-terminal-copy h2,.ns-rehab-copy h2{margin:0 0 48px;font-family:"Noto Serif JP",serif;font-size:clamp(34px,4vw,58px);line-height:1.75;font-weight:300}
.ns-terminal-photo{aspect-ratio:1.15/1}

/* REHAB */
.ns-rehab{background:var(--bg2)}
.ns-rehab-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(60px,8vw,120px);align-items:center}
.ns-rehab-photo{aspect-ratio:1.18/1}
.ns-rehab-tags{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:38px;padding-top:24px;border-top:1px solid var(--line)}
.ns-rehab-tags span{font-size:12px;color:#6f7770}

/* LIFE */
.ns-life-section{padding:clamp(140px,15vw,230px) 0;background:var(--bg)}
.ns-life-words{width:min(72%,900px);margin:clamp(80px,9vw,135px) 0 0 auto;border-top:1px solid var(--line)}
.ns-life-word{display:grid;grid-template-columns:65px 1fr;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}
.ns-life-word span{font-size:10px;color:#8b918c}.ns-life-word p{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(23px,2.5vw,36px);font-weight:300}
.ns-life-statement{margin:clamp(90px,10vw,150px) 0 0;font-family:"Noto Serif JP",serif;font-size:clamp(28px,3.4vw,50px);line-height:1.9;font-weight:300;color:#68726b}.ns-life-statement span{color:#3f4c44}

/* TARGET */
.ns-support-target{padding:clamp(130px,13vw,210px) 0;background:#f1ede4}
.ns-target-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(60px,8vw,120px);margin-top:clamp(70px,8vw,120px)}
.ns-target-lead{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(21px,2vw,31px);line-height:2}
.ns-target-text{padding-left:25px;border-left:1px solid var(--line)}.ns-target-text p{margin:0 0 24px;font-size:17px;line-height:2.05;color:#566159}
.ns-target-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(80px,9vw,130px);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.ns-target-item{padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.ns-target-item>span{font-size:10px;color:#8b918c}.ns-target-en{font-size:9px;letter-spacing:.16em;color:#929892}
.ns-target-item h3{font-family:"Noto Serif JP",serif;font-size:23px;font-weight:300;margin:18px 0}.ns-target-item>p:last-child{font-size:15px;line-height:1.9;color:#5d6760}
.ns-target-note{margin:45px 0 0;font-size:12px;line-height:1.9;color:#858b86}

/* AREA */
.ns-area{background:var(--bg)}
.ns-area-lead{max-width:650px;margin:35px 0 0;font-size:14px;line-height:2;color:#737a74}
.ns-area-content{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(60px,8vw,120px);margin-top:clamp(75px,8vw,125px);align-items:start}
.ns-area-list{border-top:1px solid var(--line)}
.ns-area-item{display:grid;grid-template-columns:55px 1fr;padding:26px 0;border-bottom:1px solid var(--line)}
.ns-area-number{font-size:10px;color:#8a918b}.ns-area-en{margin:0;font-size:9px;letter-spacing:.17em;color:#929892}
.ns-area-info h3{margin:8px 0 10px;font-family:"Noto Serif JP",serif;font-size:clamp(25px,2.5vw,38px);font-weight:300}
.ns-area-detail{margin:0;font-size:13px;color:#727973}
.ns-area-note-panel{position:sticky;top:110px;padding:35px;background:#ece7de;border:1px solid var(--line)}
.ns-area-note-label{font-size:9px;letter-spacing:.18em;color:#8a918b}.ns-area-note-main{font-family:"Noto Serif JP",serif;font-size:clamp(26px,2.5vw,38px);line-height:1.8}
.ns-area-note-text p{font-size:13px;line-height:2;color:#727973}

/* FLOW */
.ns-flow-section{padding:clamp(130px,13vw,210px) 0;background:var(--bg2)}
.ns-flow-list{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(80px,9vw,130px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ns-flow-item{padding:32px 26px}.ns-flow-item+.ns-flow-item{border-left:1px solid var(--line)}
.ns-flow-no{display:block;margin-bottom:28px;font-size:11px;color:#8a918b}.ns-flow-en{font-size:9px;letter-spacing:.17em;color:#929892}
.ns-flow-item h3{font-family:"Noto Serif JP",serif;font-size:21px;font-weight:300;line-height:1.7}.ns-flow-item p:last-child{font-size:13px;line-height:2;color:#727973}

/* INSURANCE */
.ns-insurance{padding:clamp(110px,11vw,175px) 0;background:#e9e5dc}
.ns-insurance-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(70px,9vw,140px)}
.ns-insurance-head h2{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(32px,3.8vw,54px);line-height:1.75;font-weight:300}
.ns-insurance-text{padding-left:25px;border-left:1px solid var(--line)}.ns-insurance-text p{font-size:14px;line-height:2.1;color:#6d746e}.ns-insurance-small{font-size:11px!important;color:#858b86!important}

/* PRICE */
.ns-price-section{padding:clamp(130px,13vw,210px) 0;background:var(--bg)}
.ns-price-intro{margin:35px 0 0;font-size:14px;line-height:2;color:#737a74}
.ns-price-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:clamp(70px,8vw,120px);background:var(--line);border:1px solid var(--line)}
.ns-price-card{background:#f4f0e8;padding:clamp(30px,3vw,48px)}
.ns-price-card-top{display:grid;grid-template-columns:45px 1fr;gap:18px;border-bottom:1px solid var(--line);padding-bottom:25px}
.ns-price-number{font-size:11px;color:#8a918b}.ns-price-type-en{margin:0;font-size:9px;letter-spacing:.16em;color:#929892}
.ns-price-card h3{margin:8px 0 0;font-family:"Noto Serif JP",serif;font-size:24px;font-weight:300}
.ns-price-example{padding:38px 0 30px;border-bottom:1px solid var(--line)}
.ns-price-condition{font-size:12px;color:#7c847d}.ns-price-amount{display:flex;align-items:baseline;gap:7px;margin:12px 0 0}
.ns-price-amount strong{font-family:"Noto Serif JP",serif;font-size:clamp(46px,5vw,70px);font-weight:300;color:#405047}.ns-price-amount span,.ns-price-amount small{font-size:13px;color:#68736c}
.ns-price-detail{padding-top:26px}.ns-price-detail p,.ns-price-detail li{font-size:13px;line-height:1.9;color:#727973}
.ns-price-detail ul{margin:16px 0 0;padding-left:18px}.ns-price-note{margin-top:45px;padding-top:28px;border-top:1px solid var(--line)}.ns-price-note p{font-size:12px;line-height:1.9;color:#7b827c}

/* PRO */
.ns-professional{padding:clamp(120px,12vw,190px) 0;background:var(--bg2)}
.ns-professional-grid{display:grid;grid-template-columns:1fr .8fr;gap:clamp(70px,9vw,140px);align-items:end}
.ns-professional-copy>p{font-size:14px;line-height:2.1;color:#6d746e}
.ns-professional-links{margin-top:35px}.ns-professional-links a,.ns-contact-link{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-top:1px solid var(--line);text-decoration:none;color:#536159;font-size:14px}
.ns-professional-links a:last-child{border-bottom:1px solid var(--line)}
.ns-professional-links i,.ns-contact-link i{position:relative;width:40px;height:1px;background:currentColor}.ns-professional-links i::after,.ns-contact-link i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}


/* =========================================================
   RECORDS / 令和7年度実績
========================================================= */
.ns-records{
  position:relative;
  overflow:hidden;
  padding:clamp(130px,13vw,205px) 0;
  background:linear-gradient(180deg,#f4f1e9 0%,#eee9df 100%);
}
.ns-records::before{
  content:"";
  position:absolute;
  right:-180px;
  top:90px;
  width:460px;
  height:460px;
  border:1px solid rgba(70,85,76,.10);
  border-radius:50%;
  pointer-events:none;
}
.ns-records-head{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);
  gap:clamp(60px,8vw,120px);
  align-items:end;
  margin-bottom:clamp(65px,7vw,105px);
}
.ns-records-head h2{
  margin:0;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(38px,4.4vw,64px);
  line-height:1.65;
  font-weight:300;
  color:#455149;
}
.ns-records-intro{
  margin:0;
  font-size:16px;
  line-height:2.05;
  color:#5d6861;
}
.ns-records-summary{
  display:grid;
  grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-bottom:22px;
}
.ns-records-total{
  padding:clamp(46px,5vw,72px) clamp(35px,5vw,72px) clamp(46px,5vw,72px) 0;
}
.ns-records-kicker{
  display:block;
  margin-bottom:22px;
  font-size:13px;
  letter-spacing:.12em;
  color:#727d75;
}
.ns-records-big-number{
  display:flex;
  align-items:flex-end;
  gap:13px;
}
.ns-records-big-number strong{
  font-family:"Noto Serif JP",serif;
  font-size:clamp(78px,8.7vw,128px);
  font-weight:300;
  line-height:.9;
  letter-spacing:-.055em;
  color:#32493b;
}
.ns-records-big-number em{
  margin-bottom:8px;
  font-size:24px;
  font-style:normal;
  color:#536158;
}
.ns-records-total>p{
  margin:23px 0 0;
  font-size:13px;
  color:#7e867f;
}
.ns-records-insurance{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-left:1px solid var(--line);
}
.ns-records-insurance-item{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(38px,4vw,58px);
}
.ns-records-insurance-item+.ns-records-insurance-item{border-left:1px solid var(--line)}
.ns-records-insurance-item>span{
  margin-bottom:18px;
  font-size:15px;
  color:#59665e;
}
.ns-records-insurance-item>strong{
  display:flex;
  align-items:flex-end;
  gap:7px;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(50px,4.8vw,70px);
  line-height:1;
  font-weight:300;
  color:#40584a;
}
.ns-records-insurance-item>strong small{
  margin-bottom:6px;
  font-family:inherit;
  font-size:16px;
  font-weight:300;
}
.ns-records-insurance-item>p{
  margin:17px 0 4px;
  font-size:21px;
  color:#4e5c53;
}
.ns-records-insurance-item>em{
  font-size:11px;
  font-style:normal;
  color:#858d87;
}
.ns-records-grid{
  display:grid;
  grid-template-columns:1.12fr 1fr 1fr;
  gap:22px;
  margin-bottom:22px;
}
.ns-record-panel{
  min-width:0;
  padding:clamp(32px,3vw,46px);
  background:rgba(255,255,255,.55);
  border:1px solid rgba(76,94,82,.14);
}
.ns-record-panel-head{margin-bottom:30px}
.ns-record-panel-head>span,.ns-records-medical-en,.ns-records-terminal-en{
  display:block;
  margin-bottom:9px;
  font-size:10px;
  letter-spacing:.17em;
  color:#859087;
}
.ns-record-panel-head h3{
  margin:0;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(21px,1.8vw,28px);
  line-height:1.6;
  font-weight:300;
  color:#455149;
}
.ns-record-area-list>div{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:12px 0;
  border-top:1px solid rgba(76,94,82,.12);
}
.ns-record-area-list b{font-size:10px;font-weight:400;color:#879d77}
.ns-record-area-list span,.ns-record-area-list strong{font-size:14px;color:#536058}
.ns-record-area-list strong{font-weight:500}
.ns-record-care-list{display:flex;flex-direction:column;gap:19px}
.ns-record-care-list>div{
  display:grid;
  grid-template-columns:65px minmax(70px,1fr) 52px;
  gap:12px;
  align-items:center;
}
.ns-record-care-list span,.ns-record-care-list strong{
  font-size:13px;
  font-weight:400;
  color:#566159;
}
.ns-record-care-list strong{text-align:right}
.ns-record-care-list i{
  display:block;
  height:5px;
  overflow:hidden;
  background:rgba(63,83,68,.10);
}
.ns-record-care-list i b{
  display:block;
  width:0;
  height:100%;
  background:#708a73;
  transition:width 1.5s cubic-bezier(.18,.75,.18,1);
}
.ns-record-panel.is-visible .ns-record-care-list i b{width:var(--bar)}
.ns-record-disease-list{list-style:none;margin:0;padding:0}
.ns-record-disease-list li{
  position:relative;
  padding:9px 0 9px 16px;
  border-top:1px solid rgba(76,94,82,.12);
  font-size:14px;
  line-height:1.6;
  color:#566159;
}
.ns-record-disease-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:17px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#7f9871;
}
.ns-record-note{
  margin:23px 0 0;
  font-size:12px;
  line-height:1.8;
  color:#858d87;
}
.ns-records-medical{
  padding:clamp(42px,4.5vw,62px);
  margin-bottom:22px;
  background:#405548;
  color:#fff;
}
.ns-records-medical-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  padding-bottom:34px;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.ns-records-medical-en{color:rgba(255,255,255,.55)}
.ns-records-medical h3{
  margin:0;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(28px,2.8vw,42px);
  line-height:1.55;
  font-weight:300;
  color:#fff;
}
.ns-records-medical-total{
  display:flex;
  align-items:flex-end;
  gap:16px;
  flex:0 0 auto;
}
.ns-records-medical-total>span{
  margin-bottom:11px;
  font-size:12px;
  color:rgba(255,255,255,.62);
}
.ns-records-medical-total>strong{
  display:flex;
  align-items:flex-end;
  gap:6px;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(72px,6.5vw,96px);
  line-height:.9;
  font-weight:300;
}
.ns-records-medical-total small,
.ns-records-medical-list small,
.ns-records-terminal-count small{
  margin-bottom:7px;
  font-family:inherit;
  font-size:.34em;
  font-weight:300;
}
.ns-records-medical-list{display:grid;grid-template-columns:repeat(4,1fr)}
.ns-records-medical-list>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:28px;
  min-height:170px;
  padding:30px 26px 0 0;
}
.ns-records-medical-list>div+div{
  padding-left:26px;
  border-left:1px solid rgba(255,255,255,.14);
}
.ns-records-medical-list>div>span{
  font-size:14px;
  line-height:1.7;
  color:rgba(255,255,255,.72);
}
.ns-records-medical-list>div>strong{
  display:flex;
  align-items:flex-end;
  gap:5px;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(54px,4.4vw,68px);
  line-height:.95;
  font-weight:300;
  color:#fff;
}
.ns-records-terminal{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:60px;
  align-items:end;
  padding:clamp(38px,4vw,58px);
  border:1px solid rgba(78,78,74,.10);
  background:#e3e1dc;
}
.ns-records-terminal-en{
  color:#85847f;
}
.ns-records-terminal h3{
  margin:0 0 17px;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(26px,2.5vw,38px);
  line-height:1.6;
  font-weight:300;
  color:#555550;
}
.ns-records-terminal-text{
  margin:0;
  max-width:650px;
  font-size:15px;
  line-height:2;
  color:#696963;
}
.ns-records-terminal-count{text-align:right}
.ns-records-terminal-count>span{
  display:block;
  margin-bottom:11px;
  font-size:13px;
  color:#777772;
}
.ns-records-terminal-count>strong{
  display:flex;
  justify-content:flex-end;
  align-items:flex-end;
  gap:5px;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(54px,4.8vw,72px);
  line-height:.95;
  font-weight:300;
  color:#555550;
}
.ns-records-footnote{
  margin:18px 0 0;
  text-align:right;
  font-size:11px;
  color:#929892;
}

/* INFORMATION */
.ns-information{padding:clamp(115px,11vw,175px) 0;background:#f1ede4}
.ns-information-grid{
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);
  gap:clamp(65px,8vw,120px);
  align-items:start;
}
.ns-information-head h2{
  margin:0;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(34px,3.8vw,54px);
  line-height:1.65;
  font-weight:300;
  color:#455149;
}
.ns-information-list{border-top:1px solid var(--line)}
.ns-information-list>div{
  display:grid;
  grid-template-columns:145px minmax(0,1fr);
  gap:28px;
  padding:24px 0;
  border-bottom:1px solid var(--line);
}
.ns-information-list span{font-size:13px;line-height:1.9;color:#78817b}
.ns-information-list p{margin:0;font-size:16px;line-height:1.9;color:#505b54}
.ns-information-list a{color:inherit;text-decoration:none}
.ns-information-list small{
  display:block;
  margin-top:7px;
  font-size:12px;
  line-height:1.8;
  color:#7d857f;
}

/* FAQ */
.ns-faq-section{padding:clamp(130px,13vw,210px) 0;background:var(--bg)}
.ns-faq-list{margin-top:clamp(70px,8vw,110px);border-top:1px solid var(--line)}
.ns-faq-item{border-bottom:1px solid var(--line)}.ns-faq-item summary{position:relative;list-style:none;cursor:pointer;padding:28px 55px 28px 0;font-family:"Noto Serif JP",serif;font-size:clamp(18px,1.6vw,23px);color:#515c54}
.ns-faq-item summary::-webkit-details-marker{display:none}.ns-faq-item summary::before,.ns-faq-item summary::after{content:"";position:absolute;right:10px;top:50%;width:18px;height:1px;background:#69766e}.ns-faq-item summary::after{transform:rotate(90deg);transition:.3s}.ns-faq-item[open] summary::after{transform:rotate(0)}
.ns-faq-item>div{padding:0 55px 28px 0}.ns-faq-item p{margin:0;max-width:850px;font-size:14px;line-height:2.1;color:#747a75}

/* CONTACT */
.ns-contact{padding:clamp(140px,14vw,220px) 0;background:var(--green);color:#fff}
.ns-contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(70px,9vw,140px);align-items:center}
.ns-contact .ns-eyebrow{color:rgba(255,255,255,.6)}.ns-contact-copy h2{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(36px,4.5vw,64px);line-height:1.7;font-weight:300}
.ns-contact-text{margin:40px 0 0;font-size:14px;line-height:2.1;color:rgba(255,255,255,.7)}
.ns-contact-actions{display:flex;flex-direction:column}.ns-contact-tel{padding:0 0 30px;border-bottom:1px solid rgba(255,255,255,.18);color:#fff;text-decoration:none}.ns-contact-tel small{display:block;margin-bottom:13px;font-size:10px;letter-spacing:.2em;color:rgba(255,255,255,.55)}.ns-contact-tel span{font-family:"Noto Serif JP",serif;font-size:clamp(30px,3.3vw,48px);font-weight:300}.ns-contact-link{color:#fff;border-top:0;border-bottom:1px solid rgba(255,255,255,.18);padding:25px 0}

/* REVEAL */
.ns-reveal{opacity:0;transform:translateY(24px);filter:blur(4px);transition:opacity 1.1s ease,transform 1.35s ease,filter 1s ease}
.ns-reveal.is-visible{opacity:1;transform:none;filter:none}

/* TABLET */
@media(max-width:1050px){
  .ns-manager-layout,.ns-philosophy-grid,.ns-about-layout,.ns-terminal-grid,.ns-rehab-grid,.ns-target-intro,.ns-area-content,.ns-insurance-grid,.ns-professional-grid,.ns-contact-grid{grid-template-columns:1fr}
  .ns-about-facts{grid-template-columns:repeat(2,1fr)}.ns-fact:nth-child(3){border-left:0;border-top:1px solid var(--line)}
  .ns-support-grid,.ns-price-grid{grid-template-columns:1fr}.ns-support-item:nth-child(even){border-left:0}
  .ns-target-grid{grid-template-columns:repeat(2,1fr)}
  .ns-flow-list{grid-template-columns:repeat(2,1fr)}.ns-flow-item:nth-child(3){border-left:0;border-top:1px solid var(--line)}.ns-flow-item:nth-child(4){border-top:1px solid var(--line)}
  .ns-area-note-panel{position:static}

  .ns-records-head,.ns-records-summary,.ns-information-grid{grid-template-columns:1fr}
  .ns-records-grid{grid-template-columns:1fr 1fr}
  .ns-record-panel:first-child{grid-column:1/-1}
  .ns-records-insurance{border-left:0;border-top:1px solid var(--line)}
  .ns-records-medical-list{grid-template-columns:1fr 1fr}
  .ns-records-medical-list>div:nth-child(3){border-left:0}
}

/* MOBILE */
@media(max-width:650px){
  .ns-inner{width:88vw}.ns-section{padding:100px 0}.ns-hero{min-height:650px}.ns-hero-copy{left:6vw;right:6vw;bottom:88px}.ns-hero-copy h1{font-size:clamp(34px,9vw,46px)}.ns-hero-scroll{right:20px;bottom:24px}
  .ns-nav-inner{justify-content:flex-start;padding:15px 6vw;gap:24px}
  .ns-section-head h2,.ns-area-head h2,.ns-target-head h2,.ns-price-head h2,.ns-professional-head h2,.ns-dark-head h2,.ns-life-head h2,.ns-manager-head h2{font-size:clamp(30px,8.5vw,42px)}
  .ns-philosophy-title{font-size:clamp(35px,9.5vw,48px)}.ns-philosophy-text,.ns-manager-body,.ns-target-text,.ns-insurance-text{padding-left:18px}
  .ns-manager-message-section,.ns-support-section,.ns-dark-section,.ns-life-section,.ns-support-target,.ns-flow-section,.ns-price-section,.ns-professional,.ns-faq-section,.ns-contact{padding:105px 0}
  .ns-statement{padding:120px 0}.ns-statement-typing-text{font-size:clamp(29px,8vw,40px);text-align:left}
  .ns-about-facts{grid-template-columns:1fr}.ns-fact+.ns-fact{border-left:0;border-top:1px solid var(--line)}
  .ns-support-item{grid-template-columns:38px 1fr;gap:10px 14px;padding:26px 0}.ns-support-item h3,.ns-support-item>p:last-child{grid-column:1/-1}.ns-support-item h3{margin-top:8px}
  .ns-medical-layout{grid-template-columns:1fr}.ns-medical-list{grid-template-columns:1fr}.ns-medical-list>div:nth-child(even){border-left:0}
  .ns-target-grid{grid-template-columns:1fr}.ns-life-words{width:100%}.ns-life-word{grid-template-columns:48px 1fr}
  .ns-flow-list{grid-template-columns:1fr}.ns-flow-item{border-left:0!important}.ns-flow-item+.ns-flow-item{border-top:1px solid var(--line)}
  .ns-price-intro br,.ns-contact-text br{display:none}
  .ns-manager-photo{aspect-ratio:1/1.15}

  .ns-records,.ns-information{padding:105px 0}
  .ns-records-head{gap:32px}
  .ns-records-head h2{font-size:clamp(32px,9vw,44px)}
  .ns-records-intro{font-size:15px}
  .ns-records-total{padding:40px 0}
  .ns-records-big-number strong{font-size:clamp(70px,22vw,92px)}
  .ns-records-insurance{grid-template-columns:1fr}
  .ns-records-insurance-item{padding:32px 0}
  .ns-records-insurance-item+.ns-records-insurance-item{border-left:0;border-top:1px solid var(--line)}
  .ns-records-grid{grid-template-columns:1fr}
  .ns-record-panel:first-child{grid-column:auto}
  .ns-record-panel{padding:28px 23px}
  .ns-records-medical{padding:34px 23px}
  .ns-records-medical-top{align-items:flex-start}
  .ns-records-medical-total{flex-direction:column;align-items:flex-end;gap:3px}
  .ns-records-medical-total>span{margin:0}
  .ns-records-medical-total>strong{font-size:clamp(60px,17vw,78px)}
  .ns-records-medical-list{grid-template-columns:1fr}
  .ns-records-medical-list>div,.ns-records-medical-list>div+div{min-height:0;padding:23px 0;border-left:0;border-top:1px solid rgba(255,255,255,.13)}
  .ns-records-medical-list>div>strong{font-size:clamp(50px,14vw,62px)}
  .ns-records-terminal{grid-template-columns:1fr;gap:32px;padding:32px 23px}
  .ns-records-terminal-count{text-align:left}
  .ns-records-terminal-count>strong{justify-content:flex-start}
  .ns-records-footnote{text-align:left}
  .ns-information-list>div{grid-template-columns:105px minmax(0,1fr);gap:18px}
  .ns-information-list p{font-size:15px}
  .ns-manager-closing-main{font-size:clamp(25px,7.4vw,34px)}
}

/* REDUCED MOTION */
@media(prefers-reduced-motion:reduce){
  .ns-reveal,.ns-photo-curtain,.ns-about-photo img,.ns-terminal-photo img,.ns-rehab-photo img{transition:none!important}
  .ns-reveal{opacity:1!important;transform:none!important;filter:none!important}
  .ns-photo-curtain{display:none}.ns-about-photo img,.ns-terminal-photo img,.ns-rehab-photo img{opacity:1;transform:none}
  .ns-typing-output::after,.ns-statement-typing-output::after{display:none!important}
  .ns-record-care-list i b{width:var(--bar)!important;transition:none!important}
  .ns-manager-closing,.ns-manager-closing-pre,.ns-manager-closing-main,.ns-manager-closing-post{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important}
}


/* =========================================================
   NURSING CLOSING / LOGO
========================================================= */
.ns-closing{
  position:relative;
  overflow:hidden;
  padding:clamp(125px,13vw,195px) 0 clamp(115px,12vw,175px);
  background:#f7f5ef;
}
.ns-closing-copy{
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.ns-closing-title{
  margin:0 0 42px;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(32px,3.5vw,50px);
  line-height:1.65;
  font-weight:300;
  letter-spacing:.06em;
  color:#34443b;
}
.ns-closing-text{
  margin:0;
  font-family:"Noto Sans JP",sans-serif;
  font-size:16px;
  line-height:2.15;
  font-weight:400;
  letter-spacing:.04em;
  color:#566159;
}
.ns-closing-text+.ns-closing-text{margin-top:22px}
.ns-closing-logo{
  width:min(240px,50vw);
  margin:70px auto 0;
}
.ns-closing-logo img{
  display:block;
  width:100%;
  height:auto;
}

@media(max-width:650px){
  .ns-closing{padding:100px 0 90px}
  .ns-closing-copy{text-align:left}
  .ns-closing-title{
    margin-bottom:34px;
    font-size:clamp(29px,8vw,38px);
    line-height:1.7;
    letter-spacing:.04em;
  }
  .ns-closing-text{
    font-size:16px;
    line-height:2;
    letter-spacing:.02em;
  }
  .ns-closing-text br{display:none}
  .ns-closing-logo{
    width:210px;
    margin:58px auto 0;
  }
}
