/* ===========================================================
   白金リハビリテーション病院 新卒採用LP
   整理済みスタイル: セクション順に並べています
   =========================================================== */

/* ========== base / shared ========== */
:root{
  --cream:#FBF6EF;
  --cream-deep:#F3E9DC;
  --ink:#3A2E2A;
  --ink-soft:#6B5C54;
  --rose:#C9605A;
  --rose-deep:#A8463F;
  --sakura:#F3C9C2;
  --sakura-pale:#FBE4DF;
  --leaf:#8AA382;
  --shadow:rgba(120,80,60,.14);
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  overflow-x:hidden;
}

body{
  font-family:"Zen Kaku Gothic New",sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.mincho{
  font-family:"Shippori Mincho B1",serif;
}

.maru{
  font-family:"Zen Maru Gothic",sans-serif;
}

.wrap{
  max-width:1080px;
  margin:0 auto;
  padding:0 24px;
}

a{
  color:inherit;
}

header.shrink{
  padding:10px 32px;
  box-shadow:0 4px 24px var(--shadow);
}

.logo{
  font-family:"Shippori Mincho B1",serif;
  font-weight:800;
  font-size:1.25rem;
  color:var(--rose-deep);
  letter-spacing:.04em;
  text-decoration:none;
  line-height:1.18;
}

.logo small{
  display:block;
  font-size:.6rem;
  color:var(--ink-soft);
  letter-spacing:.3em;
  font-weight:400;
}

section{
  position:relative;
  z-index:2;
}

.reveal{
  opacity:0;
  transform:translateY(36px);
  transition:opacity .45s,transform .45s;
}

.reveal.show{
  opacity:1;
  transform:none;
}

.ng-message-photo.reveal{
  transform:translateY(36px) rotate(2deg);
}

.ng-message-photo.reveal.show{
  transform:rotate(2deg);
}

summary.faq-q{
  list-style:none;
}

summary.faq-q::-webkit-details-marker{
  display:none;
}

footer{
  position:relative;
  z-index:5;
  background:#fff;
  color:#617169;
  padding:48px 0 30px;
  margin-top:90px;
  border-top:1px solid rgba(245,223,212,.72);
  overflow:hidden;
}

footer .wrap{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:24px;
}

footer .logo{
  color:#304238;
}

footer .ng-footer-brand{
  display:grid;
  gap:14px;
}

footer .ng-footer-logo{
  display:inline-flex;
  align-items:center;
  width:min(320px,72vw);
  padding:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

footer .ng-footer-logo img{
  display:block;
  width:100%;
  height:auto;
}

footer small{
  color:#65766F;
  font-size:.75rem;
}

footer ul{
  list-style:none;
  display:flex;
  gap:22px;
  flex-wrap:wrap;
}

footer a{
  color:#617169;
  text-decoration:none;
  font-size:.85rem;
}

footer a:hover{
  color:#304238;
}

.thanks.show{
  display:block;
  animation:rise .6s forwards;
}

.nbox.wide{
  grid-column:span 2;
}

.ng-page{
  background:radial-gradient(circle at 8% 18%,rgba(246,207,91,.16),transparent 24vw),
    radial-gradient(circle at 92% 34%,rgba(131,191,206,.16),transparent 26vw),
    #FFF9F3;
  color:#33413A;
}

.ng-page .reveal{
  opacity:1;
  transform:none;
}

.ng-page::before{
  content:"";
  position:fixed;
  inset:auto -8vw 0 auto;
  width:36vw;
  min-width:280px;
  aspect-ratio:1;
  border-radius:48% 52% 62% 38%/52% 44% 56% 48%;
  background:linear-gradient(135deg,rgba(244,190,157,.22),rgba(132,190,204,.18));
  z-index:0;
  pointer-events:none;
  animation:ngMorph 12s ease-in-out infinite;
}

.ng-cutout{
  position:absolute;
  display:block;
  height:auto;
  pointer-events:none;
  user-select:none;
  z-index:1;
  filter:drop-shadow(0 14px 20px rgba(93,73,58,.08));
  animation:ngSoftFloat 7.2s ease-in-out infinite;
}

.ng-section-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:5px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 18px rgba(93,73,58,.06);
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  color:#D16F59;
  letter-spacing:.18em;
  font-size:.78rem;
}

.ng-section-label::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:#F6CF5B;
  box-shadow:12px 0 0 #9CC9B0,24px 0 0 #F49A8F;
  margin-right:22px;
}

.ng-entry{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  margin-left:auto;
  text-decoration:none;
  background:#D16F59;
  color:#fff;
  border-radius:999px;
  padding:12px 22px;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.86rem;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(209,111,89,.28);
  animation:ngPulse 2.8s ease-in-out infinite;
}

.ng-illust-hero-curtain{
  width:min(24vw,250px);
  right:38vw;
  top:112px;
  opacity:.62;
  z-index:1;
  transform:rotate(-7deg);
  animation-delay:-2s;
}

.ng-illust-hero-lines{
  width:min(30vw,290px);
  left:7vw;
  bottom:118px;
  opacity:.72;
  z-index:1;
  transform:rotate(-4deg);
  animation-delay:-5s;
}

.ng-illust-hero-star{
  width:54px;
  left:49vw;
  top:170px;
  opacity:.62;
  z-index:2;
  transform:rotate(12deg);
  animation-delay:-1.5s;
}

.ng-illust-hero-leaf{
  width:86px;
  right:4.5vw;
  bottom:210px;
  opacity:.5;
  z-index:2;
  transform:rotate(-24deg);
  animation-delay:-4s;
}

.ng-illust-hero-speech{
  width:210px;
  right:82px;
  top:-32px;
  opacity:.42;
  z-index:0;
  transform:rotate(-5deg);
}

.ng-illust-hero-person{
  width:clamp(178px,10.4vw,220px);
  left:clamp(78px,7.2vw,138px);
  bottom:10px;
  z-index:5;
  transform:rotate(-4deg);
  animation-delay:-3s;
}

.ng-illust-message-leaves{
  z-index:0;
  transform:rotate(-12deg);
  left:-10px;
  top:116px;
  width:124px;
  opacity:.42;
}

.ng-illust-message-flower{
  width:92px;
  left:22%;
  bottom:-34px;
  opacity:.34;
  z-index:0;
  transform:rotate(10deg);
  animation-delay:-2.5s;
}

.ng-illust-message-patient{
  width:126px;
  left:6%;
  bottom:34px;
  opacity:.28;
  z-index:0;
  transform:rotate(-4deg);
  animation-delay:-4s;
}

.ng-illust-message-wave{
  width:170px;
  right:34%;
  top:30px;
  opacity:.32;
  z-index:0;
  transform:rotate(4deg);
  animation-delay:-3.2s;
}

.ng-illust-message-star{
  width:44px;
  left:48%;
  bottom:46px;
  opacity:.42;
  z-index:0;
  transform:rotate(14deg);
  animation-delay:-1.6s;
}

.ng-illust-message-dot{
  width:58px;
  right:8%;
  top:102px;
  opacity:.22;
  z-index:0;
  transform:rotate(-8deg);
  animation-delay:-5.2s;
}

.ng-illust-message-tools{
  transform:rotate(4deg);
  width:170px;
  right:72px;
  bottom:18px;
  z-index:0;
  opacity:.58;
  filter:drop-shadow(0 16px 22px rgba(93,73,58,.08));
}

.ng-illust-support-person{
  width:150px;
  right:-22px;
  bottom:52px;
  opacity:.2;
  z-index:1;
  transform:rotate(7deg);
}

.ng-illust-support-line{
  width:230px;
  left:34%;
  top:80px;
  opacity:.28;
  z-index:1;
  transform:rotate(-4deg);
}

.ng-illust-support-dot{
  width:52px;
  left:8%;
  bottom:92px;
  opacity:.36;
  z-index:1;
}

.ng-illust-support-vine{
  width:150px;
  right:12%;
  top:176px;
  opacity:.28;
  z-index:1;
  transform:rotate(-8deg);
}

.ng-split-head{
  max-width:700px;
  margin-bottom:42px;
}

.ng-split-head h2{
  margin:10px 0 10px;
}

.ng-illust-jobs-walk{
  width:210px;
  right:-124px;
  top:-16px;
  opacity:.5;
  transform:rotate(5deg);
}

.ng-illust-jobs-bars{
  width:160px;
  left:-74px;
  bottom:-56px;
  opacity:.64;
  transform:rotate(-5deg);
}

.ng-illust-jobs-plant{
  width:118px;
  right:6%;
  bottom:28px;
  opacity:.42;
  z-index:1;
  transform:rotate(-6deg);
  animation-delay:-3.5s;
}

.ng-illust-jobs-steps{
  width:150px;
  left:42%;
  top:58px;
  opacity:.22;
  z-index:1;
  transform:rotate(6deg);
  animation-delay:-4.4s;
}

.ng-illust-jobs-star{
  width:42px;
  right:28%;
  top:24px;
  opacity:.62;
  z-index:1;
  transform:rotate(10deg);
  animation-delay:-2s;
}

.ng-illust-jobs-bubble{
  width:180px;
  left:8%;
  top:42px;
  opacity:.14;
  z-index:1;
  transform:rotate(-5deg);
  animation-delay:-6s;
}

.ng-illust-jobs-line{
  width:230px;
  right:22%;
  bottom:42px;
  opacity:.28;
  z-index:1;
  transform:rotate(3deg);
  animation-delay:-2.8s;
}

.ng-illust-people-speech{
  width:250px;
  right:-88px;
  top:-46px;
  opacity:.74;
  transform:rotate(7deg);
}

.ng-illust-people-flower{
  width:88px;
  left:-34px;
  top:178px;
  opacity:.34;
  transform:rotate(-14deg);
  animation-delay:-2s;
}

.ng-illust-people-arc{
  width:150px;
  right:13%;
  bottom:74px;
  opacity:.4;
  transform:rotate(7deg);
  animation-delay:-5s;
}

.ng-illust-people-cloud{
  width:220px;
  left:28%;
  top:44px;
  opacity:.16;
  z-index:0;
  transform:rotate(2deg);
  animation-delay:-4.6s;
}

.ng-illust-people-dot{
  width:36px;
  right:5%;
  bottom:38%;
  opacity:.46;
  z-index:1;
  animation-delay:-1.4s;
}

.ng-illust-people-star{
  width:46px;
  left:48%;
  bottom:52px;
  opacity:.5;
  z-index:1;
  transform:rotate(-12deg);
  animation-delay:-2.6s;
}

.ng-illust-people-leaf{
  width:78px;
  right:32%;
  top:150px;
  opacity:.24;
  z-index:1;
  transform:rotate(18deg);
  animation-delay:-6.2s;
}

.ng-illust-numbers-cloud{
  width:190px;
  right:22px;
  top:30px;
  opacity:.18;
  z-index:0;
  transform:rotate(4deg);
}

.ng-illust-numbers-shoes{
  width:82px;
  left:-8px;
  bottom:62px;
  opacity:.18;
  z-index:0;
  transform:rotate(-10deg);
  animation-delay:-2s;
}

.ng-illust-numbers-person{
  width:104px;
  right:-22px;
  bottom:26px;
  opacity:.22;
  z-index:0;
  transform:rotate(6deg);
  animation-delay:-4.7s;
}

.ng-illust-numbers-line{
  width:160px;
  left:34%;
  top:84px;
  opacity:.34;
  z-index:0;
  transform:rotate(-2deg);
  animation-delay:-3.1s;
}

.ng-illust-numbers-star{
  width:42px;
  left:9%;
  top:210px;
  opacity:.42;
  z-index:0;
  transform:rotate(14deg);
  animation-delay:-1.8s;
}

.ng-illust-numbers-dot{
  width:46px;
  right:18%;
  top:178px;
  opacity:.38;
  z-index:0;
  transform:rotate(-8deg);
  animation-delay:-5.4s;
}

.ng-illust-talk-note{
  width:112px;
  right:4%;
  top:22px;
  opacity:.32;
  z-index:1;
  transform:rotate(8deg);
}

.ng-illust-talk-speech{
  width:190px;
  left:-42px;
  bottom:-36px;
  opacity:.18;
  z-index:1;
  transform:rotate(-4deg);
}

.ng-illust-gallery-note{
  width:108px;
  right:8px;
  top:22px;
  opacity:.36;
  z-index:1;
  transform:rotate(8deg);
  animation-delay:-1.6s;
}

.ng-illust-gallery-line{
  width:160px;
  left:28%;
  top:84px;
  opacity:.44;
  z-index:1;
  transform:rotate(-3deg);
  animation-delay:-5.5s;
}

.ng-illust-gallery-cloud{
  width:190px;
  left:-38px;
  bottom:-54px;
  opacity:.18;
  z-index:1;
  transform:rotate(5deg);
  animation-delay:-4.2s;
}

.ng-illust-gallery-star{
  width:46px;
  right:22%;
  bottom:18px;
  opacity:.48;
  z-index:1;
  transform:rotate(11deg);
  animation-delay:-2.9s;
}

.ng-illust-gallery-leaf{
  width:82px;
  right:8%;
  top:145px;
  opacity:.22;
  z-index:1;
  transform:rotate(-18deg);
  animation-delay:-6.4s;
}

.ng-illust-gallery-bubble{
  width:140px;
  left:46%;
  bottom:84px;
  opacity:.12;
  z-index:1;
  transform:rotate(7deg);
  animation-delay:-3.5s;
}

.ng-illust-faq-bubble{
  width:150px;
  right:98px;
  top:92px;
  opacity:.18;
  z-index:0;
  transform:rotate(-5deg);
}

.ng-illust-faq-star{
  width:44px;
  left:12px;
  top:154px;
  opacity:.5;
  z-index:0;
  transform:rotate(12deg);
  animation-delay:-3.4s;
}

.ng-illust-faq-line{
  width:170px;
  right:18%;
  bottom:36px;
  opacity:.34;
  z-index:0;
  transform:rotate(-2deg);
  animation-delay:-4.1s;
}

.ng-illust-faq-flower{
  width:74px;
  left:-18px;
  bottom:104px;
  opacity:.18;
  z-index:0;
  transform:rotate(-7deg);
  animation-delay:-1.8s;
}

.ng-illust-faq-dot{
  width:52px;
  right:44%;
  top:72px;
  opacity:.3;
  z-index:0;
  transform:rotate(8deg);
  animation-delay:-5.6s;
}

.ng-illust-faq-speech{
  width:136px;
  right:-20px;
  bottom:128px;
  opacity:.12;
  z-index:0;
  transform:rotate(5deg);
  animation-delay:-2.4s;
}

.ng-illust-entry-person{
  width:240px;
  right:18px;
  top:26px;
  z-index:2;
  filter:drop-shadow(0 18px 26px rgba(78,36,26,.18));
}

.ng-illust-entry-lines{
  width:250px;
  right:170px;
  top:178px;
  opacity:.55;
  z-index:1;
  filter:none;
}

.ng-illust-entry-spark{
  width:46px;
  right:52px;
  bottom:62px;
  opacity:.55;
  z-index:2;
  filter:none;
  animation-delay:-2.8s;
}

.ng-illust-entry-leaf{
  width:92px;
  left:26px;
  bottom:42px;
  opacity:.18;
  z-index:1;
  transform:rotate(-18deg);
  filter:none;
  animation-delay:-4.8s;
}

.ng-illust-entry-bubble{
  width:170px;
  left:44%;
  top:34px;
  opacity:.13;
  z-index:1;
  filter:none;
  transform:rotate(-4deg);
  animation-delay:-3.6s;
}

.ng-illust-entry-dot{
  width:54px;
  left:40px;
  top:62px;
  opacity:.26;
  z-index:1;
  filter:none;
  animation-delay:-2.1s;
}

.ng-footer{
  margin-top:0;
  background:#fff;
}

.ng-footer .wrap{
  position:relative;
  z-index:1;
  justify-content:flex-start;
}

.ng-illust-message-flower,
.ng-illust-message-patient,
.ng-illust-message-wave,
.ng-illust-message-star,
.ng-illust-message-dot{
  opacity:.18;
}

/* ========== hero ========== */
.ng-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:18px 32px;
  background:rgba(255,249,243,.86);
  box-shadow:0 4px 22px rgba(93,73,58,.06);
  backdrop-filter:blur(12px);
  transition:padding .3s,box-shadow .3s,background .3s,transform .32s ease,opacity .24s ease;
}

.ng-header .logo,
.ng-footer .logo{
  font-family:"Zen Maru Gothic",sans-serif;
}

.ng-header .logo{
  flex:0 0 auto;
  color:#D16F59;
  display:flex;
  align-items:center;
  width:220px;
  max-width:24vw;
}

.ng-header .logo img{
  display:block;
  width:100%;
  height:auto;
}

.ng-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  flex:1;
}

.ng-nav a{
  text-decoration:none;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.82rem;
  color:#52635A;
}

.ng-nav a:hover{
  color:#D16F59;
}

.ng-hero{
  position:relative;
  min-height:clamp(720px,76vh,820px);
  padding:104px 5vw 28px;
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  align-items:start;
  gap:clamp(18px,2.4vw,44px);
  background:radial-gradient(circle at 22% 35%,rgba(255,255,255,.96) 0 22%,rgba(255,255,255,.72) 22% 34%,transparent 56%),
    linear-gradient(118deg,rgba(255,249,243,0) 0 52%,rgba(255,226,204,.82) 52% 100%),
    linear-gradient(180deg,#FFF9F3 0%,#FFFDF8 100%);
  overflow:hidden;
}

.ng-curtains{
  position:absolute;
  inset:86px 0 auto;
  height:72%;
  pointer-events:none;
  z-index:0;
  overflow:hidden;
}

.ng-curtains span{
  position:absolute;
  top:-8%;
  width:30vw;
  min-width:280px;
  height:120%;
  border-radius:50%;
  filter:blur(.5px);
  opacity:.58;
  animation:ngCurtain 9s ease-in-out infinite;
}

.ng-curtains span:nth-child(1){
  left:48%;
  background:linear-gradient(180deg,rgba(255,196,217,.48),rgba(255,238,181,.34));
}

.ng-curtains span:nth-child(2){
  left:66%;
  background:linear-gradient(180deg,rgba(178,224,231,.44),rgba(207,231,183,.32));
  animation-delay:-3s;
}

.ng-curtains span:nth-child(3){
  left:82%;
  background:linear-gradient(180deg,rgba(255,211,156,.42),rgba(244,154,143,.28));
  animation-delay:-6s;
}

.ng-pastel-dots{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
}

.ng-pastel-dots span{
  position:absolute;
  width:18px;
  aspect-ratio:1;
  border-radius:50%;
  animation:ngPop 5.6s ease-in-out infinite;
}

.ng-pastel-dots span:nth-child(1){
  left:12%;
  top:22%;
  background:#F6CF5B;
}

.ng-pastel-dots span:nth-child(2){
  left:34%;
  top:18%;
  background:#F49A8F;
  animation-delay:-1s;
}

.ng-pastel-dots span:nth-child(3){
  right:30%;
  top:26%;
  background:#83BFCE;
  animation-delay:-2s;
}

.ng-pastel-dots span:nth-child(4){
  right:14%;
  top:18%;
  background:#9CC9B0;
  animation-delay:-3s;
}

.ng-pastel-dots span:nth-child(5){
  left:44%;
  bottom:16%;
  background:#F6B8CF;
  animation-delay:-4s;
}

.ng-hero::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:130px;
  background:linear-gradient(90deg,#F8B66C 0 22%,#F49A8F 22% 44%,#9CC9B0 44% 66%,#83BFCE 66% 82%,#F6CF5B 82% 100%);
  clip-path:polygon(0 78%,100% 30%,100% 100%,0 100%);
  opacity:.38;
}

.ng-hero-word{
  position:absolute;
  left:2vw;
  right:0;
  top:94px;
  max-width:98vw;
  overflow:hidden;
  color:rgba(209,111,89,.055);
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:clamp(4rem,12vw,11rem);
  font-weight:700;
  line-height:.9;
  letter-spacing:.04em;
  white-space:nowrap;
  pointer-events:none;
  z-index:1;
}

.ng-hero-copy{
  max-width:900px;
  position:relative;
  z-index:5;
  padding-top:clamp(8px,2.5vh,28px);
}

.ng-hero-site{
  display:inline-grid;
  justify-items:center;
  margin-top:18px;
  min-width:min(560px,100%);
  padding:14px 28px 18px;
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,238,231,.96));
  border:2px solid rgba(244,154,143,.34);
  box-shadow:0 18px 42px rgba(93,73,58,.14),0 0 0 7px rgba(255,255,255,.36);
  backdrop-filter:blur(12px);
  text-align:center;
}

.ng-hero-site span{
  color:#52635A;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:clamp(.92rem,1.3vw,1.08rem);
  font-weight:700;
  line-height:1.2;
}

.ng-hero-site strong{
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:clamp(1.9rem,3vw,3rem);
  font-weight:700;
  line-height:1.08;
  letter-spacing:0;
  font-variant-east-asian:proportional-width;
  font-feature-settings:"palt" 1;
  white-space:nowrap;
}

.ng-hero h1{
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  max-width:min(1040px,62vw);
  font-size:clamp(4.2rem,6.55vw,7.35rem);
  line-height:1.14;
  margin:0;
  color:#304238;
  letter-spacing:.02em;
  text-shadow:0 14px 34px rgba(48,66,56,.08);
}

.ng-hero h1 span{
  display:block;
  white-space:nowrap;
  position:relative;
  width:max-content;
  max-width:100%;
}

.ng-hero h1 span:nth-child(2){
  display:inline-block;
}

.ng-hero h1 span:nth-child(3){
  display:inline-block;
  margin-left:.18em;
}

.ng-hero h1 span::after{
  content:"";
  position:absolute;
  left:.04em;
  right:-.04em;
  bottom:.08em;
  height:.2em;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(246,200,70,.7),rgba(244,154,143,.45),rgba(131,191,206,.4));
  z-index:-1;
}

.ng-hero h1 b{
  color:#D16F59;
  font-weight:800;
}

.ng-hero-actions{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:28px;
}

.ng-hero-actions a{
  padding:18px 38px;
  background:linear-gradient(135deg,#C95D4F,#DF795F);
  color:#fff;
  font-size:1.05rem;
  box-shadow:0 16px 34px rgba(201,93,79,.34),0 4px 0 rgba(157,63,51,.18);
}

.ng-hero-actions a:nth-child(2){
  background:rgba(255,255,255,.94);
  color:#C95D4F;
  border:2px solid rgba(201,93,79,.28);
  box-shadow:0 14px 30px rgba(84,67,54,.13);
}

.ng-photo-collage{
  position:relative;
  min-height:clamp(640px,34vw,720px);
  margin-top:14px;
  margin-left:0;
}

.ng-photo{
  position:absolute;
  overflow:hidden;
  background:#fff;
  box-shadow:0 22px 60px rgba(93,73,58,.15);
  animation:ngFloat 7s ease-in-out infinite;
}

.ng-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.ng-photo.p1 img{
  object-position:52% 45%;
}

.ng-photo.p2 img{
  object-position:50% 45%;
}

.ng-photo.p3 img{
  object-position:50% 18%;
}

.ng-photo.p1{
  width:90%;
  height:84%;
  right:0;
  top:0;
  border-radius:50% 50% 26px 50%;
}

.ng-photo.p2{
  width:56%;
  height:44%;
  left:clamp(34px,3.8vw,70px);
  bottom:54px;
  border-radius:28px 56px 28px 28px;
  border:10px solid #FFF9F3;
  animation-delay:-2s;
}

.ng-photo.p3{
  width:44%;
  height:35%;
  right:6%;
  bottom:0;
  border-radius:999px;
  border:10px solid #FFF9F3;
  animation-delay:-4s;
}

.ng-hero-badge{
  position:absolute;
  right:auto;
  left:clamp(-72px,-4vw,-36px);
  top:210px;
  z-index:4;
  display:grid;
  place-items:center;
  width:142px;
  height:142px;
  border-radius:50%;
  background:linear-gradient(145deg,#D16F59,#F49A8F);
  color:#fff;
  border:9px solid rgba(255,249,243,.9);
  box-shadow:0 20px 44px rgba(209,111,89,.28);
  transform:rotate(7deg);
  animation:ngSoftFloat 5.8s ease-in-out infinite;
}

.ng-hero-badge span{
  display:block;
}

.ng-hero-badge strong{
  font-family:"Zen Maru Gothic",sans-serif;
  display:grid;
  gap:4px;
  place-items:center;
  font-size:1.5rem;
  line-height:1.04;
  letter-spacing:.03em;
  text-align:center;
  text-shadow:0 2px 10px rgba(137,65,52,.18);
}

.ng-hero-badge em{
  font-style:normal;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.82rem;
  color:#FFE69A;
  line-height:1;
}

.ng-handline{
  position:absolute;
  left:5%;
  top:10%;
  z-index:3;
  color:#7FA089;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  transform:rotate(-7deg);
}

.ng-handline::after{
  content:"";
  position:absolute;
  left:0;
  right:-18px;
  bottom:-8px;
  height:12px;
  border-bottom:3px solid #F0B66D;
  border-radius:50%;
}

.ng-circle-text{
  position:absolute;
  left:clamp(420px,40vw,560px);
  bottom:clamp(36px,5vh,64px);
  width:104px;
  height:104px;
  border-radius:50%;
  display:grid;
  place-items:center;
  padding-bottom:20px;
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.14em;
  border:2px dashed rgba(209,111,89,.45);
  background:rgba(255,255,255,.82);
  box-shadow:0 14px 32px rgba(93,73,58,.12);
  z-index:7;
  animation:ngScrollNudge 2.6s ease-in-out infinite;
}

.ng-circle-text::after{
  content:"↓";
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  color:#D16F59;
  font-size:1.65rem;
  line-height:1;
  text-shadow:0 8px 18px rgba(209,111,89,.2);
}

.ng-marquee{
  overflow:hidden;
  background:linear-gradient(90deg,#304238,#5E8F7B,#E49B80,#304238);
  color:#fff;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  letter-spacing:.12em;
  white-space:nowrap;
  position:relative;
  z-index:3;
}

.ng-marquee div{
  display:flex;
  width:max-content;
  animation:ngMarquee 28s linear infinite;
}

.ng-marquee span{
  display:inline-block;
  padding:16px 28px;
}

.ng-marquee span:nth-child(2n){
  color:#F6CF5B;
}

.ng-marquee span:nth-child(3n){
  color:#A7D6E2;
}

/* ========== message ========== */
.ng-message{
  padding:36px 0 64px;
  background:radial-gradient(circle at 10% 18%,rgba(246,207,91,.16),transparent 22vw),
    radial-gradient(circle at 92% 8%,rgba(244,154,143,.12),transparent 24vw),
    radial-gradient(circle at 86% 92%,rgba(131,191,206,.16),transparent 24vw),
    linear-gradient(90deg,rgba(156,201,176,.12) 0 1px,transparent 1px 100%),
    linear-gradient(180deg,#FFFDF8 0%,#F7FBF3 100%);
  background-size:auto,auto,auto,72px 100%,auto;
}

.ng-message h2{
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:clamp(2rem,5vw,3.4rem);
  line-height:1.45;
  color:#304238;
  margin-top:18px;
}

.ng-message-body{
  position:relative;
  z-index:3;
  display:block;
  max-width:calc(100% - 78px);
  margin:-18px 38px 0 78px;
  padding:76px 80px 58px;
  border:1px solid rgba(245,223,212,.9);
  border-radius:42px;
  border-top-color:rgba(245,223,212,.55);
  background:rgba(255,255,255,.88);
  box-shadow:0 28px 62px rgba(93,73,58,.08);
  backdrop-filter:blur(10px);
  color:#6A7871;
  overflow:visible;
}

.ng-message-body p+p{
  margin-top:28px;
}

.ng-message-copy{
  position:relative;
  display:block;
  min-height:0;
  padding:10px 0 0 34px;
}

.ng-message-copy h2{
  margin:0;
  color:#304238;
  font-size:clamp(2.35rem,4vw,3.9rem);
  line-height:1.34;
  letter-spacing:0;
}

.ng-message-card{
  position:relative;
  overflow:hidden;
  padding:8px 40px 26px;
}

.ng-message-top{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:minmax(500px,1fr) minmax(360px,.88fr);
  gap:40px;
  align-items:start;
  min-height:0;
}

.ng-message-copy::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:8px;
  width:4px;
  border-radius:999px;
  background:#304238;
}

.ng-message-copy .ng-section-label{
  width:min(100%,560px);
  margin:0 0 64px;
  background:rgba(255,255,255,.88);
  box-shadow:0 14px 34px rgba(93,73,58,.06);
}

.ng-message-photo{
  position:relative;
  top:18px;
  justify-self:center;
  width:min(100%,320px);
  margin:14px auto -54px;
  padding:14px 14px 24px;
  isolation:isolate;
  z-index:5;
  transform:rotate(2deg);
}

.ng-message-photo::before{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(245,223,212,.86);
  border-radius:42px 42px 42px 18px;
  background:rgba(255,255,255,.7);
  z-index:-2;
}

.ng-message-photo img{
  display:block;
  width:min(100%,220px);
  height:246px;
  margin:0 auto;
  object-fit:cover;
  object-position:center top;
  border:8px solid rgba(255,255,255,.94);
  box-shadow:0 22px 48px rgba(93,73,58,.14);
  clip-path:none;
  border-radius:28px;
  transform:rotate(-.7deg);
}

.ng-message-photo figcaption{
  position:absolute;
  left:50%;
  bottom:-14px;
  z-index:6;
  width:min(100%,250px);
  margin:0;
  padding:10px 14px;
  border:1px solid rgba(245,223,212,.86);
  border-radius:999px;
  background:rgba(255,255,255,.9);
  color:#304238;
  text-align:center;
  box-shadow:0 12px 28px rgba(93,73,58,.08);
  transform:translateX(-50%) rotate(1.2deg);
}

.ng-message-photo figcaption span{
  display:block;
  color:#6A7871;
  font-size:.74rem;
  font-weight:700;
  line-height:1.5;
}

.ng-message-photo figcaption strong{
  display:block;
  margin-top:2px;
  font-size:.96rem;
  line-height:1.4;
}

.ng-message-photo-shadow{
  position:absolute;
  left:54px;
  right:54px;
  bottom:4px;
  height:42px;
  border-radius:50%;
  background:rgba(93,73,58,.2);
  filter:blur(16px);
  transform:rotate(2deg);
  z-index:-1;
}

.ng-message-body::before{
  content:"";
  position:absolute;
  right:72px;
  top:26px;
  width:120px;
  height:14px;
  border-radius:999px;
  background:linear-gradient(90deg,#F7D466 0 12px,#9CC9B0 12px 24px,#F49A8F 24px 36px,rgba(245,223,212,.55) 36px 100%);
  opacity:.72;
}

.ng-message-body p{
  position:relative;
  z-index:1;
  max-width:920px;
  font-size:clamp(1.02rem,1.45vw,1.24rem);
  line-height:2;
  letter-spacing:.04em;
}

.ng-message-body__lead{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  color:#D37361 !important;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  line-height:1.5 !important;
}

.ng-message-body__lead::before{
  content:"";
  width:34px;
  height:2px;
  border-radius:999px;
  background:#D37361;
}

/* ========== support / training / organization ========== */
.ng-roadmap-steps h3,
.ng-org-head h3{
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:1.08rem;
  margin:10px 0 8px;
  color:#304238;
}

.ng-split-head p,
.ng-job p,
.ng-voice span,
.ng-entry-card p,
.ng-faq p,
.ng-roadmap-steps p,
.ng-org-head p{
  color:#617169;
  font-size:.92rem;
}

.ng-support{
  position:relative;
  scroll-margin-top:92px;
  padding:54px 0 72px;
  background:radial-gradient(circle at 12% 18%,rgba(246,207,91,.16),transparent 22vw),
    linear-gradient(105deg,rgba(131,191,206,.16),rgba(255,249,243,.82) 50%,rgba(244,154,143,.14)),
    #FFFDF8;
  overflow:hidden;
}

.ng-support .wrap,
.ng-talk .wrap{
  position:relative;
}

.ng-support .ng-split-head{
  max-width:960px;
}

.ng-org-head h3{
  font-size:clamp(1.55rem,2.4vw,2.15rem);
  line-height:1.45;
}

.ng-org-head{
  position:relative;
  z-index:1;
}

.ng-org-head .ng-roadmap-section-label{
  color:#304238;
  font-size:1.28rem;
}

.ng-org-head .ng-roadmap-note{
  margin-bottom:0;
}

.ng-training-roadmap{
  position:relative;
  z-index:2;
  scroll-margin-top:110px;
  margin-top:28px;
  border:1px solid rgba(246,207,91,.42);
  box-shadow:0 18px 48px rgba(93,73,58,.09);
  overflow:hidden;
  border-radius:42px;
  background:radial-gradient(circle at 10% 18%,rgba(246,207,91,.22),transparent 24%),
    radial-gradient(circle at 94% 18%,rgba(244,154,143,.18),transparent 26%),
    radial-gradient(circle at 64% 100%,rgba(131,191,206,.18),transparent 34%),
    linear-gradient(135deg,rgba(255,255,255,.97),rgba(255,249,243,.9) 48%,rgba(238,248,245,.88));
  padding:58px 52px 64px;
}

.ng-training-roadmap::before{
  display:none;
}

.ng-roadmap-section-label{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  color:#304238;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:1.28rem;
  font-weight:700;
  padding:10px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.76);
  box-shadow:0 14px 26px rgba(93,73,58,.08);
  min-width:0;
}

.ng-roadmap-section-label::before{
  content:"";
  width:38px;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,#F6CF5B,#F49A8F,#83BFCE);
}

.ng-roadmap-note{
  width:fit-content;
  max-width:min(100%,820px);
  margin:0 0 28px;
  padding:14px 24px;
  border-radius:18px;
  background:rgba(255,255,255,.9);
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  text-align:left;
  box-shadow:0 10px 24px rgba(93,73,58,.08);
  border:1px solid rgba(245,223,212,.78);
}

.ng-roadmap-steps{
  position:relative;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  counter-reset:roadmap;
  gap:22px;
  align-items:stretch;
  justify-content:center;
  min-height:0;
  max-width:1040px;
  margin:0 auto;
  padding-bottom:0;
  padding-top:28px;
}

.ng-roadmap-steps article{
  position:relative;
  z-index:1;
  grid-column:span 2;
  justify-content:flex-start;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.82));
  border-radius:30px;
  border:1px solid rgba(255,255,255,.86);
  box-shadow:0 18px 42px rgba(93,73,58,.1);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:300px;
  padding:26px 20px 24px;
}

.ng-roadmap-steps article:nth-child(4){
  grid-column:2 / span 2;
}

.ng-roadmap-steps article:nth-child(5){
  grid-column:4 / span 2;
}

.ng-roadmap-steps article:nth-child(1){
  background:linear-gradient(180deg,#FFF9D9,#fff);
}

.ng-roadmap-steps article:nth-child(2){
  background:linear-gradient(180deg,#FFEDE6,#fff);
}

.ng-roadmap-steps article:nth-child(3){
  background:linear-gradient(180deg,#EAF6F8,#fff);
}

.ng-roadmap-steps article:nth-child(4){
  background:linear-gradient(180deg,#EAF1E5,#fff);
}

.ng-roadmap-steps article:nth-child(5){
  background:linear-gradient(180deg,#EEF5FF,#fff);
}

.ng-roadmap-steps article::before{
  counter-increment:roadmap;
  content:"";
  position:absolute;
  left:20px;
  top:22px;
  z-index:-1;
  display:block;
  margin:0;
  border-radius:999px;
  background:linear-gradient(145deg,#F6CF5B,#F49A8F);
  width:46px;
  height:46px;
  opacity:.18;
  box-shadow:none;
}

.ng-roadmap-steps article::after{
  display:none;
}

.ng-roadmap-steps span{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  padding:6px 14px;
  border-radius:999px;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.8rem;
  background:rgba(255,255,255,.82);
  color:#D16F59;
  white-space:nowrap;
}

.ng-roadmap-card-head{
  position:relative;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  min-height:64px;
}

.ng-roadmap-illust{
  display:none;
}

.ng-roadmap-card-head::after{
  content:"";
  position:absolute;
  right:2px;
  top:2px;
  width:92px;
  height:50px;
  border-radius:20px;
  opacity:.8;
  pointer-events:none;
  background:
    radial-gradient(circle at 35% 54%,rgba(156,201,176,.7) 0 8px,transparent 9px),
    radial-gradient(circle at 64% 54%,rgba(131,191,206,.56) 0 8px,transparent 9px),
    linear-gradient(90deg,transparent 0 34%,rgba(156,201,176,.32) 34% 64%,transparent 64%),
    radial-gradient(ellipse at 50% 52%,rgba(246,207,91,.24),transparent 68%);
  transform:rotate(-4deg);
}

.ng-roadmap-steps article:nth-child(2) .ng-roadmap-card-head::after{
  border-radius:18px;
  background:
    radial-gradient(circle at 23% 29%,rgba(244,154,143,.56) 0 5px,transparent 6px),
    radial-gradient(circle at 23% 53%,rgba(246,207,91,.62) 0 5px,transparent 6px),
    radial-gradient(circle at 23% 77%,rgba(156,201,176,.52) 0 5px,transparent 6px),
    linear-gradient(90deg,transparent 0 36%,rgba(244,154,143,.34) 36% 78%,transparent 78%),
    linear-gradient(90deg,transparent 0 36%,rgba(246,207,91,.32) 36% 72%,transparent 72%),
    linear-gradient(90deg,transparent 0 36%,rgba(156,201,176,.3) 36% 82%,transparent 82%),
    radial-gradient(ellipse at 55% 52%,rgba(244,154,143,.18),transparent 70%);
  background-size:100% 100%,100% 100%,100% 100%,100% 2px,100% 2px,100% 2px,100% 100%;
  background-position:0 0,0 0,0 0,0 31%,0 54%,0 77%,0 0;
  background-repeat:no-repeat;
  transform:rotate(3deg);
}

.ng-roadmap-steps article:nth-child(3) .ng-roadmap-card-head::after{
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,rgba(131,191,206,.58) 0 6px,transparent 7px),
    radial-gradient(circle at 50% 50%,transparent 0 14px,rgba(131,191,206,.34) 15px 17px,transparent 18px),
    radial-gradient(circle at 50% 50%,transparent 0 25px,rgba(156,201,176,.28) 26px 28px,transparent 29px),
    linear-gradient(90deg,transparent 0 48%,rgba(246,207,91,.42) 48% 52%,transparent 52%),
    linear-gradient(0deg,transparent 0 48%,rgba(246,207,91,.42) 48% 52%,transparent 52%),
    radial-gradient(ellipse at 50% 52%,rgba(131,191,206,.16),transparent 70%);
  transform:rotate(-3deg);
}

.ng-roadmap-steps article:nth-child(4) .ng-roadmap-card-head::after{
  border-radius:18px;
  background:
    radial-gradient(ellipse at 32% 42%,rgba(156,201,176,.48) 0 15px,transparent 16px),
    radial-gradient(ellipse at 62% 52%,rgba(131,191,206,.42) 0 16px,transparent 17px),
    radial-gradient(circle at 34% 42%,rgba(255,255,255,.78) 0 3px,transparent 4px),
    radial-gradient(circle at 50% 42%,rgba(255,255,255,.78) 0 3px,transparent 4px),
    radial-gradient(circle at 58% 52%,rgba(255,255,255,.78) 0 3px,transparent 4px),
    radial-gradient(circle at 74% 52%,rgba(255,255,255,.78) 0 3px,transparent 4px),
    radial-gradient(ellipse at 50% 52%,rgba(246,207,91,.16),transparent 72%);
  transform:rotate(4deg);
}

.ng-roadmap-steps article:nth-child(5) .ng-roadmap-card-head::after{
  border-radius:20px;
  background:
    radial-gradient(circle at 20% 66%,rgba(131,191,206,.5) 0 6px,transparent 7px),
    radial-gradient(circle at 47% 47%,rgba(156,201,176,.44) 0 5px,transparent 6px),
    radial-gradient(circle at 73% 31%,rgba(244,154,143,.46) 0 6px,transparent 7px),
    linear-gradient(135deg,transparent 0 24%,rgba(131,191,206,.36) 24% 28%,transparent 28% 45%,rgba(156,201,176,.34) 45% 49%,transparent 49%),
    linear-gradient(135deg,transparent 0 70%,rgba(246,207,91,.38) 70% 76%,transparent 76%),
    radial-gradient(ellipse at 52% 52%,rgba(131,191,206,.14),transparent 72%);
  transform:rotate(-5deg);
}

.ng-roadmap-steps h3{
  margin:10px 0 10px;
  font-size:clamp(1.34rem,1.8vw,1.58rem);
  line-height:1.42;
  word-break:keep-all;
  display:inline-block;
  align-self:flex-start;
  width:fit-content;
  max-width:100%;
  padding:0 .08em .03em;
  background:linear-gradient(transparent 58%,rgba(246,207,91,.5) 58%,rgba(244,154,143,.26) 88%,transparent 88%);
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

.ng-roadmap-steps p{
  margin:0;
  line-height:1.78;
}

.ng-support-org{
  position:relative;
  z-index:2;
  scroll-margin-top:110px;
  display:grid;
  grid-template-columns:1fr;
  gap:26px;
  align-items:start;
  margin-top:28px;
  padding:40px;
  border:1px solid rgba(127,160,137,.28);
  box-shadow:0 18px 48px rgba(93,73,58,.09);
  overflow:hidden;
  border-radius:42px;
  background:radial-gradient(circle at 10% 18%,rgba(246,207,91,.18),transparent 28%),
    radial-gradient(circle at 94% 82%,rgba(131,191,206,.2),transparent 34%),
    linear-gradient(135deg,rgba(235,245,237,.94),rgba(255,255,255,.96));
}

.ng-org-chart{
  --org-green:#304238;
  --org-muted:#617169;
  --org-coral:#D37361;
  --org-blue:#5F9CCD;
  --org-teal:#55B8AA;
  --org-leaf:#96C985;
  position:relative;
  display:grid;
  gap:22px;
  min-height:0;
  padding:34px;
  border-radius:36px;
  border:1px solid rgba(245,223,212,.86);
  background:radial-gradient(circle at 18% 18%,rgba(246,207,91,.18),transparent 28%),
    radial-gradient(circle at 88% 12%,rgba(131,191,206,.16),transparent 24%),
    linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,249,243,.88));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.78),0 18px 42px rgba(93,73,58,.08);
  font-family:"Zen Maru Gothic",sans-serif;
  color:var(--org-green);
  overflow:hidden;
}

.ng-org-pyramid{
  position:relative;
  z-index:1;
  width:100%;
  max-width:980px;
  margin:0 auto;
  padding:0;
  list-style:none;
  display:grid;
  gap:18px;
  justify-items:center;
}

.ng-org-pyramid::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  width:3px;
  height:100%;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(95,156,205,.26),rgba(85,184,170,.24),rgba(150,201,133,.26));
  transform:translateX(-50%);
}

.ng-org-tier{
  --tier-width:64%;
  --tier-color:var(--org-blue);
  position:relative;
  z-index:1;
  width:var(--tier-width);
  min-width:0;
  display:grid;
  grid-template-columns:minmax(180px,.42fr) minmax(0,.58fr);
  align-items:center;
  gap:18px;
  padding:18px 24px;
  border-radius:28px;
  background:linear-gradient(135deg,var(--tier-color),color-mix(in srgb,var(--tier-color) 78%,#fff 22%));
  color:#fff;
  box-shadow:0 14px 26px rgba(93,73,58,.11);
}

.ng-org-tier + .ng-org-tier::before{
  content:"↓";
  position:absolute;
  left:50%;
  top:-21px;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#fff;
  color:var(--tier-color);
  font-size:.92rem;
  font-weight:700;
  transform:translateX(-50%);
  box-shadow:0 6px 14px rgba(93,73,58,.08);
}

.ng-org-tier--director{ --tier-width:48%; --tier-color:#5F9CCD; }
.ng-org-tier--chief{ --tier-width:58%; --tier-color:#6EAAD2; }
.ng-org-tier--lead{ --tier-width:68%; --tier-color:#55B8AA; }
.ng-org-tier--sublead{ --tier-width:78%; --tier-color:#70C0B2; }
.ng-org-tier--teamlead{ --tier-width:88%; --tier-color:#96C985; }

.ng-org-role-main{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.ng-org-role-name{
  font-weight:700;
  font-size:clamp(1.35rem,2.2vw,2rem);
  line-height:1.25;
  word-break:keep-all;
}

.ng-org-count{
  flex:0 0 auto;
  padding:5px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.24);
  border:1px solid rgba(255,255,255,.38);
  font-size:.84rem;
  font-weight:700;
  line-height:1.35;
  white-space:nowrap;
}

.ng-org-tier p{
  margin:0;
  font-size:clamp(.9rem,1.2vw,1.05rem);
  font-weight:700;
  line-height:1.6;
}

.ng-org-members{
  position:relative;
  z-index:1;
  width:min(100%,1040px);
  margin:6px auto 0;
  padding:22px 24px;
  border-radius:34px;
  background:#fffefa;
  border:2px solid rgba(150,201,133,.68);
  box-shadow:0 16px 30px rgba(93,73,58,.08);
}

.ng-org-members-head{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:16px;
}

.ng-org-members .ng-org-role-name{
  color:#328069;
  font-size:clamp(1.35rem,2vw,1.9rem);
}

.ng-org-members .ng-org-count{
  color:#5d7469;
  background:#eff9eb;
  border-color:#bfe2b8;
}

.ng-org-newgraduate{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:18px;
  max-width:760px;
  margin:0 auto;
  padding:18px 24px;
  border-radius:999px;
  background:#fff2ec;
  border:2px solid rgba(211,115,97,.38);
  color:var(--org-coral);
}

.ng-org-newgraduate > span{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border-radius:50%;
  background:linear-gradient(180deg,#fff,#fff7ee);
  border:3px solid rgba(255,255,255,.96);
  color:var(--org-coral);
  font-weight:700;
  box-shadow:0 12px 22px rgba(93,73,58,.1);
}

.ng-org-newgraduate > span img{
  display:block;
  width:100%;
  height:100%;
  border-radius:50%;
  object-fit:contain;
}

.ng-org-newgraduate strong{
  display:block;
  font-size:clamp(1.5rem,2.2vw,2.2rem);
  line-height:1.25;
  word-break:keep-all;
}

.ng-org-newgraduate p{
  margin:4px 0 0;
  color:var(--org-muted);
  font-size:.92rem;
  font-weight:700;
  line-height:1.7;
}

.ng-support::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(246,207,91,.12) 1px,transparent 1px),
    linear-gradient(rgba(127,160,137,.1) 1px,transparent 1px);
  background-size:88px 88px;
  mask-image:linear-gradient(180deg,transparent,black 18%,black 78%,transparent);
  pointer-events:none;
}

.ng-training-roadmap::after{
  content:"";
  position:absolute;
  right:38px;
  bottom:24px;
  width:170px;
  height:104px;
  background:url("assets/illustration-parts/cutouts/split/rehab-20.webp") center/contain no-repeat;
  opacity:.26;
  transform:rotate(-3deg);
  pointer-events:none;
}

.ng-roadmap-deco{
  position:absolute;
  pointer-events:none;
  z-index:0;
  filter:drop-shadow(0 16px 24px rgba(93,73,58,.08));
}

.ng-roadmap-deco-bars{
  width:164px;
  right:28px;
  top:30px;
  opacity:.24;
  transform:rotate(7deg);
}

.ng-roadmap-deco-note{
  width:88px;
  left:34px;
  bottom:36px;
  opacity:.28;
  transform:rotate(-10deg);
}

.ng-roadmap-deco-line{
  width:210px;
  left:42%;
  top:42px;
  opacity:.34;
  transform:rotate(-4deg);
}

.ng-roadmap-deco-confetti{
  width:96px;
  right:18%;
  bottom:62px;
  opacity:.26;
  transform:rotate(8deg);
}

.ng-roadmap-section-label,
.ng-roadmap-note,
.ng-roadmap-steps{
  position:relative;
  z-index:1;
}

.ng-org-deco{
  position:absolute;
  pointer-events:none;
  z-index:1;
}

.ng-org-deco-person{
  width:96px;
  left:28px;
  bottom:24px;
  opacity:.32;
  transform:rotate(-5deg);
}

.ng-org-deco-speech{
  width:126px;
  right:28px;
  top:26px;
  opacity:.18;
  transform:rotate(6deg);
}

.ng-roadmap-steps::before{
  display:none;
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:105px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#F6CF5B,#F49A8F,#83BFCE,#7FA089);
  opacity:.48;
}

.ng-roadmap-steps small{
  width:max-content;
  margin:4px 0 16px;
  padding:7px 16px;
  border-radius:999px;
  background:#F7FBF3;
  color:#55745E;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:clamp(.9rem,1.15vw,1.02rem);
  line-height:1.35;
  display:inline-flex;
}

.ng-roadmap-detail{
  margin-top:auto;
  padding-top:16px;
  border-top:1px dashed rgba(209,111,89,.28);
  font-family:"Zen Maru Gothic",sans-serif;
}

.ng-roadmap-detail dt{
  display:inline-flex;
  width:max-content;
  margin:0 0 8px;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(127,160,137,.14);
  color:#55745E;
  font-size:.74rem;
  font-weight:700;
}

.ng-roadmap-detail dd{
  margin:0;
  color:#304238;
  font-size:.9rem;
  line-height:1.65;
  font-weight:700;
}

.ng-roadmap-steps article h3{
  margin-top:16px;
}

/* ========== jobs ========== */
.ng-hero-copy>:not(.ng-cutout),
.ng-jobs .wrap>:not(.ng-cutout),
.ng-people .wrap>:not(.ng-cutout){
  position:relative;
  z-index:2;
}

.ng-jobs .wrap,
.ng-people .wrap{
  position:relative;
}

.ng-hero-actions a{
  text-decoration:none;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  border-radius:999px;
  transition:transform .25s,box-shadow .25s,background .25s,color .25s;
}

.ng-hero-actions a:hover{
  transform:translateY(-2px);
}

.ng-jobs{
  padding:60px 0 78px;
  background:linear-gradient(135deg,rgba(156,201,176,.26),rgba(131,191,206,.16)),
    #F5F8EF;
  overflow:hidden;
}

.ng-job-list{
  display:grid;
  gap:24px;
  align-items:stretch;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:860px;
  margin:0 auto;
}

.ng-job{
  grid-template-columns:1fr;
  gap:0;
  background:#fff;
  border-radius:30px;
  box-shadow:0 16px 46px rgba(74,91,78,.12);
  border:1px solid rgba(255,255,255,.8);
  display:flex;
  flex-direction:column;
  min-height:100%;
  overflow:hidden;
  text-align:left;
}

.ng-job img{
  object-fit:cover;
  object-position:center 38%;
  width:100%;
  height:230px;
  min-height:0;
}

.ng-job:nth-child(2) img{
  object-position:76% 38%;
}

.ng-job div{
  justify-content:center;
  display:flex;
  flex:1;
  flex-direction:column;
  padding:30px 26px 28px;
}

.ng-job h3{
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  color:#304238;
  font-size:2rem;
  margin:2px 0 10px;
}

.ng-number-grid article,
.ng-gallery,
.ng-faq,
.ng-voice div,
.ng-job div{
  position:relative;
}

.ng-number-grid article::before,
.ng-gallery::before,
.ng-gallery::after,
.ng-faq::after,
.ng-voice div::before,
.ng-job div::after{
  content:"";
  position:absolute;
  pointer-events:none;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

.ng-job div::after{
  right:26px;
  bottom:24px;
  width:76px;
  height:76px;
  opacity:.16;
  background-image:url("assets/illustration-parts/cutouts/split/decorative-35.webp");
}

.ng-job:nth-child(2) div::after{
  background-image:url("assets/illustration-parts/cutouts/split/decorative-40.webp");
  width:84px;
  height:84px;
}

.ng-job .ng-job-abbr{
  margin:0 0 8px;
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:clamp(3.1rem,4.8vw,4.15rem);
  font-weight:700;
  letter-spacing:0;
  line-height:.78;
}

.ng-job:nth-child(2) .ng-job-abbr{
  color:#7FA089;
}

.ng-job-entry{
  align-self:center;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  min-width:220px;
  margin-top:22px;
  padding:13px 30px;
  border-radius:999px;
  background:#304238;
  color:#fff;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  text-decoration:none;
  text-align:center;
  box-shadow:0 14px 32px rgba(48,66,56,.18);
  transition:background .25s,transform .25s,box-shadow .25s;
}

.ng-job-entry:hover{
  background:#26382f;
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(48,66,56,.24);
}

/* ========== people ========== */
.ng-people{
  padding:60px 0 78px;
  background:radial-gradient(circle at 82% 22%,rgba(246,207,91,.18),transparent 22vw),
    linear-gradient(100deg,transparent 0 8%,rgba(244,154,143,.16) 8% 52%,transparent 52% 100%),
    #FFF9F3;
  overflow:hidden;
}

.ng-voice-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  max-width:1040px;
  margin:0 auto;
}

.ng-voice{
  padding:0;
  text-align:left;
  font:inherit;
  color:inherit;
  cursor:pointer;
  background:#fff;
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 16px 42px rgba(93,73,58,.1);
  transition:transform .28s,box-shadow .28s;
  border:1px solid rgba(245,223,212,.82);
}

.ng-voice:hover{
  transform:translateY(-8px);
  box-shadow:0 22px 54px rgba(93,73,58,.15);
}

.ng-voice img{
  width:100%;
  height:230px;
  object-fit:cover;
  object-position:center 28%;
  display:block;
}

.ng-voice[data-interview="pt"] img{
  object-position:center 18%;
}

.ng-voice[data-interview="ot"] img{
  object-position:center 36%;
}

.ng-voice div{
  padding:24px 26px 26px;
}

.ng-voice p{
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.78rem;
  margin-bottom:10px;
}

.ng-voice h3{
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  line-height:1.55;
  font-size:1.24rem;
  color:#304238;
  margin-bottom:12px;
}

.ng-voice span{
  display:block;
}

.ng-voice strong{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:18px;
  color:#fff;
  background:#D16F59;
  border-radius:999px;
  padding:10px 18px;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.86rem;
  box-shadow:0 8px 18px rgba(209,111,89,.24);
}

.ng-voice strong::after{
  content:"→";
}

.ng-voice:focus-visible{
  outline:4px solid rgba(105,175,192,.45);
  outline-offset:5px;
}

.ng-voice div::before{
  right:24px;
  top:24px;
  width:44px;
  height:44px;
  opacity:.2;
  background-image:url("assets/illustration-parts/cutouts/split/decorative-23.webp");
}

.ng-voice:nth-child(2n) div::before{
  background-image:url("assets/illustration-parts/cutouts/split/decorative-16.webp");
}

.ng-voice:nth-child(3n) div::before{
  background-image:url("assets/illustration-parts/cutouts/split/decorative-27.webp");
}

/* ========== numbers ========== */
.ng-numbers{
  padding:56px 24px 84px;
  position:relative;
  background:radial-gradient(circle at 12% 18%,rgba(246,207,91,.2),transparent 24%),
    radial-gradient(circle at 84% 24%,rgba(131,191,206,.22),transparent 28%),
    radial-gradient(circle at 72% 86%,rgba(244,154,143,.18),transparent 30%),
    linear-gradient(135deg,rgba(255,249,243,.96),rgba(232,243,231,.78) 45%,rgba(232,246,249,.7));
  overflow:hidden;
  background-color:#F7FBF3;
  background-image:radial-gradient(circle at 12% 12%,rgba(246,207,91,.18),transparent 24%),
    radial-gradient(circle at 88% 18%,rgba(131,191,206,.2),transparent 26%),
    linear-gradient(rgba(255,255,255,.58) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.58) 1px,transparent 1px),
    linear-gradient(135deg,rgba(255,249,243,.96),rgba(237,247,241,.86) 58%,rgba(232,246,249,.76));
  background-size:auto,auto,42px 42px,42px 42px,auto;
}

.ng-numbers>:not(.ng-cutout),
.ng-gallery .wrap>:not(.ng-cutout),
.ng-talk .wrap>:not(.ng-cutout),
.ng-faq>:not(.ng-cutout){
  position:relative;
  z-index:2;
}

.ng-number-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:22px;
}

.ng-number-grid article{
  grid-column:span 2;
  background:rgba(255,255,255,.86);
  border-radius:26px;
  min-height:190px;
  padding:28px 22px 26px;
  text-align:center;
  box-shadow:0 16px 38px rgba(93,73,58,.1);
  transition:transform .25s,box-shadow .25s;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background-color:rgba(255,255,255,.9);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border:1px solid rgba(255,255,255,.82);
}

.ng-number-grid article:nth-child(-n+3){
  min-height:242px;
  padding:30px 26px 28px;
}

.ng-number-grid article:nth-child(n+4){
  min-height:172px;
  padding:24px 20px 22px;
}

.ng-number-grid article:nth-child(7),
.ng-number-grid article:nth-child(8){
  grid-column:span 3;
  min-height:220px;
}

.ng-number-grid article:nth-child(1){
  background:linear-gradient(145deg,rgba(255,244,229,.96),rgba(255,255,255,.9));
  --number-accent:#F6CF5B;
}

.ng-number-grid article:nth-child(2){
  --number-accent:#69AFC0;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(235,245,237,.88));
}

.ng-number-grid article:nth-child(3){
  --number-accent:#7FA089;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(232,246,249,.9));
}

.ng-number-grid article:nth-child(4),
.ng-number-grid article:nth-child(8){
  background:linear-gradient(145deg,rgba(255,246,239,.94),rgba(255,255,255,.88));
}

.ng-number-grid article:nth-child(5){
  --number-accent:#D16F59;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,241,246,.88));
}

.ng-number-grid article:nth-child(6){
  --number-accent:#7A9EC3;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(239,245,255,.9));
}

.ng-number-grid article:nth-child(7){
  background:linear-gradient(145deg,rgba(238,247,240,.94),rgba(255,255,255,.88));
  --number-accent:#E7A82F;
}

.ng-number-grid article::after{
  content:"";
  position:absolute;
  aspect-ratio:1;
  z-index:0;
  opacity:.52;
  display:block;
  right:-22px;
  top:-22px;
  width:116px;
  height:116px;
  border-radius:42% 58% 54% 46%;
  background:rgba(246,207,91,.16);
  box-shadow:-42px 72px 0 rgba(131,191,206,.12);
}

.ng-number-grid article:hover{
  transform:translateY(-8px) rotate(-.4deg);
  box-shadow:0 22px 48px rgba(93,73,58,.14);
}

.ng-number-grid article:nth-child(1) strong{
  color:#D16F59;
}

.ng-number-grid article:nth-child(2) strong{
  color:#7FA089;
}

.ng-number-grid article:nth-child(3) strong{
  color:#69AFC0;
}

.ng-number-grid article:nth-child(4) strong{
  color:#E7A82F;
}

.ng-number-grid article:nth-child(5) strong{
  color:#D16F59;
}

.ng-number-grid article:nth-child(6) strong{
  font-size:clamp(2.8rem,4vw,3.6rem);
  color:#7A9EC3;
}

.ng-number-grid article:nth-child(7) strong{
  color:#7FA089;
}

.ng-number-grid article:nth-child(8) strong{
  color:#69AFC0;
  font-size:clamp(4.35rem,6.55vw,6.15rem);
}

.ng-number-grid span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  color:#617169;
  font-size:.92rem;
  min-height:1.7em;
  padding:5px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  box-shadow:0 8px 18px rgba(93,73,58,.08);
  position:relative;
  z-index:1;
}

.ng-number-visual{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:flex-end;
  justify-content:center;
  gap:8px;
  min-width:150px;
  min-height:86px;
  margin:16px auto 14px;
  padding:14px 18px 12px;
  border-radius:24px;
  background:rgba(255,255,255,.72);
  box-shadow:0 14px 28px rgba(93,73,58,.1),inset 0 0 0 1px rgba(255,255,255,.78);
  transform:rotate(-1.6deg);
}

.ng-number-visual::before,
.ng-number-visual::after{
  content:"";
  position:absolute;
  pointer-events:none;
}

.ng-number-grid strong{
  display:inline-block;
  line-height:1;
  color:#D16F59;
  margin:0;
  position:relative;
  z-index:1;
  font-family:"Shippori Mincho B1",serif;
  font-size:clamp(3rem,4.8vw,4.6rem);
  text-shadow:0 4px 0 rgba(255,255,255,.9),0 12px 22px rgba(93,73,58,.14);
}

.ng-number-grid article:nth-child(-n+3) strong{
  font-size:clamp(4rem,7vw,6rem);
}

.ng-number-grid em{
  font-style:normal;
  position:relative;
  z-index:1;
  margin-bottom:.42em;
  margin:0 0 .25em;
  padding:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:#4C5566;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:clamp(1rem,1.55vw,1.35rem);
  font-weight:700;
  line-height:1.1;
}

.ng-number-grid article:nth-child(-n+3) em{
  font-size:1.25rem;
}

.ng-number-grid p{
  position:relative;
  z-index:2;
  text-align:center;
  margin-top:16px;
  color:#617169;
  font-size:.82rem;
}

.ng-number-grid article:nth-child(1) .ng-number-visual{
  min-width:188px;
  min-height:116px;
  background:linear-gradient(145deg,#FFFDF8,#FFEDE6);
  border:2px dashed rgba(209,111,89,.28);
  transform:rotate(-3deg);
}

.ng-number-grid article:nth-child(1) .ng-number-visual::before,
.ng-number-grid article:nth-child(1) .ng-number-visual::after{
  top:12px;
  width:48px;
  height:34px;
  border-radius:999px;
  place-items:center;
  color:#fff;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.82rem;
  font-weight:700;
  box-shadow:0 8px 16px rgba(93,73,58,.12);
  display:none;
}

.ng-number-grid article:nth-child(1) .ng-number-visual::before{
  content:"PT";
  left:16px;
  background:#69AFC0;
  transform:rotate(-10deg);
}

.ng-number-grid article:nth-child(1) .ng-number-visual::after{
  content:"OT";
  right:16px;
  background:#F49A8F;
  transform:rotate(9deg);
}

.ng-number-grid article:nth-child(2) .ng-number-visual{
  min-width:210px;
  min-height:118px;
  padding-top:28px;
  background:repeating-linear-gradient(180deg,transparent 0 24px,rgba(127,160,137,.16) 24px 26px),
    linear-gradient(145deg,#FEFFF8,#EAF4E8);
  border:1px solid rgba(127,160,137,.28);
  transform:rotate(1.4deg);
}

.ng-number-grid article:nth-child(2) .ng-number-visual::before{
  content:"START";
  left:18px;
  top:12px;
  color:#7FA089;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
}

.ng-number-grid article:nth-child(2) .ng-number-visual::after{
  right:16px;
  top:15px;
  width:36px;
  height:10px;
  border-radius:999px;
  background:rgba(246,207,91,.72);
  transform:rotate(-7deg);
}

.ng-number-grid article:nth-child(3) .ng-number-visual{
  min-width:204px;
  min-height:120px;
  padding-top:30px;
  background:linear-gradient(180deg,#F49A8F 0 28px,#FFFFFF 28px 100%);
  border:1px solid rgba(105,175,192,.28);
  border-radius:22px;
  transform:rotate(-.8deg);
}

.ng-number-grid article:nth-child(3) .ng-number-visual::before,
.ng-number-grid article:nth-child(3) .ng-number-visual::after{
  top:14px;
  width:12px;
  height:12px;
  border-radius:50%;
  background:#FFF9F3;
  box-shadow:0 0 0 3px rgba(255,249,243,.45);
}

.ng-number-grid article:nth-child(3) .ng-number-visual::before{
  left:58px;
}

.ng-number-grid article:nth-child(3) .ng-number-visual::after{
  right:58px;
}

.ng-number-grid article:nth-child(n+4) .ng-number-visual{
  min-width:126px;
  min-height:72px;
  margin:12px auto 12px;
  padding:12px 16px 10px;
  border-radius:20px;
  transform:rotate(1.8deg);
}

.ng-number-grid article:nth-child(2n+4) .ng-number-visual{
  transform:rotate(-1.7deg);
}

.ng-number-grid article:nth-child(n+4) .ng-number-visual::after{
  left:14px;
  right:14px;
  bottom:10px;
  height:10px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(246,207,91,.5),rgba(244,154,143,.32),rgba(131,191,206,.28));
  z-index:0;
}

.ng-number-grid article,
.ng-gallery,
.ng-faq{
  overflow:hidden;
}

.ng-number-grid article::before{
  right:16px;
  top:14px;
  inset:0;
  width:auto;
  height:auto;
  opacity:1;
  background-image:none;
  background:linear-gradient(135deg,rgba(255,255,255,.52),rgba(255,255,255,.16)),
    radial-gradient(circle at 50% 52%,rgba(255,255,255,.86),rgba(255,255,255,.18) 46%,transparent 72%);
  z-index:0;
  display:none;
}

.ng-number-grid article:nth-child(1)::before{
  background-image:url("assets/illustration-parts/cutouts/split/decorative-36.webp");
}

.ng-number-grid article:nth-child(2)::before{
  background-image:url("assets/illustration-parts/cutouts/split/decorative-39.webp");
}

.ng-number-grid article:nth-child(3)::before{
  background-image:url("assets/illustration-parts/cutouts/split/decorative-33.webp");
}

.ng-number-grid article:nth-child(4)::before{
  background-image:url("assets/illustration-parts/cutouts/split/decorative-31.webp");
}

.ng-number-grid article:nth-child(-n+3),
.ng-number-grid article:nth-child(n+4){
  min-height:228px;
  padding:30px 24px;
}

.ng-number-grid .ng-number-visual{
  min-width:0;
  min-height:auto;
  margin:20px auto 14px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transform:none;
}

.ng-number-grid .ng-number-visual::before,
.ng-number-grid .ng-number-visual::after{
  display:none;
}

.ng-number-grid article:nth-child(n)::before{
  inset:0;
  width:auto;
  height:auto;
  opacity:1;
  background-image:none;
  background:radial-gradient(circle at 50% 52%,rgba(255,255,255,.68),rgba(255,255,255,.1) 48%,transparent 76%);
  z-index:0;
}

.ng-number-grid article:nth-child(n) .ng-number-visual{
  min-width:0;
  min-height:auto;
  margin:20px auto 14px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transform:none;
}

.ng-number-grid article:nth-child(n) .ng-number-visual::before,
.ng-number-grid article:nth-child(n) .ng-number-visual::after{
  content:"";
  display:none;
  background:none;
  box-shadow:none;
}

.ng-number-grid article:nth-child(-n+3) strong,
.ng-number-grid article:nth-child(6) strong{
  font-size:clamp(3rem,4.8vw,4.6rem);
}

.ng-number-grid article,
.ng-number-grid article:nth-child(-n+3),
.ng-number-grid article:nth-child(n+4){
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:238px;
  padding:58px 28px 26px;
  text-align:left;
  background:#fff;
  background-image:none;
  border:1.5px solid rgba(74,82,100,.52);
  border-radius:8px;
  box-shadow:none;
  overflow:visible;
}

.ng-number-grid article:nth-child(4){
  --number-accent:#F49A8F;
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,246,239,.9));
  grid-column:span 2;
}

.ng-number-grid article:nth-child(8){
  --number-accent:#69AFC0;
}

.ng-number-grid .ng-number-label{
  display:inline-flex;
  min-height:0;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  letter-spacing:.03em;
  position:relative;
  left:auto;
  top:auto;
  z-index:2;
  width:max-content;
  margin:0 auto 18px;
  padding:8px 18px;
  border-radius:999px;
  background:#fff;
  color:#52635A;
  box-shadow:0 10px 22px rgba(93,73,58,.08);
  font-size:.9rem;
}

.ng-number-body{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) 82px;
  align-items:center;
  gap:10px;
  width:100%;
}

.ng-number-grid article:nth-child(7) .ng-number-body,
.ng-number-grid article:nth-child(8) .ng-number-body{
  grid-template-columns:minmax(0,1fr) 90px;
}

.ng-number-grid article:nth-child(n) .ng-number-visual,
.ng-number-grid .ng-number-visual{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:8px;
  min-width:0;
  min-height:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transform:none;
}

.ng-number-grid strong,
.ng-number-grid article:nth-child(-n+3) strong,
.ng-number-grid article:nth-child(6) strong{
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:clamp(4.35rem,6.55vw,6.15rem);
  font-weight:700;
  letter-spacing:0;
  line-height:.9;
  color:#4C5566;
  text-shadow:none;
}

.ng-number-grid .ng-number-visual.pending{
  align-items:center;
}

.ng-number-grid .ng-number-visual.pending strong{
  padding:.18em .36em .24em;
  border-radius:18px;
  background:rgba(255,255,255,.78);
  color:#D16F59;
  font-size:clamp(1.55rem,2.8vw,2.35rem);
  line-height:1.1;
  white-space:nowrap;
}

.ng-number-grid .ng-number-visual.tentative{
  align-items:flex-end;
}

.ng-number-grid .ng-number-visual.tentative strong{
  padding:0;
  background:transparent;
  color:#D16F59;
  font-size:clamp(4.35rem,6.55vw,6.15rem);
  line-height:.9;
}

.ng-number-grid .ng-number-visual.tentative em{
  color:#D16F59;
}

.ng-number-grid .ng-number-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  padding:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:#2F3745;
}

.ng-number-icon svg{
  width:92px;
  height:92px;
  fill:none;
  stroke:currentColor;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.ng-number-icon img{
  display:block;
  object-fit:contain;
  width:72px;
  height:72px;
  opacity:.92;
}

.ng-number-grid article:nth-child(7) .ng-number-icon svg,
.ng-number-grid article:nth-child(8) .ng-number-icon svg{
  width:112px;
  height:112px;
}

.ng-number-grid article:nth-child(7) .ng-number-icon img,
.ng-number-grid article:nth-child(8) .ng-number-icon img{
  width:96px;
  height:96px;
}

.ng-number-grid article:nth-child(4) .ng-number-body{
  display:grid;
  grid-template-columns:1fr;
  min-height:118px;
}

.ng-number-grid article:nth-child(4) .ng-disease-body{
  grid-template-columns:1fr;
}

.ng-disease-columns{
  display:grid;
  width:100%;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.ng-disease-columns span{
  border:1px solid rgba(127,160,137,.28);
  box-shadow:0 10px 22px rgba(93,73,58,.06);
  background:linear-gradient(180deg,#fff,rgba(245,250,244,.9));
  display:grid;
  justify-items:center;
  align-items:center;
  align-content:center;
  min-height:104px;
  padding:12px 8px;
  border-radius:16px;
}

.ng-disease-columns span:nth-child(1){
  --disease-color:#7FA089;
}

.ng-disease-columns span:nth-child(2){
  --disease-color:#69AFC0;
}

.ng-disease-columns span:nth-child(3){
  --disease-color:#D16F59;
}

.ng-disease-columns b{
  color:#52635A;
  font-family:"Zen Maru Gothic",sans-serif;
  text-align:center;
  white-space:normal;
  font-size:.68rem;
  line-height:1.35;
}

.ng-disease-columns strong{
  color:var(--disease-color);
  font-family:"Zen Maru Gothic",sans-serif;
  text-shadow:none;
  margin-top:8px;
  font-size:clamp(1.8rem,2.6vw,2.6rem);
  line-height:.9;
}

.ng-disease-columns em{
  color:var(--disease-color);
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:1rem;
  line-height:1;
  margin:2px 0 0;
}

.ng-number-grid article,
.ng-number-grid article:nth-child(-n+3),
.ng-number-grid article:nth-child(n+4),
.ng-number-grid article:nth-child(7),
.ng-number-grid article:nth-child(8){
  min-height:246px;
  padding:24px;
  border-radius:30px;
  border:1px solid rgba(255,255,255,.88);
  background:radial-gradient(circle at 82% 18%,rgba(246,207,91,.18),transparent 28%),
    linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,249,243,.86));
  box-shadow:0 18px 42px rgba(93,73,58,.1);
  overflow:hidden;
  text-align:center;
}

.ng-number-body,
.ng-number-grid article:nth-child(4) .ng-number-body,
.ng-number-grid article:nth-child(7) .ng-number-body,
.ng-number-grid article:nth-child(8) .ng-number-body{
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  min-height:118px;
}

.ng-number-grid strong,
.ng-number-grid article:nth-child(-n+3) strong,
.ng-number-grid article:nth-child(6) strong,
.ng-number-grid article:nth-child(8) strong,
.ng-number-grid .ng-number-visual.tentative strong{
  font-size:clamp(4.35rem,6.4vw,6.3rem);
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  line-height:.86;
}

.ng-number-grid article:nth-child(1) strong,
.ng-number-grid article:nth-child(1) em{
  color:#D16F59;
}

.ng-number-grid article:nth-child(2) strong,
.ng-number-grid article:nth-child(2) em{
  color:#7FA089;
}

.ng-number-grid article:nth-child(3) strong,
.ng-number-grid article:nth-child(3) em{
  color:#69AFC0;
}

.ng-number-grid article:nth-child(5) strong,
.ng-number-grid article:nth-child(5) em{
  color:#D16F59;
}

.ng-number-grid article:nth-child(6) strong,
.ng-number-grid article:nth-child(6) em{
  color:#E7A82F;
}

.ng-number-grid article:nth-child(6) .ng-number-visual.tentative strong,
.ng-number-grid article:nth-child(6) .ng-number-visual.tentative em{
  color:#E7A82F;
}

.ng-number-grid .ng-number-label{
  font-size:1.02rem;
  padding:10px 22px 11px;
}

.ng-number-grid p{
  font-size:.92rem;
  line-height:1.65;
}

.ng-number-grid article:nth-child(4){
  padding:24px 22px 22px;
}

.ng-number-grid article:nth-child(4) .ng-number-body{
  min-height:0;
  margin-top:4px;
}

.ng-disease-columns{
  grid-template-columns:1fr;
  gap:10px;
}

.ng-disease-columns span{
  position:relative;
  display:grid;
  grid-template-columns:minmax(7.5em,1fr) auto auto;
  column-gap:4px;
  align-items:center;
  justify-items:start;
  min-height:58px;
  padding:10px 14px 18px;
  border:1px solid rgba(127,160,137,.22);
  border-left:6px solid var(--disease-color);
  border-radius:15px;
  background:linear-gradient(135deg,#fff,rgba(245,250,244,.9));
  box-shadow:0 10px 22px rgba(93,73,58,.06);
  overflow:hidden;
}

.ng-disease-columns span::after{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  bottom:8px;
  height:7px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--disease-color) var(--disease-rate),rgba(226,235,229,.9) var(--disease-rate));
}

.ng-disease-columns span:nth-child(1){
  --disease-rate:55%;
}

.ng-disease-columns span:nth-child(2){
  --disease-rate:40%;
}

.ng-disease-columns span:nth-child(3){
  --disease-rate:9%;
}

.ng-disease-columns b{
  font-size:1rem;
  line-height:1.35;
  text-align:left;
}

.ng-number-grid article:nth-child(4) .ng-disease-columns span:nth-child(1) strong,
.ng-number-grid article:nth-child(4) .ng-disease-columns span:nth-child(1) em{
  color:#7FA089;
}

.ng-number-grid article:nth-child(4) .ng-disease-columns span:nth-child(2) strong,
.ng-number-grid article:nth-child(4) .ng-disease-columns span:nth-child(2) em{
  color:#69AFC0;
}

.ng-number-grid article:nth-child(4) .ng-disease-columns span:nth-child(3) strong,
.ng-number-grid article:nth-child(4) .ng-disease-columns span:nth-child(3) em{
  color:#D16F59;
}

.ng-disease-columns strong{
  margin:0;
  font-size:clamp(2.4rem,3.4vw,3.15rem);
  line-height:.88;
}

.ng-disease-columns em{
  margin:0 0 .18em;
  font-size:1rem;
}

/* ========== talk ========== */
.ng-talk{
  padding:58px 0 76px;
  overflow:hidden;
  background:radial-gradient(circle at 86% 10%,rgba(246,207,91,.18),transparent 24vw),
    radial-gradient(circle at 10% 84%,rgba(131,191,206,.18),transparent 24vw),
    linear-gradient(180deg,#FFFDF8 0,#F7FBF3 100%);
}

.ng-talk-card{
  position:relative;
  z-index:2;
  border:1px solid rgba(245,223,212,.85);
  box-shadow:0 18px 48px rgba(93,73,58,.1);
  border-radius:42px;
  padding:44px;
  background:radial-gradient(circle at 100% 0,rgba(246,207,91,.16),transparent 26%),
    rgba(255,255,255,.92);
}

.ng-talk-photo{
  overflow:hidden;
  border-radius:28px 28px 12px 28px;
  margin-bottom:30px;
  box-shadow:0 16px 42px rgba(93,73,58,.12);
  position:relative;
}

.ng-talk-photo img{
  display:block;
  width:100%;
  height:360px;
  object-fit:cover;
  object-position:center 45%;
}

.ng-talk-head{
  max-width:760px;
  margin-bottom:28px;
}

.ng-talk-head h2{
  margin:10px 0 10px;
}

.ng-talk-chat{
  display:grid;
  gap:12px;
  grid-column:2;
  grid-row:1 / span 2;
  margin-top:0;
  position:relative;
  z-index:1;
}

.ng-talk-chat p{
  position:relative;
  margin:0;
  color:#617169;
  box-shadow:0 8px 18px rgba(93,73,58,.07);
  padding:18px 22px;
  background:#fff;
  width:min(84%,780px);
  border-radius:24px 24px 24px 8px;
  line-height:1.85;
}

.ng-talk-chat p:nth-child(2n){
  background:#F7FBF3;
  justify-self:end;
  border-radius:24px 24px 8px 24px;
}

.ng-talk-chat b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:52px;
  margin-right:8px;
  padding:4px 10px;
  border-radius:999px;
  background:#4E8C83;
  color:#fff;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.78rem;
  line-height:1.35;
  white-space:nowrap;
}

.ng-talk-download{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:28px 34px;
  border-radius:30px;
  background:
    linear-gradient(90deg,rgba(255,246,241,.96),rgba(255,255,255,.94)),
    radial-gradient(circle at 8% 50%,rgba(246,207,91,.18),transparent 180px);
  border:1px solid rgba(245,198,186,.92);
  box-shadow:0 16px 34px rgba(93,73,58,.09);
  margin-top:28px;
  overflow:hidden;
}

.ng-talk-download-deco{
  position:absolute;
  right:30%;
  top:12px;
  width:68px;
  opacity:.32;
  transform:rotate(-8deg);
  pointer-events:none;
}

.ng-talk-download::before{
  content:"";
  position:absolute;
  inset:14px auto 14px 14px;
  width:6px;
  border-radius:999px;
  background:linear-gradient(180deg,#F6CF5B,#8FC3AA,#F49A8F);
  opacity:.82;
}

.ng-talk-download div{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:18px;
}

.ng-talk-download span{
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:68px;
  height:68px;
  border-radius:20px;
  background:linear-gradient(145deg,#FFF3CD,#FFE5DC);
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.08em;
  box-shadow:0 12px 22px rgba(93,73,58,.08);
}

.ng-talk-download p{
  margin:0;
  color:#617169;
  font-size:.98rem;
  line-height:1.8;
}

.ng-talk-download a{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:230px;
  min-height:58px;
  padding:14px 26px;
  border-radius:999px;
  background:#D16F59;
  color:#fff;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  box-shadow:0 12px 28px rgba(209,111,89,.22);
  transition:transform .25s,box-shadow .25s;
}

.ng-talk-download a:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(209,111,89,.27);
}

.ng-talk-photo::after{
  content:"座談会の空気";
  position:absolute;
  left:22px;
  bottom:20px;
  padding:8px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.86rem;
  box-shadow:0 10px 22px rgba(93,73,58,.12);
}

.ng-talk-theme-illust{
  position:absolute;
  right:24px;
  top:22px;
  width:74px;
  opacity:.2;
  transform:rotate(7deg);
  pointer-events:none;
}

.ng-talk-chat p::before{
  content:"";
  position:absolute;
  left:-7px;
  top:22px;
  border-top:8px solid transparent;
  border-bottom:8px solid transparent;
  border-right:10px solid #fff;
}

.ng-talk-chat p:nth-child(2n)::before{
  left:auto;
  right:-7px;
  border-right:0;
  border-left:10px solid #F7FBF3;
  border-left-color:#F7FBF3;
}

.ng-talk-episode{
  display:grid;
  gap:18px;
  margin-top:28px;
}

.ng-talk-episode article{
  position:relative;
  grid-template-columns:280px minmax(0,1fr);
  gap:28px;
  border-radius:34px;
  background:radial-gradient(circle at 96% 8%,rgba(246,207,91,.2),transparent 18%),
    linear-gradient(135deg,#FFF9F3,rgba(255,255,255,.98));
  box-shadow:0 18px 42px rgba(93,73,58,.09);
  overflow:hidden;
  display:block;
  padding:38px;
}

.ng-talk-episode article>span{
  display:inline-flex;
  width:max-content;
  padding:5px 12px;
  border-radius:999px;
  background:#EAF1E5;
  color:#55745E;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.76rem;
  margin-bottom:14px;
}

.ng-talk-episode h3{
  grid-column:1;
  color:#304238;
  font-size:clamp(1.55rem,2.4vw,2.2rem);
  line-height:1.45;
  margin:0 0 26px;
  max-width:780px;
}

.ng-talk-episode .ng-talk-chat{
  grid-column:auto;
  grid-row:auto;
  display:grid;
  gap:16px;
}

.ng-talk-download p strong{
  color:#304238;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:1.14rem;
}

.ng-talk-download--inline{
  margin:18px 0 0;
  padding:18px 20px;
  border-radius:24px;
  background:
    linear-gradient(90deg,rgba(255,250,246,.98),rgba(247,251,243,.96));
  box-shadow:none;
}

.ng-talk-download--inline::before{
  inset:16px auto 16px 16px;
  width:4px;
  opacity:.72;
}

.ng-talk-download--inline .ng-talk-download-deco{
  right:22%;
  top:8px;
  width:52px;
  opacity:.24;
}

.ng-talk-download--inline div{
  gap:14px;
}

.ng-talk-download--inline span{
  width:52px;
  height:52px;
  border-radius:16px;
  font-size:.78rem;
}

.ng-talk-download--inline p{
  font-size:.92rem;
  line-height:1.68;
}

.ng-talk-download--inline p strong{
  font-size:1.02rem;
}

.ng-talk-download--inline a{
  min-width:148px;
  min-height:46px;
  padding:10px 20px;
  font-size:.92rem;
}

/* ========== gallery ========== */
.ng-gallery{
  padding:58px 0 76px;
  background:radial-gradient(circle at 12% 18%,rgba(244,154,143,.13),transparent 20vw),
    #FFFDF8;
}

.ng-gallery .wrap{
  position:relative;
}

.ng-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.ng-gallery-grid figure{
  overflow:hidden;
  background:#fff;
  border-radius:24px;
  box-shadow:0 12px 34px rgba(93,73,58,.1);
  border:1px solid #F5DFD4;
  transition:transform .28s,box-shadow .28s;
}

.ng-gallery-grid figure:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 44px rgba(93,73,58,.14);
}

.ng-gallery-grid figure.wide{
  grid-column:auto;
}

.ng-gallery-grid img{
  width:100%;
  height:220px;
  object-fit:cover;
  display:block;
}

.ng-gallery-grid figcaption{
  padding:14px 16px 16px;
  color:#52635A;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.86rem;
  line-height:1.55;
}

.ng-gallery::before{
  left:-46px;
  top:82px;
  width:150px;
  height:180px;
  opacity:.18;
  background-image:url("assets/illustration-parts/cutouts/split/decorative-37.webp");
}

.ng-gallery::after{
  right:-40px;
  bottom:48px;
  width:160px;
  height:190px;
  opacity:.2;
  background-image:url("assets/illustration-parts/cutouts/split/decorative-43.webp");
}

/* ========== faq ========== */
.ng-split-head h2,
.ng-faq h2,
.ng-entry-card h2{
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:clamp(1.75rem,4vw,2.75rem);
  line-height:1.35;
  color:#304238;
}

.ng-faq{
  padding:58px 24px 72px;
  position:relative;
  margin-top:48px;
  max-width:1120px;
  border-radius:42px;
  background:radial-gradient(circle at 92% 12%,rgba(131,191,206,.16),transparent 22%),
    linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,249,243,.86));
  box-shadow:0 18px 48px rgba(93,73,58,.08);
}

.ng-faq-qa-illust{
  right:42px;
  top:42px;
  width:min(30vw,300px);
  z-index:1;
  opacity:.72;
  filter:drop-shadow(0 18px 24px rgba(93,73,58,.09));
}

.ng-faq .ng-section-label{
  margin-bottom:10px;
}

.ng-faq details{
  background:#fff;
  padding:0 24px;
  box-shadow:0 10px 28px rgba(93,73,58,.09);
  border:1px solid rgba(245,223,212,.82);
  overflow:hidden;
  transition:background .25s,box-shadow .25s,border-color .25s;
  border-radius:24px;
  margin-top:14px;
}

.ng-faq details[open]{
  background:#FFFDF8;
  border-color:#F0D8CE;
  box-shadow:0 14px 34px rgba(93,73,58,.12);
}

.ng-faq summary{
  cursor:pointer;
  list-style:none;
  padding:22px 0;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  color:#304238;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  position:relative;
  padding-left:48px;
}

.ng-faq summary::-webkit-details-marker{
  display:none;
}

.ng-faq summary::after{
  content:"+";
  width:34px;
  height:34px;
  flex-shrink:0;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#F5F8EF;
  color:#D16F59;
  font-size:1.35rem;
  line-height:1;
  transition:transform .25s,background .25s,color .25s;
}

.ng-faq details[open] summary::after{
  content:"−";
  background:#D16F59;
  color:#fff;
  transform:rotate(180deg);
}

.ng-faq p{
  padding:0 42px 24px 0;
  border-top:1px solid #F2E6DD;
  padding-top:18px;
}

.ng-faq details:not([open]) p{
  display:none;
}

.ng-faq details[open] p{
  display:block;
  padding-left:48px;
}

.ng-faq::after{
  right:8px;
  top:72px;
  width:120px;
  height:82px;
  opacity:.18;
  background-image:url("assets/illustration-parts/cutouts/split/rehab-13.webp");
}

.ng-faq-head{
  display:block;
  margin-bottom:22px;
  min-height:0;
  padding-right:min(26vw,220px);
}

.ng-faq-head h2{
  margin:10px 0 0;
}

.ng-faq-head>p{
  max-width:360px;
  margin:0 0 12px;
  padding:14px 18px;
  border-radius:22px;
  background:#F7FBF3;
  color:#617169;
}

.ng-faq summary::before{
  content:"Q";
  position:absolute;
  left:0;
  top:50%;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:#FFF7D7;
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  transform:translateY(-50%);
}

/* ========== entry ========== */
.ng-entry-section{
  padding:48px 0 56px;
}

.ng-entry-card{
  position:relative;
  overflow:hidden;
  background:#D16F59;
  color:#fff;
  border-radius:42px;
  padding:56px 48px 34px;
  box-shadow:0 20px 60px rgba(209,111,89,.26);
}

.ng-entry-card::after{
  content:"";
  position:absolute;
  right:-70px;
  top:-80px;
  width:280px;
  aspect-ratio:1;
  border-radius:48% 52% 60% 40%/50% 44% 56% 50%;
  background:rgba(255,255,255,.14);
}

.ng-entry-copy{
  max-width:680px;
  margin-bottom:34px;
}

.ng-entry-copy h2{
  margin:16px 0 12px;
  font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.15;
  letter-spacing:0;
}

.ng-entry-card .ng-section-label,
.ng-entry-card h2,
.ng-entry-card p{
  color:#fff;
  position:relative;
  z-index:1;
}

.ng-entry-card p{
  max-width:640px;
  opacity:.92;
  margin:16px 0 30px;
}

.ng-entry-form{
  position:relative;
  z-index:3;
  margin-top:24px;
  background:transparent;
  color:#304238;
  border-radius:0;
  padding:0;
  box-shadow:none;
}

.ng-entry-form-frame{
  padding:0;
  background:transparent;
  border:0;
}

.ng-entry-iframe{
  display:block;
  width:100%;
  height:1640px;
  min-height:0;
  overflow:hidden;
  border:0;
  border-radius:24px;
  background:#FFF7F2;
}

.ng-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.ng-entry-form label{
  display:block;
}

.ng-entry-form label span{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:.88rem;
  color:#52635A;
}

.ng-entry-form label em{
  font-style:normal;
  background:#D16F59;
  color:#fff;
  border-radius:999px;
  padding:2px 8px;
  font-size:.68rem;
}

.ng-entry-form input,
.ng-entry-form select,
.ng-entry-form textarea{
  width:100%;
  border:1px solid #F0D8CE;
  background:#FFF9F3;
  color:#304238;
  border-radius:16px;
  padding:14px 15px;
  font:inherit;
}

.ng-entry-form input:focus,
.ng-entry-form select:focus,
.ng-entry-form textarea:focus{
  outline:3px solid rgba(131,191,206,.3);
  border-color:#83BFCE;
}

.ng-form-message{
  margin-top:18px;
}

.ng-form-message textarea{
  resize:vertical;
}

.ng-form-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:20px 0;
  color:#617169;
  font-size:.88rem;
}

.ng-form-consent input{
  width:auto;
  margin-top:6px;
  flex-shrink:0;
}

.ng-form-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  margin:0;
  border:0;
  background:#D16F59;
  color:#fff;
  border-radius:999px;
  padding:16px 34px;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:1rem;
  text-decoration:none;
  box-shadow:0 12px 28px rgba(209,111,89,.28);
  cursor:pointer;
  transition:transform .25s,box-shadow .25s;
}

.ng-form-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(209,111,89,.34);
}

.ng-confirm-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 12px;
  padding:8px 18px;
  border-radius:999px;
  background:#fff;
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.14em;
  box-shadow:0 10px 24px rgba(80,64,48,.08);
}

.ng-confirm-kicker::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:#F6CF5B;
  box-shadow:14px 0 0 #9CC8B4,28px 0 0 #EBA59A;
}

.ng-confirm-back{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  border:1px solid #F0CFC3;
  background:#fff;
  color:#D16F59;
  border-radius:999px;
  padding:15px 30px;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:1rem;
  text-decoration:none;
  cursor:pointer;
  transition:background .25s,transform .25s,box-shadow .25s;
}

.ng-confirm-back:hover{
  background:#FFF9F3;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(80,64,48,.09);
}

.ng-form-note{
  color:#617169;
  margin:0;
  font-size:.78rem;
  opacity:1;
}

.ng-form-note a{
  color:#D16F59;
  font-weight:700;
}

/* ========== modal ========== */
.ng-modal[hidden]{
  display:none;
}

.ng-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:28px;
}

.ng-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(48,66,56,.5);
  backdrop-filter:blur(10px);
}

.ng-modal-panel{
  position:relative;
  max-height:min(86vh,880px);
  overflow:auto;
  background:#FFFDF8;
  box-shadow:0 26px 80px rgba(48,66,56,.28);
  border:1px solid rgba(255,255,255,.75);
  width:min(1060px,100%);
  border-radius:38px;
}

.ng-modal-panel::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:180px;
  background:linear-gradient(110deg,rgba(246,207,91,.24),rgba(244,154,143,.22),rgba(131,191,206,.18));
  pointer-events:none;
}

.ng-modal-close{
  position:sticky;
  top:18px;
  float:right;
  z-index:3;
  margin:18px 18px 0 0;
  width:44px;
  height:44px;
  border:0;
  border-radius:50%;
  background:#304238;
  color:#fff;
  font-size:1.45rem;
  line-height:1;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(48,66,56,.2);
}

.ng-modal-hero{
  position:relative;
  z-index:1;
  display:grid;
  gap:34px;
  align-items:center;
  padding:58px 58px 34px;
  grid-template-columns:360px 1fr;
}

.ng-modal-hero img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center 28%;
  border-radius:28px;
  box-shadow:0 18px 46px rgba(93,73,58,.16);
}

.ng-modal-hero h2{
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  color:#304238;
  margin:10px 0 12px;
  font-size:clamp(1.75rem,3.2vw,2.45rem);
  line-height:1.38;
}

.ng-modal-hero p:last-child{
  color:#617169;
}

.ng-modal-body{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:26px;
  padding:0 58px 58px;
}

.ng-modal-body h3{
  font-family:"Zen Maru Gothic",sans-serif;
  color:#304238;
  font-size:1.18rem;
  margin-bottom:16px;
}

.ng-modal-interview,
.ng-modal-day{
  background:#fff;
  border-radius:26px;
  padding:28px;
  box-shadow:0 12px 32px rgba(93,73,58,.1);
}

.ng-modal-interview article{
  border-top:1px solid #F2E6DD;
  padding-top:18px;
  margin-top:18px;
}

.ng-modal-interview article:first-child{
  border-top:0;
  padding-top:0;
  margin-top:0;
}

.ng-modal-interview h4{
  font-family:"Zen Maru Gothic",sans-serif;
  color:#D16F59;
  font-size:1rem;
  margin-bottom:6px;
}

.ng-modal-interview p,
.ng-modal-day span{
  color:#617169;
  font-size:.92rem;
}

.ng-day-lead{
  margin:-4px 0 18px;
  color:#617169;
  font-size:.88rem;
  line-height:1.8;
}

.ng-modal-day ol{
  list-style:none;
  display:grid;
  position:relative;
  gap:10px;
}

.ng-modal-day li{
  display:grid;
  align-items:center;
  position:relative;
  box-shadow:0 10px 24px rgba(93,73,58,.07);
  border-radius:22px;
  background:rgba(255,255,255,.92);
  grid-template-columns:88px minmax(0,1fr);
  gap:20px;
  padding:14px 16px;
  border:1px solid rgba(246,207,91,.42);
}

.ng-modal-day li::before{
  content:"";
  position:absolute;
  top:50%;
  border-radius:50%;
  transform:translate(-50%,-50%);
  z-index:1;
  left:50px;
  width:18px;
  height:18px;
  background:#F6CF5B;
  border:4px solid #fff;
  box-shadow:0 0 0 4px rgba(246,207,91,.28),0 8px 18px rgba(93,73,58,.14);
}

.ng-modal-day time{
  display:grid;
  place-items:center;
  color:#fff;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  box-shadow:0 10px 22px rgba(209,111,89,.16);
  position:relative;
  z-index:2;
  min-height:48px;
  border-radius:16px;
  font-size:1rem;
  letter-spacing:0;
  background:#304238;
}

.ng-modal-day span{
  font-weight:700;
  border-left:0;
  padding-left:0;
  color:#304238;
  font-size:.94rem;
}

.ng-modal-open{
  overflow:hidden;
}

.ng-modal-day{
  background:radial-gradient(circle at 100% 0,rgba(246,207,91,.18),transparent 28%),
    #fff;
}

.ng-modal-day ol::before{
  content:"";
  position:absolute;
  top:12px;
  bottom:12px;
  border-radius:999px;
  left:50px;
  width:5px;
  background:linear-gradient(#F6CF5B,#D16F59,#83BFCE);
  opacity:.55;
}

/* ========== keyframes ========== */
@keyframes fall{0%{transform:translateY(-40px) rotate(0)}100%{transform:translateY(105vh) rotate(420deg)}}
@keyframes morph{0%,100%{border-radius:42% 58% 60% 40%/45% 45% 55% 55%}50%{border-radius:58% 42% 38% 62%/55% 60% 40% 45%}}
@keyframes rise{to{opacity:1;transform:translateY(0)}}
@keyframes ngFloat{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-14px) rotate(1.2deg)}
}
@keyframes ngMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@keyframes ngSpin{
  to{transform:rotate(360deg)}
}
@keyframes ngScrollNudge{
  0%,100%{transform:translateY(0) rotate(-8deg)}
  50%{transform:translateY(10px) rotate(-8deg)}
}
@keyframes ngPulse{
  0%,100%{box-shadow:0 10px 24px rgba(209,111,89,.28)}
  50%{box-shadow:0 14px 34px rgba(209,111,89,.42)}
}
@keyframes ngMorph{
  0%,100%{border-radius:48% 52% 62% 38%/52% 44% 56% 48%}
  50%{border-radius:60% 40% 44% 56%/42% 58% 42% 58%}
}
@keyframes ngCurtain{
  0%,100%{transform:translateX(0) skewX(-8deg)}
  50%{transform:translateX(-26px) skewX(7deg)}
}
@keyframes ngPop{
  0%,100%{transform:translateY(0) scale(1);opacity:.7}
  50%{transform:translateY(-12px) scale(1.2);opacity:1}
}
@keyframes ngSoftFloat{
  0%,100%{translate:0 0}
  50%{translate:0 -14px}
}

/* ========== responsive ========== */
@media(max-width:860px){
  header.shrink{
    padding:10px 18px;
  }

  .logo{
    max-width:100%;
    font-size:1rem;
  }

  .logo small{
    font-size:.48rem;
    letter-spacing:.18em;
  }

  body{
    padding-bottom:108px;
  }

  .nbox.wide{
    grid-column:span 2;
  }
}
@media(max-width:520px){
  .nbox.wide{
    grid-column:span 1;
  }
}
@media(max-width:900px){
  .ng-faq-head{
    display:block;
    min-height:0;
    padding-right:0;
  }

  .ng-faq-head>p{
    max-width:100%;
    margin-top:14px;
  }

  .ng-faq-qa-illust{
    display:none;
  }

  .ng-modal-panel{
    width:min(720px,100%);
  }

  .ng-modal-hero{
    grid-template-columns:1fr;
    gap:22px;
    padding:54px 34px 28px;
  }

  .ng-modal-hero img{
    max-height:300px;
  }

  .ng-modal-body{
    grid-template-columns:1fr;
    padding:0 34px 42px;
  }

  .ng-modal-hero h2{
    max-width:620px;
  }
}
@media(prefers-reduced-motion:reduce){
  .ng-page::before,
  .ng-entry,
  .ng-photo,
  .ng-hero-badge,
  .ng-circle-text,
  .ng-marquee div,
  .ng-curtains span,
  .ng-pastel-dots span,
  .ng-cutout{
    animation:none;
  }
}
@media(max-width:1000px){
  .ng-illust-message-tools{
    right:18px;
    bottom:-10px;
    width:132px;
    opacity:.22;
  }

  .ng-illust-hero-curtain{
    right:5vw;
    top:100px;
    width:180px;
  }

  .ng-illust-hero-lines{
    left:auto;
    right:10vw;
    bottom:48%;
  }

  .ng-illust-hero-person{
    width:120px;
    left:2%;
    bottom:90px;
  }

  .ng-illust-hero-star{
    left:auto;
    right:26vw;
    top:150px;
  }

  .ng-illust-hero-leaf{
    right:8vw;
    bottom:320px;
  }

  .ng-illust-jobs-walk{
    right:-80px;
    width:160px;
  }

  .ng-illust-numbers-cloud{
    right:-18px;
  }

  .ng-illust-gallery-note{
    right:-18px;
  }

  .ng-nav{
    display:none;
  }

  .ng-hero{
    grid-template-columns:1fr;
    padding-top:112px;
    gap:24px;
  }

  .ng-hero-copy{
    padding-top:38px;
  }

  .ng-hero-site strong{
    font-size:clamp(1.65rem,5.1vw,2.55rem);
  }

  .ng-hero h1{
    font-size:clamp(3rem,11vw,5.8rem);
  }

  .ng-circle-text{
    left:24px;
    bottom:44px;
  }

  .ng-photo-collage{
    min-height:480px;
    margin-left:0;
  }

  .ng-photo.p2{
    left:0;
  }

  .ng-hero-badge{
    left:0;
    right:auto;
    top:16px;
    width:118px;
    height:118px;
    border-width:7px;
  }

  .ng-hero-badge strong{
    font-size:1.24rem;
  }

  .ng-message-copy{
    min-height:0;
    gap:28px;
    padding-left:24px;
  }

  .ng-message-card{
    padding:0;
  }

  .ng-message-top{
    grid-template-columns:minmax(0,1fr) minmax(180px,240px);
    gap:24px;
    align-items:end;
    min-height:0;
  }

  .ng-message-copy .ng-section-label{
    margin-bottom:28px;
  }

  .ng-message-photo{
    top:0;
    justify-self:end;
    width:min(100%,220px);
    margin:0 24px 0 0;
    padding:12px 12px 20px;
  }

  .ng-message-photo::before{
    inset:0;
  }

  .ng-message-photo img{
    width:min(100%,164px);
    height:190px;
  }

  .ng-message-body{
    max-width:none;
    margin:30px 0 0 24px;
    padding:62px 36px 48px;
    border-radius:34px;
  }

  .ng-message-photo figcaption{
    width:min(100%,200px);
  }

  .ng-support-org{
    padding:32px 24px;
  }

  .ng-roadmap-steps{
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
    min-height:0;
    padding-bottom:12px;
  }

  .ng-roadmap-steps::before{
    display:none;
  }

  .ng-roadmap-steps article:nth-child(n){
    grid-column:auto;
    min-height:300px;
    border-radius:28px;
    transform:none;
  }

  .ng-roadmap-steps article:nth-child(1),
  .ng-roadmap-steps article:nth-child(3),
  .ng-roadmap-steps article:nth-child(5){
    transform:none;
  }

  .ng-roadmap-steps article:nth-child(2),
  .ng-roadmap-steps article:nth-child(4){
    transform:none;
  }

  .ng-roadmap-steps article:nth-child(5){
    grid-column:1 / -1;
    justify-self:center;
    width:100%;
    max-width:420px;
  }

  .ng-org-chart{
    grid-template-columns:1fr;
    padding:28px 22px 32px;
  }

  .ng-org-chart::before{
    display:none;
  }

  .ng-org-center{
    padding:26px 22px;
  }

  .ng-org-columns{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }

  .ng-job-list{
    margin:0 auto;
    grid-template-columns:1fr;
    max-width:680px;
  }

  .ng-voice img{
    height:240px;
  }

  .ng-number-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .ng-number-grid article,
  .ng-number-grid article:nth-child(7),
  .ng-number-grid article:nth-child(8){
    grid-column:span 1;
  }

  .ng-number-grid article:nth-child(-n+3){
    min-height:220px;
  }

  .ng-talk-episode article{
    grid-template-columns:1fr;
  }

  .ng-talk-episode .ng-talk-chat{
    grid-column:auto;
    grid-row:auto;
  }

  .ng-talk-chat p{
    width:100%;
  }

  .ng-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:1200px) and (min-width:1001px){
  .ng-message-card{
    padding:0 24px 18px;
  }

  .ng-message-top{
    grid-template-columns:minmax(0,1fr) minmax(220px,280px);
    gap:28px;
    align-items:end;
  }

  .ng-message-copy{
    min-height:0;
    padding-left:24px;
  }

  .ng-message-copy .ng-section-label{
    margin-bottom:42px;
  }

  .ng-message-copy h2{
    font-size:clamp(2.75rem,5.6vw,4rem);
  }

  .ng-message-photo{
    top:0;
    justify-self:center;
    width:240px;
    margin:0 auto -34px;
    padding:12px 12px 22px;
  }

  .ng-message-photo img{
    width:180px;
    height:206px;
  }

  .ng-message-photo figcaption{
    width:220px;
    padding:9px 14px;
  }

  .ng-message-body{
    margin:0 24px;
    padding:64px 38px 54px;
  }

  .ng-roadmap-steps{
    grid-template-columns:repeat(2,minmax(0,1fr));
    min-height:0;
    padding-bottom:12px;
  }

  .ng-roadmap-steps article{
    grid-column:auto;
    min-height:300px;
    border-radius:28px;
    transform:none;
  }

  .ng-roadmap-steps article:nth-child(1),
  .ng-roadmap-steps article:nth-child(3),
  .ng-roadmap-steps article:nth-child(5){
    transform:none;
  }

  .ng-roadmap-steps article:nth-child(2),
  .ng-roadmap-steps article:nth-child(4){
    transform:none;
  }

  .ng-roadmap-steps article:nth-child(5){
    grid-column:1 / -1;
    justify-self:center;
    width:100%;
    max-width:420px;
  }
}
@media(max-width:680px){
  .ng-entry{
    display:inline-flex;
    padding:10px 14px;
    font-size:.78rem;
    box-shadow:0 8px 18px rgba(209,111,89,.22);
  }

  .ng-illust-hero-curtain,
  .ng-illust-hero-lines,
  .ng-illust-hero-person,
  .ng-illust-hero-leaf,
  .ng-illust-message-flower,
  .ng-illust-message-patient,
  .ng-illust-message-wave,
  .ng-illust-message-star,
  .ng-illust-message-dot,
  .ng-illust-message-tools,
  .ng-illust-jobs-walk,
  .ng-illust-jobs-bars,
  .ng-illust-jobs-plant,
  .ng-illust-jobs-steps,
  .ng-illust-jobs-star,
  .ng-illust-jobs-bubble,
  .ng-illust-jobs-line,
  .ng-illust-people-arc,
  .ng-illust-people-cloud,
  .ng-illust-people-dot,
  .ng-illust-people-star,
  .ng-illust-people-leaf,
  .ng-illust-numbers-shoes,
  .ng-illust-numbers-person,
  .ng-illust-numbers-line,
  .ng-illust-numbers-star,
  .ng-illust-numbers-dot,
  .ng-illust-gallery-note,
  .ng-illust-gallery-line,
  .ng-illust-gallery-cloud,
  .ng-illust-gallery-star,
  .ng-illust-gallery-leaf,
  .ng-illust-gallery-bubble,
  .ng-illust-faq-bubble,
  .ng-illust-faq-line,
  .ng-illust-faq-flower,
  .ng-illust-faq-dot,
  .ng-illust-faq-speech,
  .ng-illust-entry-person,
  .ng-illust-entry-lines,
  .ng-illust-entry-leaf,
  .ng-illust-entry-bubble,
  .ng-illust-entry-dot{
    display:none;
  }

  .ng-illust-hero-star{
    width:38px;
    left:auto;
    right:24px;
    top:154px;
    opacity:.5;
  }

  .ng-illust-hero-speech{
    width:170px;
    right:-38px;
    top:-44px;
    opacity:.5;
  }

  .ng-illust-message-leaves{
    width:150px;
    left:auto;
    right:-74px;
    top:-24px;
    opacity:.35;
  }

  .ng-illust-message-tools{
    opacity:.62;
    width:122px;
    right:18px;
    bottom:18px;
  }

  .ng-illust-people-speech{
    width:190px;
    right:-90px;
    top:-32px;
    opacity:.5;
  }

  .ng-illust-people-flower{
    width:60px;
    left:auto;
    right:16px;
    top:120px;
    opacity:.24;
  }

  .ng-illust-numbers-cloud{
    width:130px;
    right:-44px;
    top:42px;
    opacity:.12;
  }

  .ng-illust-faq-star{
    width:34px;
    left:auto;
    right:18px;
    top:88px;
    opacity:.38;
  }

  .ng-illust-entry-spark{
    width:34px;
    right:22px;
    bottom:24px;
    opacity:.35;
  }

  .ng-header{
    gap:8px;
    padding:10px 14px;
  }

  header.ng-header.shrink{
    padding:10px 14px;
  }

  .ng-header .logo{
    width:156px;
    max-width:39vw;
  }

  .ng-hero{
    padding:104px 20px 56px;
  }

  .ng-hero-copy{
    padding-top:12px;
  }

  .ng-hero-site{
    width:100%;
    max-width:310px;
    min-width:0;
    padding:10px 14px 12px;
    border-radius:20px;
    box-shadow:0 14px 32px rgba(93,73,58,.13),0 0 0 5px rgba(255,255,255,.34);
  }

  .ng-hero-site span{
    font-size:.72rem;
  }

  .ng-hero-site strong{
    font-size:clamp(1.35rem,6vw,1.85rem);
    letter-spacing:0;
  }

  .ng-hero h1{
    line-height:1.24;
    font-size:clamp(2.5rem,12vw,3.85rem);
  }

  .ng-hero h1 span{
    white-space:normal;
  }

  .ng-hero h1 span:first-child{
    white-space:nowrap;
  }

  .ng-hero h1 span:nth-child(2),
  .ng-hero h1 span:nth-child(3){
    width:max-content;
    max-width:100%;
    display:block;
    margin-left:0;
  }

  .ng-hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:22px;
    width:100%;
    max-width:280px;
  }

  .ng-hero-actions a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:14px 18px;
    font-size:.92rem;
    text-align:center;
    white-space:nowrap;
  }

  .ng-hero-badge{
    left:8px;
    right:auto;
    top:8px;
    width:102px;
    height:102px;
    border-width:6px;
  }

  .ng-hero-badge span{
    font-size:inherit;
  }

  .ng-hero-badge strong{
    font-size:1.05rem;
  }

  .ng-hero-badge em{
    font-size:.7rem;
  }

  .ng-curtains{
    inset:52px 0 auto;
    height:74%;
  }

  .ng-curtains span{
    min-width:210px;
  }

  .ng-hero-word{
    top:118px;
  }

  .ng-circle-text{
    width:86px;
    height:86px;
    left:18px;
    bottom:24px;
    font-size:.62rem;
  }

  .ng-circle-text::after{
    bottom:14px;
    font-size:1.35rem;
  }

  .ng-photo-collage{
    min-height:390px;
  }

  .ng-photo.p1{
    width:82%;
    height:68%;
    border-radius:34px 34px 14px 34px;
  }

  .ng-photo.p2{
    width:48%;
    height:34%;
    left:0;
    bottom:36px;
    border-width:7px;
  }

  .ng-photo.p3{
    width:42%;
    height:26%;
    right:6%;
    border-width:7px;
  }

  .ng-message{
    padding:32px 0 50px;
  }

  .ng-message-body{
    margin:0;
    padding:54px 22px 68px;
    border-radius:28px;
  }

  .ng-message-top{
    display:grid;
    grid-template-columns:minmax(0,1fr) 122px;
    column-gap:18px;
    row-gap:20px;
    align-items:end;
    box-sizing:border-box;
    padding:0 22px;
  }

  .ng-message-copy{
    display:contents;
    min-height:0;
    padding-left:0;
  }

  .ng-message-copy::before{
    display:none;
  }

  .ng-message-copy .ng-section-label{
    grid-column:1 / -1;
    margin-bottom:8px;
  }

  .ng-message-copy h2{
    grid-column:1 / -1;
    grid-row:2;
    font-size:clamp(1.62rem,7vw,1.86rem);
    line-height:1.42;
  }

  .ng-message-photo{
    grid-column:2;
    grid-row:3;
    top:0;
    align-self:end;
    justify-self:end;
    width:118px;
    margin:0 0 6px;
    padding:7px 7px 16px;
  }

  .ng-message-photo img{
    width:92px;
    height:108px;
    border-width:5px;
    border-radius:16px;
  }

  .ng-message-photo figcaption{
    bottom:-10px;
    width:118px;
    padding:6px 8px;
  }

  .ng-message-photo figcaption span{
    font-size:.52rem;
    line-height:1.35;
  }

  .ng-message-photo figcaption strong{
    font-size:.66rem;
    line-height:1.25;
  }

  .ng-message-photo-shadow{
    left:18px;
    right:18px;
    bottom:1px;
    height:22px;
    filter:blur(10px);
  }

  .ng-message-body p{
    font-size:1rem;
    line-height:2;
    letter-spacing:.04em;
  }

  .ng-message-body__lead{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:.88rem;
    line-height:1.55 !important;
  }

  .ng-message-body__lead::before{
    flex:0 0 22px;
    width:22px;
  }

  .ng-message-body p+p{
    margin-top:24px;
  }

  .ng-support,
  .ng-talk{
    padding:48px 0 60px;
  }

  .ng-training-roadmap,
  .ng-support-org{
    scroll-margin-top:92px;
    padding:24px 20px;
    border-radius:28px;
  }

  .ng-roadmap-note{
    width:100%;
    border-radius:20px;
    padding:16px 18px;
    font-size:.86rem;
  }

  .ng-roadmap-section-label{
    display:inline-flex;
    align-items:center;
    max-width:100%;
    padding:10px 14px;
    font-size:.96rem;
    white-space:nowrap;
  }

  .ng-roadmap-steps{
    grid-template-columns:1fr;
    min-height:0;
    padding-bottom:0;
    padding-top:18px;
  }

  .ng-roadmap-steps article{
    grid-column:auto;
    min-height:0;
    max-width:none;
    border-radius:24px;
    transform:none;
  }

  .ng-roadmap-steps article::before{
    margin-bottom:12px;
  }

  .ng-roadmap-steps p{
    line-height:1.8;
  }

  .ng-org-chart{
    grid-template-columns:1fr;
    min-height:0;
    padding:18px 14px;
    gap:16px;
    border-radius:24px;
  }

  .ng-training-roadmap{
    padding:28px 20px;
  }

  .ng-roadmap-deco,
  .ng-training-roadmap::after,
  .ng-org-deco,
  .ng-talk-theme-illust{
    display:none;
  }

  .ng-roadmap-steps::before,
  .ng-org-chart::before,
  .ng-org-chart::after,
  .ng-org-columns::before{
    display:none;
  }

  .ng-roadmap-steps article:nth-child(n){
    min-height:0;
    transform:none;
  }

  .ng-roadmap-steps article h3{
    margin-top:12px;
  }

  .ng-org-center{
    padding:22px 16px;
    border-radius:24px;
  }

  .ng-org-center-visual{
    width:132px;
    height:118px;
  }

  .ng-org-center-person{
    width:74px;
  }

  .ng-org-center h3{
    font-size:1.08rem;
  }

  .ng-org-columns{
    grid-template-columns:1fr;
    gap:12px;
    padding-top:0;
  }

  .ng-org-column{
    gap:0;
    min-height:0;
    padding:16px 16px 15px;
    border-radius:20px;
  }

  .ng-org-column::before{
    left:auto;
    right:14px;
    top:14px;
    bottom:auto;
    width:30px;
    height:30px;
    transform:none;
  }

  .ng-org-card--wide{
    padding-right:16px;
  }

  .ng-org-card--wide::before{
    display:none;
  }

  .ng-job{
    grid-template-columns:1fr;
  }

  .ng-job-list{
    grid-template-columns:1fr;
  }

  .ng-jobs,
  .ng-people,
  .ng-faq{
    padding-top:48px;
    padding-bottom:60px;
  }

  .ng-job div{
    padding:30px 24px;
  }

  .ng-job img{
    min-height:220px;
    height:220px;
  }

  .ng-gallery::before,
  .ng-gallery::after,
  .ng-faq::after,
  .ng-job div::after,
  .ng-illust-support-person,
  .ng-illust-support-line,
  .ng-illust-support-dot,
  .ng-illust-talk-note,
  .ng-illust-talk-speech{
    display:none;
  }

  .ng-job .ng-job-abbr{
    font-size:clamp(3rem,14vw,3.8rem);
  }

  .ng-voice-grid{
    grid-template-columns:1fr;
    max-width:560px;
  }

  .ng-voice img{
    height:220px;
  }

  .ng-number-grid article::before,
  .ng-voice div::before{
    opacity:.16;
  }

  .ng-number-grid{
    grid-template-columns:1fr;
  }

  .ng-number-grid article,
  .ng-number-grid article:nth-child(7),
  .ng-number-grid article:nth-child(8){
    grid-column:1 / -1;
    min-height:166px;
  }

  .ng-number-grid article:nth-child(-n+3){
    min-height:200px;
    padding:30px 20px;
  }

  .ng-number-grid article,
  .ng-number-grid article:nth-child(-n+3),
  .ng-number-grid article:nth-child(n+4),
  .ng-number-grid article:nth-child(7),
  .ng-number-grid article:nth-child(8){
    min-height:184px;
    padding:48px 20px 20px;
    border-radius:8px;
  }

  .ng-number-grid .ng-number-label{
    left:18px;
    top:-16px;
    padding:9px 18px 10px;
    font-size:1rem;
    margin-bottom:14px;
  }

  .ng-number-body,
  .ng-number-grid article:nth-child(4) .ng-number-body,
  .ng-number-grid article:nth-child(7) .ng-number-body,
  .ng-number-grid article:nth-child(8) .ng-number-body{
    gap:10px;
    grid-template-columns:1fr;
    justify-items:center;
  }

  .ng-number-grid strong,
  .ng-number-grid article:nth-child(-n+3) strong,
  .ng-number-grid article:nth-child(6) strong,
  .ng-number-grid article:nth-child(8) strong{
    font-size:clamp(3.75rem,21vw,5.25rem);
  }

  .ng-number-grid .ng-number-visual.pending strong{
    font-size:clamp(1.35rem,8vw,2rem);
  }

  .ng-number-grid em{
    font-size:1rem;
  }

  .ng-number-icon svg,
  .ng-number-grid article:nth-child(7) .ng-number-icon svg,
  .ng-number-grid article:nth-child(8) .ng-number-icon svg{
    width:70px;
    height:70px;
    stroke-width:4.4;
  }

  .ng-number-icon img,
  .ng-number-grid article:nth-child(7) .ng-number-icon img,
  .ng-number-grid article:nth-child(8) .ng-number-icon img{
    width:72px;
    height:72px;
  }

  .ng-number-grid p{
    margin-top:12px;
    font-size:.88rem;
  }

  .ng-number-grid article:nth-child(4) .ng-disease-body{
    grid-template-columns:1fr;
  }

  .ng-disease-columns{
    grid-template-columns:1fr;
  }

  .ng-disease-columns span{
    min-height:0;
  }

  .ng-disease-columns strong{
    font-size:clamp(2.6rem,16vw,4rem);
  }

  .ng-number-grid article,
  .ng-number-grid article:nth-child(-n+3),
  .ng-number-grid article:nth-child(n+4),
  .ng-number-grid article:nth-child(4),
  .ng-number-grid article:nth-child(7),
  .ng-number-grid article:nth-child(8){
    grid-column:span 6;
    min-height:0;
    padding:22px;
    border-radius:26px;
  }

  .ng-number-grid article:nth-child(4){
    grid-column:span 6;
  }

  .ng-disease-columns{
    grid-template-columns:1fr;
    gap:10px;
  }

  .ng-disease-columns span{
    grid-template-columns:minmax(7em,1fr) auto auto;
    min-height:56px;
    padding:10px 14px 18px;
  }

  .ng-disease-columns b{
    font-size:.95rem;
  }

  .ng-disease-columns strong{
    font-size:clamp(2.2rem,10vw,2.9rem);
  }

  .ng-talk-card{
    border-radius:28px;
    padding:28px 20px;
  }

  .ng-talk-chat{
    grid-column:auto;
    grid-row:auto;
  }

  .ng-talk-photo img{
    height:230px;
  }

  .ng-talk-download,
  .ng-talk-download div{
    align-items:flex-start;
    flex-direction:column;
  }

  .ng-talk-download a{
    width:100%;
  }

  .ng-talk-episode article{
    border-radius:28px;
    padding:24px 18px;
  }

  .ng-talk-episode h3{
    margin:8px 0 0;
    margin-bottom:18px;
  }

  .ng-talk-download,
  .ng-talk-download div{
    align-items:flex-start;
    flex-direction:column;
  }

  .ng-gallery{
    padding:48px 0 60px;
  }

  .ng-gallery-grid{
    grid-template-columns:1fr;
  }

  .ng-gallery-grid img{
    height:210px;
  }

  .ng-faq{
    padding:46px 18px 56px;
    border-radius:30px;
  }

  .ng-faq-head{
    min-height:0;
    padding-right:0;
  }

  .ng-faq-qa-illust{
    display:none;
  }

  .ng-faq summary{
    padding-left:42px;
  }

  .ng-faq details[open] p{
    padding-left:42px;
  }

  .ng-entry-card{
    padding:38px 24px;
    border-radius:32px;
  }

  .ng-entry-form{
    margin-top:18px;
    padding:0;
    border-radius:0;
  }

  .ng-entry-form-frame{
    padding:0;
  }

  .ng-entry-iframe{
    height:1580px;
    min-height:0;
    border-radius:18px;
  }

  .ng-form-grid{
    grid-template-columns:1fr;
  }

  .ng-form-submit{
    width:100%;
  }

  .ng-confirm-back{
    width:100%;
  }

  .ng-modal{
    padding:14px;
  }

  .ng-modal-panel{
    border-radius:24px;
    max-height:90vh;
  }

  .ng-modal-close{
    top:12px;
    margin:12px 12px 0 0;
  }

  .ng-modal-hero{
    grid-template-columns:1fr;
    gap:20px;
    padding:48px 22px 22px;
  }

  .ng-modal-body{
    grid-template-columns:1fr;
    padding:0 22px 28px;
  }

  .ng-modal-interview,
  .ng-modal-day{
    padding:22px;
  }

  .ng-modal-day li{
    grid-template-columns:76px minmax(0,1fr);
    gap:14px;
  }

  .ng-modal-day li::before{
    right:18px;
    top:22px;
    left:44px;
  }

  .ng-modal-day time{
    width:max-content;
    min-height:40px;
    padding:0 14px;
  }

  .ng-modal-day span{
    padding-left:14px;
  }

  .ng-modal-day ol::before{
    left:44px;
  }

}

@media(max-width:380px){
  .ng-message-top{
    grid-template-columns:minmax(0,1fr) 108px;
    column-gap:14px;
    padding:0 18px;
  }

  .ng-message-copy h2{
    font-size:clamp(1.62rem,7vw,1.84rem);
    line-height:1.44;
  }

  .ng-message-photo{
    width:108px;
    padding:7px 7px 15px;
  }

  .ng-message-photo img{
    width:84px;
    height:100px;
  }

  .ng-message-photo figcaption{
    width:108px;
    padding:5px 7px;
  }

  .ng-message-photo figcaption span{
    font-size:.48rem;
  }

  .ng-message-photo figcaption strong{
    font-size:.62rem;
  }

  .ng-message-body{
    padding:50px 18px 58px;
  }
}

/* Roadmap scene refresh: show concrete scenes instead of abstract marks. */
.ng-roadmap-steps article{
  overflow:hidden;
  isolation:isolate;
}

.ng-roadmap-card-head{
  position:static !important;
  min-height:40px;
}

.ng-roadmap-card-head::after{
  display:none;
}

.ng-roadmap-illust{
  display:block !important;
  position:absolute;
  z-index:0;
  right:14px;
  top:48px;
  width:clamp(160px,14vw,205px);
  height:auto;
  max-width:48%;
  max-height:220px;
  object-fit:contain;
  opacity:.94;
  filter:drop-shadow(0 16px 24px rgba(93,73,58,.12));
}

.ng-roadmap-steps article > *:not(.ng-roadmap-illust){
  position:relative;
  z-index:1;
}

.ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
  width:132px;
}

@media(max-width:1200px){
  .ng-roadmap-steps{
    max-width:920px;
    gap:20px !important;
  }

  .ng-roadmap-steps article:nth-child(n){
    min-height:330px;
    padding:24px 390px 26px 32px;
  }

  .ng-roadmap-card-head{
    margin-bottom:10px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    display:block !important;
    top:28px;
    right:28px;
    width:min(210px,30%);
    max-height:176px;
    opacity:.98;
  }

  .ng-roadmap-steps h3{
    margin-top:8px;
  }

  .ng-roadmap-detail{
    margin-top:16px;
  }
}

@media(max-width:680px){
  .ng-roadmap-steps article:nth-child(n){
    min-height:0;
    padding:20px 18px 22px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    display:block !important;
    top:18px;
    right:16px;
    width:78px;
    max-height:76px;
    opacity:.78;
  }

  .ng-roadmap-card-head{
    padding-right:86px;
  }
}



/* Org chart copy balance: make role comments two-line and prevent overflow. */
.ng-org-tier{
  min-height:82px;
  grid-template-columns:minmax(300px,.95fr) minmax(260px,1.05fr);
}

.ng-org-tier--director{ --tier-width:84%; }
.ng-org-tier--chief{ --tier-width:88%; }
.ng-org-tier--lead{ --tier-width:92%; }
.ng-org-tier--sublead{ --tier-width:96%; }
.ng-org-tier--teamlead{ --tier-width:100%; }

.ng-org-tier p{
  display:grid;
  gap:3px;
  padding-left:22px;
  white-space:normal;
  overflow-wrap:normal;
  word-break:keep-all;
  line-height:1.35;
}

.ng-org-tier p strong{
  display:block;
  color:#fff;
  font-size:clamp(.94rem,1.05vw,1.08rem);
  line-height:1.35;
}

.ng-org-tier p span{
  display:block;
  color:rgba(255,255,255,.9);
  font-size:clamp(.74rem,.88vw,.88rem);
  line-height:1.45;
}

@media(max-width:980px){
  .ng-org-tier{
    grid-template-columns:1fr;
    gap:10px;
    width:100%;
    padding:18px 20px;
  }

  .ng-org-role-main{
    justify-content:space-between;
    padding-right:0;
  }

  .ng-org-role-main::after{
    display:none;
  }

  .ng-org-tier p{
    padding-left:0;
  }
}

/* Mobile org final override: keep a soft pyramid and prevent label collapse. */
@media(max-width:700px){
  .ng-org-pyramid{
    align-items:center;
    gap:13px;
  }

  .ng-org-tier{
    justify-self:center;
    width:var(--tier-width);
    max-width:100%;
    min-height:0;
    padding:16px 18px;
  }

  .ng-org-tier--director{ --tier-width:84%; }
  .ng-org-tier--chief{ --tier-width:88%; }
  .ng-org-tier--lead{ --tier-width:92%; }
  .ng-org-tier--sublead{ --tier-width:96%; }
  .ng-org-tier--teamlead{ --tier-width:100%; }

  .ng-org-role-main{
    flex-wrap:nowrap;
    min-width:0;
  }

  .ng-org-role-name{
    flex:1 1 auto;
    min-width:0;
    white-space:nowrap;
    font-size:clamp(1.08rem,5.2vw,1.34rem);
  }

  .ng-org-count{
    flex:0 0 auto;
  }

  .ng-org-tier p{
    gap:4px;
    line-height:1.42;
  }

  .ng-org-tier p strong,
  .ng-org-tier p span{
    overflow-wrap:normal;
    word-break:keep-all;
  }

  .ng-org-tier--teamlead .ng-org-role-name br{
    display:none;
  }
}

@media(max-width:480px){
  .ng-org-tier--teamlead .ng-org-role-main{
    flex-wrap:nowrap;
    justify-content:space-between;
  }

  .ng-org-tier--teamlead .ng-org-count{
    margin-top:0;
  }

  .ng-org-tier--teamlead .ng-org-role-name{
    font-size:clamp(1rem,4.8vw,1.18rem);
  }

  .ng-org-tier--teamlead .ng-org-count-icons img{
    width:28px;
    height:28px;
  }

  .ng-org-tier--teamlead .ng-org-count-icons img + img{
    margin-left:-10px;
  }
}

/* Org emphasis: make the new graduate the hero, then the team members. */
.ng-org-tier{
  background:
    linear-gradient(90deg,var(--tier-color) 0 8px,transparent 8px),
    linear-gradient(135deg,color-mix(in srgb,var(--tier-color) 14%,#fff 86%),rgba(255,255,255,.94));
  border:1px solid color-mix(in srgb,var(--tier-color) 26%,#fff 74%);
  color:#304238;
  box-shadow:0 10px 22px rgba(93,73,58,.07);
}

.ng-org-tier .ng-org-role-name,
.ng-org-tier p strong{
  color:#304238;
}

.ng-org-tier p span{
  color:#617169;
}

.ng-org-role-main::after{
  background:color-mix(in srgb,var(--tier-color) 24%,#fff 76%);
}

.ng-org-count{
  background:#fff;
  border-color:color-mix(in srgb,var(--tier-color) 20%,#fff 80%);
  color:var(--tier-color);
  box-shadow:0 8px 18px rgba(93,73,58,.06);
}

.ng-org-members{
  border-color:rgba(154,203,138,.96);
  background:
    linear-gradient(90deg,rgba(154,203,138,.16) 0 1px,transparent 1px 100%) 0 0 / 64px 64px,
    linear-gradient(180deg,rgba(248,255,245,.98),rgba(255,255,255,.96));
  box-shadow:0 20px 46px rgba(93,73,58,.1), inset 0 0 0 8px rgba(255,255,255,.56);
}

.ng-org-members-head .ng-org-role-name{
  color:#2F7C65;
  font-size:clamp(1.58rem,2.4vw,2.12rem);
}

.ng-org-members .ng-org-count{
  background:#F2FAEF;
  border-color:rgba(154,203,138,.72);
  color:#55745E;
  box-shadow:none;
}

.ng-org-member-faces{
  border-color:rgba(154,203,138,.52);
  background:rgba(255,255,255,.86);
}

.ng-org-newgraduate{
  max-width:820px;
  border:3px solid rgba(244,154,143,.72);
  background:
    radial-gradient(circle at 12% 42%,rgba(244,154,143,.16),transparent 150px),
    linear-gradient(90deg,#FFF2EC,#FFFDF9);
  box-shadow:0 24px 54px rgba(209,111,89,.16);
}

.ng-org-newgraduate strong{
  color:#D37361;
  font-size:clamp(1.76rem,3.1vw,2.32rem);
}

.ng-org-newgraduate p{
  color:#52635A;
  font-size:clamp(.98rem,1.42vw,1.18rem);
  line-height:1.75;
}

.ng-org-newgraduate > span{
  background:#fff;
  box-shadow:0 14px 28px rgba(209,111,89,.12);
}

@media(max-width:700px){
  .ng-org-tier{
    background:
      linear-gradient(90deg,var(--tier-color) 0 6px,transparent 6px),
      linear-gradient(135deg,color-mix(in srgb,var(--tier-color) 13%,#fff 87%),rgba(255,255,255,.95));
  }

  .ng-org-members-head .ng-org-role-name{
    font-size:1.58rem;
  }

  .ng-org-newgraduate{
    padding:22px 16px;
  }

  .ng-org-newgraduate strong{
    font-size:1.76rem;
  }
}

/* Message readability final pass: add side breathing room on wide screens. */
.ng-message-body{
  max-width:min(100% - 140px,1340px);
  margin:-18px auto 0;
  padding:76px clamp(76px,8vw,132px) 64px;
}

.ng-message-body > p{
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
}

.ng-message-body__lead{
  max-width:1120px;
}

@media(max-width:900px){
  .ng-message-body{
    max-width:none;
    margin:0;
    padding:54px 30px 68px;
  }

  .ng-message-body > p{
    max-width:none;
  }
}

@media(max-width:560px){
  .ng-message-body{
    padding:42px 22px 54px;
  }
}

/* Visual contrast final pass: keep the kindness, restore editorial contrast. */
.ng-section-label,
.ng-org-kicker,
.ng-message-body__lead{
  color:#C95F4D;
}

.ng-message h2,
.ng-split-head h2,
.ng-org-head h2,
.ng-faq h2,
.ng-entry-copy h2{
  color:#253B31;
}

.ng-split-head p,
.ng-message-body p,
.ng-talk-chat p,
.ng-faq p,
.ng-number-grid p{
  color:#52635A;
}

.ng-message-body,
.ng-training-roadmap,
.ng-support-org,
.ng-talk-card,
.ng-number-grid article,
.ng-faq details{
  background:#fff;
  border-color:rgba(211,115,97,.24);
  box-shadow:0 22px 46px rgba(65,54,42,.1);
}

.ng-message-body,
.ng-talk-card,
.ng-support-org{
  border-width:1.5px;
}

.ng-number-grid article{
  border-color:rgba(74,82,100,.42);
}

.ng-roadmap-steps article{
  border:1px solid rgba(74,82,100,.2);
  box-shadow:0 14px 28px rgba(65,54,42,.09);
}

.ng-roadmap-steps h3,
.ng-number-grid strong,
.ng-number-grid .ng-number-label,
.ng-talk-episode h3,
.ng-faq summary{
  color:#253B31;
}

.ng-section-cta,
.ng-talk-download,
.ng-talk-download--inline{
  background:#fff;
  border-color:rgba(209,111,89,.34);
  box-shadow:0 18px 38px rgba(65,54,42,.11);
}

.ng-section-cta a,
.ng-talk-download a,
.ng-form-submit{
  background:#C95F4D;
  box-shadow:0 14px 30px rgba(201,95,77,.26);
}

.ng-section-cta a:hover,
.ng-talk-download a:hover,
.ng-form-submit:hover{
  background:#B95545;
  box-shadow:0 18px 36px rgba(201,95,77,.32);
}

.ng-photo,
.ng-message-photo img,
.ng-gallery-grid img{
  filter:saturate(1.04) contrast(1.04);
}

@media(max-width:700px){
  .ng-message-body,
  .ng-training-roadmap,
  .ng-support-org,
  .ng-talk-card,
  .ng-number-grid article,
  .ng-faq details{
    box-shadow:0 14px 28px rgba(65,54,42,.08);
  }
}

/* Crosstalk PDF final override: never let the inline PDF block collapse into the left column. */
.ng-talk-download--inline{
  grid-column:1 / -1 !important;
  grid-row:auto !important;
  display:grid !important;
  grid-template-columns:64px minmax(0,1fr) minmax(180px,auto) !important;
  align-items:center !important;
  gap:18px 24px !important;
  width:100% !important;
  min-width:0 !important;
}

.ng-talk-download--inline div{
  display:contents !important;
  min-width:0 !important;
}

.ng-talk-download--inline span{
  grid-column:1 !important;
  grid-row:1 !important;
}

.ng-talk-download--inline p{
  grid-column:2 !important;
  grid-row:1 !important;
  min-width:0 !important;
  max-width:none !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

.ng-talk-download--inline a{
  grid-column:3 !important;
  grid-row:1 !important;
  justify-self:end !important;
  width:auto !important;
  min-width:180px !important;
}

@media(max-width:1040px){
  .ng-talk-download--inline{
    grid-template-columns:56px minmax(0,1fr) !important;
  }

  .ng-talk-download--inline a{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    justify-self:stretch !important;
  }
}

@media(max-width:560px){
  .ng-talk-download--inline{
    grid-template-columns:1fr !important;
  }

  .ng-talk-download--inline span,
  .ng-talk-download--inline p,
  .ng-talk-download--inline a{
    grid-column:1 !important;
  }

  .ng-talk-download--inline span{
    grid-row:1 !important;
  }

  .ng-talk-download--inline p{
    grid-row:2 !important;
  }

  .ng-talk-download--inline a{
    grid-row:3 !important;
  }
}

/* Page background final override: keep the side color soft, not stripe-like. */
.ng-page::before{
  inset:auto -14vw 4vh auto !important;
  width:28vw !important;
  min-width:220px !important;
  opacity:.32 !important;
  background:radial-gradient(circle at 50% 50%,rgba(244,154,143,.18),rgba(255,249,243,0) 68%) !important;
  filter:blur(18px) !important;
}

@media(max-width:700px){
  .ng-page::before{
    opacity:.18 !important;
    width:34vw !important;
  }
}

/* Support heading final polish: reduce haze and give the section entrance a clear edge. */
.ng-support{
  background:
    radial-gradient(circle at 12% 16%,rgba(246,207,91,.08),transparent 22vw),
    linear-gradient(105deg,rgba(131,191,206,.08),rgba(255,253,248,.96) 52%,rgba(244,154,143,.06)),
    #FFFDF8 !important;
}

.ng-support::before{
  opacity:.38;
  background:
    linear-gradient(90deg,rgba(127,160,137,.055) 1px,transparent 1px),
    linear-gradient(rgba(127,160,137,.045) 1px,transparent 1px) !important;
}

.ng-support .ng-split-head{
  position:relative;
  z-index:2;
  max-width:980px;
  padding:8px 0 2px;
}

.ng-support .ng-section-label{
  background:#fff;
  border:1px solid rgba(82,99,90,.14);
  box-shadow:0 12px 28px rgba(65,54,42,.1);
  color:#52635A;
}

.ng-support .ng-split-head h2{
  position:relative;
  width:max-content;
  max-width:100%;
  margin-bottom:18px;
  color:#243B31;
}

.ng-support .ng-split-head h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-8px;
  width:min(240px,42%);
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,#C95F4D,#8FC3AA);
}

.ng-support .ng-split-head p:not(.ng-section-label){
  max-width:920px;
  color:#4F6259;
}

.ng-illust-support-line{
  opacity:.22 !important;
}

@media(max-width:700px){
  .ng-support .ng-split-head h2{
    width:auto;
  }

  .ng-support .ng-split-head h2::after{
    width:150px;
  }
}

/* Roadmap note final copy fit: keep the lead copy on one line where space allows. */
.ng-roadmap-note{
  max-width:100%;
  padding:14px 28px;
  white-space:nowrap;
  color:#C95F4D;
}

@media(max-width:760px){
  .ng-roadmap-note{
    width:100%;
    white-space:normal;
    text-align:left;
  }
}

/* Page background final polish: soften the fixed side gradient so it does not read as a stripe. */
.ng-page::before{
  inset:auto -14vw 4vh auto;
  width:28vw;
  min-width:220px;
  opacity:.32;
  background:radial-gradient(circle at 50% 50%,rgba(244,154,143,.18),rgba(255,249,243,0) 68%);
  filter:blur(18px);
}

@media(max-width:700px){
  .ng-page::before{
    opacity:.18;
    width:34vw;
  }
}

/* Message readability: give the director text calmer side margins. */
.ng-message-body{
  max-width:min(100% - 140px,1340px);
  margin:-18px auto 0;
  padding:76px clamp(76px,8vw,132px) 64px;
}

.ng-message-body > p{
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
}

.ng-message-body__lead{
  max-width:1120px;
}

@media(max-width:900px){
  .ng-message-body{
    max-width:none;
    margin:0;
    padding:54px 30px 68px;
  }

  .ng-message-body > p{
    max-width:none;
  }
}

@media(max-width:560px){
  .ng-message-body{
    padding:42px 22px 54px;
  }
}

@media(max-width:1040px){
  .ng-org-tier{
    grid-template-columns:1fr;
    gap:10px;
    width:100%;
    padding:18px 20px;
  }

  .ng-org-role-main{
    justify-content:space-between;
    padding-right:0;
  }

  .ng-org-role-main::after{
    display:none;
  }

  .ng-org-tier p{
    padding-left:0;
  }
}

/* Mobile org final override: keep a soft pyramid and prevent label collapse. */
@media(max-width:700px){
  .ng-org-pyramid{
    align-items:center;
    gap:13px;
  }

  .ng-org-tier{
    justify-self:center;
    width:var(--tier-width);
    max-width:100%;
    min-height:0;
    padding:16px 18px;
  }

  .ng-org-tier--director{ --tier-width:84%; }
  .ng-org-tier--chief{ --tier-width:88%; }
  .ng-org-tier--lead{ --tier-width:92%; }
  .ng-org-tier--sublead{ --tier-width:96%; }
  .ng-org-tier--teamlead{ --tier-width:100%; }

  .ng-org-role-main{
    flex-wrap:nowrap;
    min-width:0;
  }

  .ng-org-role-name{
    flex:1 1 auto;
    min-width:0;
    white-space:nowrap;
    font-size:clamp(1.08rem,5.2vw,1.34rem);
  }

  .ng-org-count{
    flex:0 0 auto;
  }

  .ng-org-tier p{
    gap:4px;
    line-height:1.42;
  }

  .ng-org-tier p strong,
  .ng-org-tier p span{
    overflow-wrap:normal;
    word-break:keep-all;
  }

  .ng-org-tier--teamlead .ng-org-role-name br{
    display:none;
  }
}

@media(max-width:480px){
  .ng-org-tier--teamlead .ng-org-role-main{
    flex-wrap:nowrap;
    justify-content:space-between;
  }

  .ng-org-tier--teamlead .ng-org-count{
    margin-top:0;
  }

  .ng-org-tier--teamlead .ng-org-role-name{
    font-size:clamp(1rem,4.8vw,1.18rem);
  }

  .ng-org-tier--teamlead .ng-org-count-icons img{
    width:28px;
    height:28px;
  }

  .ng-org-tier--teamlead .ng-org-count-icons img + img{
    margin-left:-10px;
  }
}

/* Mobile org pyramid: keep labels readable while preserving hierarchy. */
@media(max-width:700px){
  .ng-org-pyramid{
    align-items:center;
    gap:13px;
  }

  .ng-org-tier{
    justify-self:center;
    width:var(--tier-width);
    max-width:100%;
    min-height:0;
    padding:16px 18px;
  }

  .ng-org-tier--director{ --tier-width:84%; }
  .ng-org-tier--chief{ --tier-width:88%; }
  .ng-org-tier--lead{ --tier-width:92%; }
  .ng-org-tier--sublead{ --tier-width:96%; }
  .ng-org-tier--teamlead{ --tier-width:100%; }

  .ng-org-role-main{
    flex-wrap:nowrap;
    min-width:0;
  }

  .ng-org-role-name{
    flex:1 1 auto;
    min-width:0;
    white-space:nowrap;
    font-size:clamp(1.08rem,5.2vw,1.34rem);
  }

  .ng-org-count{
    flex:0 0 auto;
  }

  .ng-org-tier p{
    gap:4px;
    line-height:1.42;
  }

  .ng-org-tier p strong,
  .ng-org-tier p span{
    overflow-wrap:normal;
    word-break:keep-all;
  }

  .ng-org-tier--teamlead .ng-org-role-name br{
    display:none;
  }
}

@media(max-width:480px){
  .ng-org-tier--teamlead .ng-org-role-main{
    flex-wrap:nowrap;
    justify-content:space-between;
  }

  .ng-org-tier--teamlead .ng-org-count{
    margin-top:0;
  }

  .ng-org-tier--teamlead .ng-org-role-name{
    font-size:clamp(1rem,4.8vw,1.18rem);
  }

  .ng-org-tier--teamlead .ng-org-count-icons img{
    width:28px;
    height:28px;
  }

  .ng-org-tier--teamlead .ng-org-count-icons img + img{
    margin-left:-10px;
  }
}

/* Illustration reuse cleanup: let new section-specific images and real photos carry the story. */
.ng-illust-message-patient,
.ng-illust-support-person,
.ng-illust-jobs-walk,
.ng-talk-theme-illust,
.ng-illust-talk-speech{
  opacity:.12 !important;
  filter:saturate(.82) blur(.2px);
}

.ng-illust-people-speech,
.ng-illust-people-cloud,
.ng-illust-faq-bubble,
.ng-illust-faq-flower,
.ng-illust-entry-leaf,
.ng-illust-entry-bubble{
  opacity:.16 !important;
}

.ng-roadmap-steps article,
.ng-job,
.ng-voice-card,
.ng-faq-item{
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

@media(hover:hover) and (pointer:fine){
  .ng-roadmap-steps article:hover,
  .ng-job:hover,
  .ng-voice-card:hover,
  .ng-faq-item:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 42px rgba(93,73,58,.12);
    border-color:rgba(245,198,186,.68);
  }
}

.ng-roadmap-steps article:nth-child(odd) .ng-roadmap-illust{
  transform:rotate(-1.5deg);
}

.ng-roadmap-steps article:nth-child(even) .ng-roadmap-illust{
  transform:rotate(1.5deg);
}

@media(max-width:680px){
  .ng-illust-message-patient,
  .ng-illust-support-person,
  .ng-illust-jobs-walk,
  .ng-talk-theme-illust,
  .ng-illust-talk-speech{
    display:none !important;
  }

  .ng-roadmap-steps article,
  .ng-job,
  .ng-voice-card,
  .ng-faq-item{
    transition:none;
  }
}

@media(prefers-reduced-motion:reduce){
  .ng-roadmap-steps article,
  .ng-job,
  .ng-voice-card,
  .ng-faq-item,
  .ng-roadmap-illust{
    transition:none !important;
    transform:none !important;
  }
}

/* Hero Image 2 student: a fresh single-character cutout, kept secondary to the real staff photos. */
.ng-illust-hero-person{
  width:clamp(190px,11vw,235px);
  left:clamp(18px,2.6vw,42px);
  bottom:6px;
  opacity:.96;
  transform:rotate(-2deg);
  filter:drop-shadow(0 18px 24px rgba(64,82,76,.16));
}

@media(max-width:1000px){
  .ng-illust-hero-person{
    width:138px;
    left:0;
    bottom:105px;
  }
}

@media(max-width:680px){
  .ng-illust-hero-person{
    display:block !important;
    width:108px;
    left:2px;
    bottom:104px;
    opacity:.94;
  }
}

/* Message headline balance: slightly reduce the large desktop headline. */
.ng-message-copy h2{
  font-size:clamp(2.18rem,3.45vw,3.45rem);
  line-height:1.36;
}

@media(max-width:1200px) and (min-width:1001px){
  .ng-message-copy h2{
    font-size:clamp(2.45rem,4.85vw,3.45rem);
    line-height:1.36;
  }
}

@media(max-width:680px){
  .ng-message-copy h2{
    font-size:clamp(1.82rem,8.6vw,2.36rem);
    line-height:1.42;
  }
}

/* Entry invitation polish: soften the final CTA so it feels like a visit invite. */
.ng-entry-section{
  scroll-margin-top:110px;
  padding:64px 0 72px;
}

.ng-entry-card{
  isolation:isolate;
  background:
    radial-gradient(circle at 85% 12%, rgba(255,216,194,.72) 0 130px, transparent 132px),
    linear-gradient(135deg,#FFF7EF 0%,#FFFCF8 48%,#EDF8F0 100%);
  color:#304238;
  border:1px solid rgba(233,197,176,.74);
  border-radius:38px;
  padding:54px 48px 42px;
  box-shadow:0 22px 58px rgba(147,111,82,.14);
}

.ng-entry-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:14px;
  background:linear-gradient(180deg,#E98C77 0%,#F6BC74 48%,#8AC5A0 100%);
  opacity:.86;
  z-index:-1;
}

.ng-entry-card::after{
  right:-72px;
  top:-92px;
  width:300px;
  background:rgba(255,255,255,.58);
  z-index:-1;
}

.ng-entry-copy{
  max-width:760px;
  margin-bottom:28px;
  padding-right:210px;
}

.ng-entry-copy h2{
  color:#304238;
  max-width:560px;
}

.ng-entry-card .ng-section-label{
  color:#C96F59;
  background:rgba(255,255,255,.82);
  box-shadow:0 8px 22px rgba(201,111,89,.11);
}

.ng-entry-card h2,
.ng-entry-card p{
  color:#304238;
}

.ng-entry-card p{
  max-width:620px;
  color:#65766F;
  opacity:1;
  margin:14px 0 0;
}

.ng-entry-form{
  margin-top:64px;
  padding:14px;
  border-radius:30px;
  background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,248,241,.9));
  border:1px solid rgba(226,190,167,.54);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.62),0 18px 38px rgba(147,111,82,.11);
}

.ng-entry-form-frame{
  padding:14px;
  background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(247,252,246,.86));
  border:1px solid rgba(211,226,204,.72);
}

.ng-entry-iframe{
  border-radius:20px;
  background:#FFFCF8;
  box-shadow:0 14px 26px rgba(98,72,52,.09);
}

.ng-illust-entry-person{
  width:188px;
  top:34px;
  right:54px;
  opacity:.96;
  filter:drop-shadow(0 16px 24px rgba(111,83,62,.12));
}

.ng-illust-entry-lines,
.ng-illust-entry-spark,
.ng-illust-entry-leaf,
.ng-illust-entry-bubble,
.ng-illust-entry-dot{
  opacity:.38;
}

@media(max-width:1040px){
  .ng-entry-card{
    padding:48px 34px 36px;
  }

  .ng-entry-copy{
    padding-right:170px;
  }

  .ng-illust-entry-person{
    width:150px;
    right:34px;
    top:44px;
  }

}

@media(max-width:680px){
  .ng-entry-section{
    scroll-margin-top:92px;
    padding:46px 0 54px;
  }

  .ng-entry-card{
    border-radius:30px;
    padding:32px 18px 24px;
  }

  .ng-entry-card::before{
    width:8px;
  }

  .ng-entry-copy{
    padding-right:0;
    margin-bottom:20px;
  }

  .ng-entry-copy h2{
    font-size:clamp(2rem,10vw,2.75rem);
  }

  .ng-entry-card p{
    margin-top:12px;
  }

  .ng-entry-form,
  .ng-entry-form-frame{
    padding:8px;
    border-radius:22px;
  }

  .ng-entry-iframe{
    height:1680px;
    border-radius:16px;
  }

  .ng-illust-entry-person{
    position:relative;
    display:block;
    top:auto;
    right:auto;
    width:128px;
    margin:-6px 0 8px auto;
    opacity:.9;
  }
}

/* Crosstalk Image 2 pass: add a purpose-made conversation scene, not reused group art. */
.ng-talk-episode article{
  display:grid;
  grid-template-columns:minmax(250px,.36fr) minmax(0,1fr);
  gap:18px 34px;
  align-items:start;
}

.ng-talk-episode article>span,
.ng-talk-episode h3,
.ng-talk-scene-illust{
  grid-column:1;
}

.ng-talk-episode h3{
  margin-bottom:6px;
}

.ng-talk-scene-illust{
  display:block;
  width:min(100%,320px);
  height:auto;
  margin:8px auto 0;
  filter:drop-shadow(0 18px 24px rgba(93,73,58,.1));
  animation:ng-talk-float 5.8s ease-in-out infinite;
}

.ng-talk-episode .ng-talk-chat{
  grid-column:2;
  grid-row:1 / span 3;
  padding-top:38px;
}

.ng-talk-chat p{
  width:100%;
}

@keyframes ng-talk-float{
  0%,100%{ transform:translateY(0) rotate(-1deg); }
  50%{ transform:translateY(-7px) rotate(1deg); }
}

@media(prefers-reduced-motion:reduce){
  .ng-talk-scene-illust{
    animation:none;
  }
}

@media(max-width:1040px){
  .ng-talk-episode article{
    grid-template-columns:1fr;
  }

  .ng-talk-episode article>span,
  .ng-talk-episode h3,
  .ng-talk-scene-illust,
  .ng-talk-episode .ng-talk-chat{
    grid-column:1;
  }

  .ng-talk-episode .ng-talk-chat{
    grid-row:auto;
    padding-top:4px;
  }

  .ng-talk-scene-illust{
    width:min(74%,330px);
    margin:0 auto 10px;
  }
}

@media(max-width:680px){
  .ng-talk-episode article{
    gap:14px;
  }

  .ng-talk-scene-illust{
    width:min(96%,300px);
    margin:0 auto 2px;
  }

  .ng-talk-chat{
    gap:10px;
  }

  .ng-talk-chat p{
    padding:16px 18px;
    line-height:1.8;
  }
}

/* Crosstalk PDF inline fix: keep the PDF block full-width inside the episode grid. */
.ng-talk-download--inline{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:16px 22px;
  width:100%;
}

.ng-talk-download--inline div{
  display:contents;
}

.ng-talk-download--inline span{
  grid-column:1;
  grid-row:1;
}

.ng-talk-download--inline p{
  grid-column:2;
  grid-row:1;
  min-width:0;
}

.ng-talk-download--inline a{
  grid-column:3;
  grid-row:1;
  justify-self:end;
}

@media(max-width:1040px){
  .ng-talk-download--inline{
    grid-template-columns:64px minmax(0,1fr);
  }

  .ng-talk-download--inline a{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
    justify-self:stretch;
  }
}

@media(max-width:680px){
  .ng-talk-download--inline{
    grid-template-columns:56px minmax(0,1fr);
    padding:18px;
  }
}

/* Facts cleanup: keep the reused background person hidden. */
.ng-illust-numbers-person{
  display:none !important;
}

.ng-numbers .ng-split-head{
  max-width:620px;
}

.ng-number-grid article{
  transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}

.ng-number-grid article:hover{
  transform:translateY(-5px);
}

/* Motion polish: keep motion intentional after adding purpose-made illustrations. */
.ng-cutout{
  animation:none !important;
}

.ng-talk-scene-illust{
  animation:ng-talk-float 8.5s ease-in-out infinite !important;
}

.ng-photo,
.ng-hero-badge{
  animation-duration:10s;
}

.ng-entry{
  animation-duration:4.8s;
}

@media(max-width:1200px){
  .ng-header.ng-header-hidden{
    opacity:0;
    pointer-events:none;
    transform:translateY(calc(-100% - 22px));
  }
}

/* Anchor polish: keep section labels clear below the sticky header. */
#jobs,
#people,
#numbers,
#support,
#talk,
#faq,
#entry{
  scroll-margin-top:110px;
}

@media(max-width:680px){
  #jobs,
  #people,
  #numbers,
  #support,
  #talk,
  #faq,
  #entry{
    scroll-margin-top:92px;
  }
}

/* Mobile reading polish: keep the brand/CTA handy without covering long visual sections. */
@media(max-width:680px){
  .ng-header{
    top:10px;
    left:12px;
    right:12px;
    width:auto;
    gap:8px;
    padding:7px 9px;
    border:1px solid rgba(245,198,186,.62);
    border-radius:22px;
    background:rgba(255,249,243,.94);
    box-shadow:0 12px 28px rgba(93,73,58,.12);
  }

  header.ng-header.shrink{
    padding:7px 9px;
    background:rgba(255,249,243,.96);
    box-shadow:0 12px 28px rgba(93,73,58,.14);
  }

  .ng-header .logo{
    width:142px;
    max-width:43vw;
  }

  .ng-header .ng-entry{
    min-height:42px;
    padding:9px 13px;
    font-size:.72rem;
  }

  .ng-header.ng-header-hidden{
    opacity:0;
    pointer-events:none;
    transform:translateY(calc(-100% - 22px));
  }
}

/* Mobile illustration pass: make roadmap motifs readable without returning to large scene art. */
@media(max-width:680px){
  .ng-header{
    top:10px;
    left:12px;
    right:12px;
    width:auto;
    padding:7px 9px;
  }

  .ng-header .ng-entry{
    padding:9px 13px;
    font-size:.72rem;
  }

  .ng-roadmap-steps{
    gap:20px;
  }

  .ng-roadmap-steps article:nth-child(n){
    padding:22px 20px 24px;
    border-radius:24px;
    overflow:hidden;
  }

  .ng-roadmap-card-head{
    position:relative !important;
    min-height:82px;
    padding-right:112px;
    margin-bottom:-6px;
    gap:7px;
    align-items:flex-start;
  }

  .ng-roadmap-card-head::before{
    content:"";
    position:absolute;
    z-index:0;
    top:2px;
    right:0;
    width:106px;
    height:82px;
    border-radius:32px;
    background:linear-gradient(135deg, rgba(255,255,255,.84), rgba(234,247,245,.48));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.62);
  }

  .ng-roadmap-card-head span,
  .ng-roadmap-card-head small{
    position:relative;
    z-index:2;
  }

  .ng-roadmap-card-head small{
    max-width:90px;
    padding:5px 9px;
    font-size:.72rem;
    line-height:1.2;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    z-index:1;
    top:10px;
    right:9px;
    width:94px !important;
    max-width:94px !important;
    max-height:86px !important;
    opacity:.9;
    filter:drop-shadow(0 10px 18px rgba(69,86,82,.12));
  }

  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust{
    width:86px !important;
    max-width:86px !important;
  }

  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:100px !important;
    max-width:100px !important;
  }

  .ng-roadmap-steps h3{
    max-width:220px;
    margin-top:-4px;
    font-size:clamp(1.46rem,7vw,1.72rem);
    line-height:1.28;
  }

  .ng-roadmap-steps p{
    font-size:.94rem;
    line-height:1.86;
  }

  .ng-roadmap-detail{
    margin-top:14px;
    padding-top:14px;
  }
}

@media(max-width:380px){
  .ng-roadmap-card-head{
    min-height:76px;
    padding-right:98px;
  }

  .ng-roadmap-card-head::before{
    width:92px;
    height:74px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:82px !important;
    max-width:82px !important;
    max-height:76px !important;
  }
}

/* Image 2 roadmap scene pass: use purpose-made step illustrations with more warmth. */
.ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
  opacity:.94;
  filter:drop-shadow(0 14px 22px rgba(69,86,82,.13));
}

.ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust{
  top:22px;
  right:24px;
  width:150px !important;
  max-width:150px !important;
  max-height:176px !important;
}

.ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust{
  top:34px;
  width:172px !important;
  max-width:172px !important;
  max-height:146px !important;
}

.ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust{
  top:28px;
  width:146px !important;
  max-width:146px !important;
  max-height:150px !important;
}

.ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
  top:34px;
  width:166px !important;
  max-width:166px !important;
  max-height:142px !important;
}

@media(min-width:1201px){
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    top:24px;
    right:22px;
    width:128px !important;
    max-width:128px !important;
    max-height:110px !important;
  }
}

@media(max-width:1200px){
  .ng-roadmap-steps article:nth-child(n){
    padding-right:228px;
  }

  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust{
    width:176px !important;
    max-width:176px !important;
    max-height:206px !important;
  }

  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:198px !important;
    max-width:198px !important;
    max-height:170px !important;
  }

  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust{
    width:170px !important;
    max-width:170px !important;
    max-height:174px !important;
  }
}

@media(max-width:680px){
  .ng-roadmap-card-head{
    min-height:94px;
    padding-right:128px;
    margin-bottom:-3px;
  }

  .ng-roadmap-card-head::before{
    width:122px;
    height:90px;
  }

  .ng-roadmap-steps h3{
    max-width:214px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    top:7px;
    right:6px;
    width:112px !important;
    max-width:112px !important;
    max-height:92px !important;
    opacity:.96;
  }

  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust{
    width:100px !important;
    max-width:100px !important;
    max-height:104px !important;
  }
}

@media(max-width:380px){
  .ng-roadmap-card-head{
    min-height:88px;
    padding-right:112px;
  }

  .ng-roadmap-card-head::before{
    width:104px;
    height:82px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:98px !important;
    max-width:98px !important;
    max-height:82px !important;
  }
}

/* ========== final review tuning: message, roadmap path, mid CTAs ========== */
.ng-message-catch{
  max-width:900px;
  margin:0 0 24px;
  color:#304238 !important;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:clamp(1.18rem,2vw,1.55rem) !important;
  line-height:1.7 !important;
  font-weight:700;
  letter-spacing:.04em;
}

.ng-roadmap-steps{
  gap:34px 30px;
}

.ng-roadmap-steps::before{
  display:block;
  content:"";
  position:absolute;
  inset:20px 4% 38px;
  z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 520' preserveAspectRatio='none'%3E%3Cpath d='M150 142 C270 122 380 145 500 142 S720 162 850 142 C842 250 760 324 610 342 C482 358 386 360 306 394 C404 438 544 430 690 420' fill='none' stroke='%238fc3aa' stroke-width='10' stroke-linecap='round' stroke-linejoin='round' stroke-dasharray='18 24' opacity='.48'/%3E%3Cpath d='M150 142 C270 122 380 145 500 142 S720 162 850 142 C842 250 760 324 610 342 C482 358 386 360 306 394 C404 438 544 430 690 420' fill='none' stroke='%23f6cf5b' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' opacity='.32'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:100% 100%;
  pointer-events:none;
}

.ng-roadmap-steps article{
  overflow:visible;
  border-color:rgba(255,255,255,.72);
  box-shadow:0 14px 34px rgba(93,73,58,.075);
}

.ng-roadmap-steps article:nth-child(1){
  background:linear-gradient(180deg,rgba(255,249,217,.78),rgba(255,255,255,.78));
}

.ng-roadmap-steps article:nth-child(2){
  background:linear-gradient(180deg,rgba(255,237,230,.76),rgba(255,255,255,.78));
}

.ng-roadmap-steps article:nth-child(3){
  background:linear-gradient(180deg,rgba(234,246,248,.78),rgba(255,255,255,.78));
}

.ng-roadmap-steps article:nth-child(4){
  background:linear-gradient(180deg,rgba(234,241,229,.78),rgba(255,255,255,.78));
}

.ng-roadmap-steps article:nth-child(5){
  background:linear-gradient(180deg,rgba(238,245,255,.78),rgba(255,255,255,.78));
}

.ng-roadmap-steps article::after{
  content:"";
  position:absolute;
  z-index:5;
  display:block;
  width:40px;
  height:20px;
  background:#8fc3aa;
  clip-path:polygon(0 42%,68% 42%,68% 18%,100% 50%,68% 82%,68% 58%,0 58%);
  opacity:.72;
  filter:drop-shadow(0 6px 9px rgba(93,73,58,.16));
  pointer-events:none;
}

.ng-roadmap-steps article:nth-child(1)::after,
.ng-roadmap-steps article:nth-child(2)::after{
  top:50%;
  right:-36px;
  transform:translateY(-50%);
}

.ng-roadmap-steps article:nth-child(3)::after{
  right:auto;
  left:-66%;
  bottom:-44px;
  transform:rotate(142deg);
}

.ng-roadmap-steps article:nth-child(4)::after{
  top:50%;
  right:-36px;
  transform:translateY(-50%);
}

.ng-roadmap-steps article:nth-child(5)::after{
  display:none;
}

.ng-section-cta{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  max-width:900px;
  margin:30px auto 0;
  padding:18px 22px;
  border-radius:28px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(245,223,212,.88);
  box-shadow:0 16px 36px rgba(93,73,58,.1);
}

.ng-section-cta span{
  display:inline-flex;
  width:max-content;
  margin-bottom:6px;
  padding:5px 12px;
  border-radius:999px;
  background:rgba(209,111,89,.12);
  color:#D16F59;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
}

.ng-section-cta p{
  margin:0;
  color:#5f7168;
  font-size:.95rem;
  line-height:1.8;
}

.ng-section-cta a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:210px;
  min-height:52px;
  padding:0 24px;
  border-radius:999px;
  background:#D16F59;
  color:#fff;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  text-decoration:none;
  box-shadow:0 12px 24px rgba(209,111,89,.22);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.ng-section-cta a:hover{
  transform:translateY(-2px);
  background:#bf604e;
  box-shadow:0 16px 30px rgba(209,111,89,.28);
}

.ng-section-cta--jobs{
  margin-top:26px;
}

@media(max-width:1200px) and (min-width:1001px){
  .ng-roadmap-steps article:nth-child(1)::after,
  .ng-roadmap-steps article:nth-child(3)::after{
    top:50%;
    right:-34px;
    transform:translateY(-50%);
  }

  .ng-roadmap-steps article:nth-child(2)::after,
  .ng-roadmap-steps article:nth-child(4)::after{
    top:auto;
    right:auto;
    bottom:-35px;
    left:46%;
    transform:rotate(122deg);
  }

  .ng-roadmap-steps article:nth-child(5)::after{
    display:none;
  }
}

@media(max-width:1000px){
  .ng-roadmap-steps article:nth-child(1)::after,
  .ng-roadmap-steps article:nth-child(3)::after{
    top:50%;
    right:-34px;
    transform:translateY(-50%);
  }

  .ng-roadmap-steps article:nth-child(2)::after,
  .ng-roadmap-steps article:nth-child(4)::after{
    top:auto;
    right:auto;
    bottom:-35px;
    left:46%;
    transform:rotate(122deg);
  }

  .ng-roadmap-steps article:nth-child(5)::after{
    display:none;
  }
}

@media(max-width:680px){
  .ng-message-catch{
    margin-bottom:18px;
    font-size:1.08rem !important;
    line-height:1.8 !important;
  }

  .ng-roadmap-steps{
    gap:36px;
  }

  .ng-roadmap-steps::before{
    inset:auto;
    left:50%;
    top:146px;
    bottom:156px;
    width:4px;
    height:auto;
    transform:translateX(-50%);
    border-radius:999px;
    background:linear-gradient(180deg,rgba(143,195,170,.04),rgba(143,195,170,.28),rgba(246,207,91,.16),rgba(143,195,170,.28),rgba(143,195,170,.04));
    opacity:.48;
  }

  .ng-roadmap-steps article:not(:last-child)::after{
    top:auto;
    right:auto;
    bottom:-29px;
    left:50%;
    width:34px;
    height:17px;
    transform:translateX(-50%) rotate(90deg);
  }

  .ng-section-cta{
    flex-direction:column;
    align-items:stretch;
    margin-top:24px;
    padding:18px;
    text-align:left;
  }

  .ng-section-cta a{
    width:100%;
    min-width:0;
  }
}

/* Organization chart final responsive tuning */
@media(max-width:1000px){
  .ng-org-chart{
    padding:28px 22px 32px;
  }

  .ng-org-pyramid{
    max-width:760px;
  }

  .ng-org-tier{
    width:100%;
    grid-template-columns:minmax(150px,.36fr) minmax(0,.64fr);
  }
}

@media(max-width:700px){
  .ng-org-chart{
    padding:18px 14px;
    gap:16px;
    border-radius:24px;
  }

  .ng-org-pyramid{
    gap:12px;
  }

  .ng-org-pyramid::before,
  .ng-org-tier + .ng-org-tier::before{
    display:none;
  }

  .ng-org-tier{
    width:100%;
    grid-template-columns:1fr;
    gap:8px;
    padding:16px;
    border-radius:22px;
  }

  .ng-org-role-main{
    justify-content:space-between;
    gap:10px;
  }

  .ng-org-role-name{
    font-size:1.24rem;
  }

  .ng-org-count{
    padding:4px 10px;
    font-size:.76rem;
  }

  .ng-org-tier p{
    font-size:.86rem;
  }

  .ng-org-members{
    padding:18px 14px;
    border-radius:24px;
  }

  .ng-org-members-head{
    justify-content:flex-start;
    gap:10px;
  }

  .ng-org-newgraduate{
    grid-template-columns:auto minmax(0,1fr);
    gap:12px;
    padding:16px;
    border-radius:24px;
  }

  .ng-org-newgraduate > span{
    width:46px;
    height:46px;
  }

  .ng-org-newgraduate strong{
    font-size:1.34rem;
  }

  .ng-org-newgraduate p{
    font-size:.84rem;
  }
}

/* Roadmap stability override: keep intermediate widths simple and unbreakable. */
@media(max-width:1200px){
  .ng-training-roadmap{
    padding:28px 20px 34px;
  }

  .ng-roadmap-note{
    margin-bottom:14px;
    padding:12px 18px;
  }

  .ng-roadmap-steps{
    grid-template-columns:1fr !important;
    gap:24px !important;
    max-width:560px;
    padding-top:8px;
  }

  .ng-roadmap-steps::before{
    inset:auto;
    left:50%;
    top:150px;
    bottom:150px;
    width:4px;
    height:auto;
    transform:translateX(-50%);
    border-radius:999px;
    background:linear-gradient(180deg,rgba(143,195,170,.04),rgba(143,195,170,.24),rgba(246,207,91,.14),rgba(143,195,170,.24),rgba(143,195,170,.04));
    opacity:.42;
  }

  .ng-roadmap-steps article:nth-child(n){
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:none !important;
    min-height:0;
    padding:18px 20px 20px;
    border-radius:24px;
    transform:none !important;
  }

  .ng-roadmap-card-head{
    min-height:42px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    display:none !important;
    width:48px;
    height:48px;
  }

  .ng-roadmap-steps h3{
    margin:10px 0 8px;
    font-size:1.36rem;
    line-height:1.42;
  }

  .ng-roadmap-steps p{
    line-height:1.68;
  }

  .ng-roadmap-detail{
    padding-top:12px;
  }

  .ng-roadmap-steps article:not(:last-child)::after{
    top:auto !important;
    right:auto !important;
    bottom:-22px !important;
    left:50% !important;
    width:30px;
    height:15px;
    transform:translateX(-50%) rotate(90deg) !important;
  }

  .ng-roadmap-steps article:last-child::after{
    display:none !important;
  }
}

@media(max-width:680px){
  .ng-roadmap-steps{
    max-width:none;
  }
}

/* Support organization chart: basic vertical pyramid shape. */
.ng-support-org{
  padding:46px 52px 54px;
}

.ng-support-org .ng-org-deco{
  display:none;
}

.ng-org-head{
  display:grid;
  justify-items:start;
  gap:14px;
  margin-bottom:34px;
  text-align:left;
}

.ng-org-head .ng-org-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  width:max-content;
  margin:0 0 2px;
  padding:17px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.76);
  color:#304238;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:1.28rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:0;
  box-shadow:0 14px 26px rgba(93,73,58,.08);
}

.ng-org-head .ng-org-kicker::before{
  content:"";
  width:38px;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,#F6CF5B,#F49A8F,#83BFCE);
}

.ng-org-head h2{
  max-width:980px;
  margin:0;
  color:#304238;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:clamp(1.72rem,3.05vw,2.72rem);
  line-height:1.45;
  letter-spacing:0;
}

.ng-org-head > p:not(.ng-org-kicker){
  margin:0;
  color:#6A7871;
  font-size:clamp(1rem,1.5vw,1.24rem);
  line-height:1.8;
  font-weight:700;
}

.ng-org-chart{
  padding:56px 60px 44px;
  border-radius:32px;
  border:1px solid rgba(245,198,186,.72);
  background:linear-gradient(180deg,rgba(255,250,246,.94),rgba(255,255,255,.9));
}

.ng-org-pyramid{
  gap:12px;
}

.ng-org-pyramid::before{
  display:none;
}

.ng-org-tier{
  width:var(--tier-width);
  min-height:68px;
  grid-template-columns:minmax(320px,1.2fr) minmax(220px,1fr);
  justify-content:stretch;
  gap:0;
  padding:0 28px;
  border-radius:17px;
  box-shadow:0 14px 28px rgba(93,73,58,.1);
  overflow:hidden;
}

.ng-org-tier + .ng-org-tier::before{
  content:"";
  top:-13px;
  width:3px;
  height:20px;
  border-radius:999px;
  background:rgba(143,195,170,.72);
  box-shadow:none;
}

.ng-org-tier--director{ --tier-width:78%; --tier-color:#5F9CCD; }
.ng-org-tier--chief{ --tier-width:82%; --tier-color:#67A8D4; }
.ng-org-tier--lead{ --tier-width:86%; --tier-color:#56B9AB; }
.ng-org-tier--sublead{ --tier-width:91%; --tier-color:#6CC6B8; }
.ng-org-tier--teamlead{ --tier-width:96%; --tier-color:#9ACB8A; }

.ng-org-role-main{
  justify-content:flex-end;
  gap:16px;
  min-width:0;
  padding-right:24px;
}

.ng-org-role-main::after{
  content:"";
  width:1px;
  height:34px;
  margin-left:10px;
  background:rgba(255,255,255,.72);
}

.ng-org-role-name{
  font-size:clamp(1.32rem,2vw,1.82rem);
  white-space:nowrap;
}

.ng-org-count{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:6px 18px;
  background:#fff;
  border-color:rgba(255,255,255,.88);
  color:var(--tier-color);
}

.ng-org-count-icons{
  display:inline-flex;
  align-items:center;
}

.ng-org-count-icons img{
  width:40px;
  height:40px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 5px 12px rgba(93,73,58,.14);
}

.ng-org-count-icons img + img{
  margin-left:-10px;
}

.ng-org-tier--teamlead .ng-org-count{
  padding-inline:14px;
}

.ng-org-tier--teamlead .ng-org-role-name{
  font-size:clamp(1.14rem,1.55vw,1.48rem);
}

.ng-org-tier--teamlead .ng-org-count-icons img{
  width:34px;
  height:34px;
}

.ng-org-tier--teamlead .ng-org-count-icons img + img{
  margin-left:-11px;
}

.ng-org-tier p{
  min-width:0;
  padding-left:24px;
  color:#fff;
  font-size:clamp(.88rem,1vw,1rem);
  line-height:1.55;
  overflow-wrap:anywhere;
  white-space:nowrap;
}

.ng-org-members{
  position:relative;
  width:min(100%,920px);
  margin-top:18px;
  padding:28px 38px 32px;
  border-radius:30px;
  border:2px solid rgba(154,203,138,.84);
  background:
    linear-gradient(90deg,rgba(154,203,138,.12) 0 1px,transparent 1px 100%) 0 0 / 64px 64px,
    linear-gradient(180deg,rgba(247,253,244,.98),rgba(255,255,255,.94));
  box-shadow:0 18px 42px rgba(93,73,58,.08), inset 0 0 0 8px rgba(255,255,255,.48);
  isolation:isolate;
}

.ng-org-members::before{
  content:"";
  position:absolute;
  left:50%;
  top:-18px;
  width:3px;
  height:18px;
  border-radius:999px;
  background:rgba(143,195,170,.72);
  transform:translateX(-50%);
}

.ng-org-members-head{
  position:relative;
  z-index:2;
  justify-content:center;
  gap:22px;
  margin-bottom:18px;
}

.ng-org-members-head .ng-org-role-name{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.ng-org-members-head .ng-org-role-name::before,
.ng-org-members-head .ng-org-role-name::after{
  content:"";
  width:30px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#F6CF5B,#8FC3AA);
}

.ng-org-members-head .ng-org-role-name::after{
  background:linear-gradient(90deg,#8FC3AA,#F49A8F);
}

.ng-org-member-faces{
  position:relative;
  z-index:2;
  display:flex;
  flex-wrap:nowrap;
  justify-content:center;
  width:max-content;
  max-width:100%;
  gap:10px;
  margin:0 auto;
  padding:10px 16px;
  border:1px solid rgba(154,203,138,.38);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 22px rgba(93,73,58,.06);
}

.ng-org-member-faces::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-18px;
  width:2px;
  height:18px;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(154,203,138,.52),rgba(211,115,97,.42));
  transform:translateX(-50%);
}

.ng-org-member-faces img{
  width:52px;
  height:52px;
  border-radius:50%;
  background:#fff;
  border:3px solid rgba(255,255,255,.96);
  box-shadow:0 8px 18px rgba(93,73,58,.1);
}

.ng-org-newgraduate{
  max-width:none;
  position:relative;
  max-width:760px;
  margin:30px auto 0;
  padding:24px 30px;
  border-radius:32px;
  border-color:rgba(211,115,97,.42);
  background:linear-gradient(90deg,rgba(255,246,241,.98),rgba(255,252,248,.98));
  box-shadow:0 18px 34px rgba(93,73,58,.1);
}

.ng-org-newgraduate::before{
  content:"JOIN";
  position:absolute;
  left:50%;
  top:-17px;
  display:grid;
  place-items:center;
  width:76px;
  height:28px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(211,115,97,.32);
  color:#D37361;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.08em;
  box-shadow:0 0 0 8px rgba(255,250,246,.98);
  transform:translateX(-50%);
  z-index:2;
}

.ng-org-summary{
  width:max-content;
  max-width:100%;
  margin:16px auto 0;
  padding:12px 28px;
  border:1px solid rgba(245,198,186,.72);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#304238;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:1rem;
  font-weight:700;
  line-height:1.6;
  text-align:center;
}

@media(max-width:900px){
  .ng-illust-support-vine,
  .ng-roadmap-deco-confetti,
  .ng-talk-download-deco{
    display:none;
  }

  .ng-support-org{
    padding:32px 22px 38px;
  }

  .ng-org-chart{
    padding:34px 18px 28px;
  }

  .ng-org-tier{
    width:100%;
    grid-template-columns:1fr;
    gap:8px;
    min-height:0;
    padding:18px 20px;
  }

  .ng-org-role-main{
    justify-content:space-between;
    padding-right:0;
  }

  .ng-org-role-main::after{
    display:none;
  }

  .ng-org-tier p{
    padding-left:0;
    white-space:normal;
  }

  .ng-org-count{
    gap:6px;
    padding:5px 11px;
    font-size:.76rem;
  }

  .ng-org-count-icons img{
    width:32px;
    height:32px;
  }

  .ng-org-count-icons img + img{
    margin-left:-9px;
  }

  .ng-org-members{
    margin-top:14px;
    padding:22px 18px 24px;
  }

  .ng-org-member-faces{
    flex-wrap:nowrap;
    gap:4px;
    width:100%;
    max-width:240px;
    padding:8px 8px;
    border-radius:999px;
    margin-top:0;
  }

  .ng-org-member-faces img{
    width:32px;
    height:32px;
    border-width:2px;
  }

  .ng-org-newgraduate{
    border-radius:24px;
    margin-top:26px;
    padding:20px 16px;
  }

  .ng-org-summary{
    width:auto;
    border-radius:22px;
    padding:12px 16px;
  }
}

@media(max-width:480px){
  .ng-org-tier--teamlead .ng-org-role-main{
    flex-wrap:wrap;
    justify-content:flex-start;
  }

  .ng-org-tier--teamlead .ng-org-count{
    margin-top:4px;
  }
}

/* Roadmap illustration balance: make one-column cards feel intentionally composed. */
@media(max-width:1200px) and (min-width:681px){
  .ng-roadmap-steps article:nth-child(n){
    position:relative;
    padding:24px 32px 28px;
  }

  .ng-roadmap-card-head{
    align-items:flex-start;
    min-height:52px;
    margin-bottom:14px;
  }

  .ng-roadmap-card-head::after{
    right:0;
    top:0;
    width:96px;
    height:42px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    display:none !important;
    position:absolute;
    top:26px;
    right:32px;
    width:112px;
    height:112px;
    margin:0;
    opacity:.96;
    filter:drop-shadow(0 18px 24px rgba(93,73,58,.14));
  }

  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust{
    width:132px;
    height:96px;
    top:30px;
  }

  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    width:124px;
    height:92px;
    top:32px;
  }
}

@media(max-width:680px){
  .ng-roadmap-steps article:nth-child(n){
    position:relative;
  }

  .ng-roadmap-card-head{
    min-height:44px;
    margin-bottom:14px;
  }

  .ng-roadmap-card-head::after{
    right:0;
    top:0;
    width:72px;
    height:34px;
    opacity:.54;
  }

  .ng-roadmap-steps small{
    padding:6px 14px;
    font-size:.9rem;
  }

  .ng-roadmap-steps h3{
    font-size:1.28rem;
    line-height:1.45;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    display:none !important;
    position:absolute;
    top:18px;
    right:20px;
    width:66px;
    height:66px;
    margin:0;
  }
}

/* Final roadmap scene override. Keep this after legacy mobile tuning. */
.ng-roadmap-steps article{
  overflow:hidden;
}

.ng-roadmap-card-head{
  position:static;
  min-height:40px;
}

.ng-roadmap-card-head::after{
  display:none !important;
}

.ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
  display:block !important;
  position:absolute;
  z-index:0;
  right:14px;
  top:52px;
  width:116px;
  height:auto;
  max-height:112px;
  object-fit:contain;
  opacity:.9;
  filter:drop-shadow(0 16px 24px rgba(93,73,58,.12));
}

.ng-roadmap-steps article > *{
  position:relative;
  z-index:1;
}

.ng-roadmap-steps article > .ng-roadmap-illust{
  z-index:0;
}

@media(max-width:1200px){
  .ng-roadmap-steps{
    max-width:760px;
    gap:18px !important;
  }

  .ng-roadmap-steps article:nth-child(n){
    min-height:230px;
    padding:22px 240px 22px 28px;
  }

  .ng-roadmap-card-head{
    margin-bottom:10px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    top:28px;
    right:28px;
    width:340px !important;
    max-width:340px;
    max-height:300px;
    opacity:.99;
  }

  .ng-roadmap-steps h3{
    margin-top:8px;
  }

  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    max-width:360px;
  }

  .ng-roadmap-steps p{
    line-height:1.62;
  }

  .ng-roadmap-detail{
    margin-top:12px;
    padding-top:12px;
  }
}

@media(max-width:900px) and (min-width:681px){
  .ng-roadmap-steps{
    max-width:680px;
  }

  .ng-roadmap-steps article:nth-child(n){
    min-height:300px;
    padding:22px 310px 24px 28px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    width:270px !important;
    max-width:270px;
    max-height:250px;
    right:24px;
  }

  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    max-width:300px;
  }
}

@media(max-width:680px){
  .ng-roadmap-steps article:nth-child(n){
    min-height:0;
    padding:20px 18px 22px;
  }

  .ng-roadmap-card-head{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    padding-right:0;
    position:relative !important;
  }

  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    max-width:none;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    position:relative;
    top:auto;
    right:auto;
    width:min(280px,84%) !important;
    max-width:280px;
    max-height:225px;
    margin:2px auto 0;
    opacity:.98;
  }
}

/* Final roadmap motif override: use small rehab-related accents, not large scene art. */
.ng-roadmap-card-head{
  position:static !important;
  justify-content:flex-start;
  align-items:center;
  gap:8px;
  min-height:42px;
  margin-bottom:8px;
  padding-right:170px;
  flex-wrap:wrap;
}

.ng-roadmap-card-head small{
  width:max-content;
  max-width:100%;
  margin:0;
  padding:6px 13px;
  border-radius:999px;
  background:#F7FBF3;
  color:#55745E;
  font-family:"Zen Maru Gothic",sans-serif;
  font-weight:700;
  font-size:clamp(.78rem,.95vw,.9rem);
  line-height:1.2;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
}

.ng-roadmap-steps h3{
  margin-top:4px;
}

.ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
  display:block !important;
  position:absolute !important;
  z-index:0;
  top:28px;
  right:30px;
  width:128px !important;
  max-width:128px !important;
  max-height:128px !important;
  height:auto;
  object-fit:contain;
  opacity:.7;
  filter:drop-shadow(0 12px 20px rgba(93,73,58,.08));
}

.ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust{
  width:112px !important;
  max-width:112px !important;
}

.ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
  width:150px !important;
  max-width:150px !important;
}

@media(max-width:1200px){
  .ng-roadmap-steps{
    max-width:760px;
  }

  .ng-roadmap-steps article:nth-child(n){
    min-height:260px;
    padding:22px 190px 24px 28px;
  }

  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    max-width:500px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust{
    top:34px;
    right:34px;
    width:150px !important;
    max-width:150px !important;
    max-height:150px !important;
  }

  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust{
    width:132px !important;
    max-width:132px !important;
  }

  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:168px !important;
    max-width:168px !important;
  }
}

@media(max-width:680px){
  .ng-roadmap-steps article:nth-child(n){
    min-height:0;
    padding:20px 18px 22px;
  }

  .ng-roadmap-card-head{
    position:relative !important;
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    gap:7px;
    padding-right:68px;
    min-height:54px;
    margin-bottom:4px;
    flex-wrap:nowrap;
  }

  .ng-roadmap-card-head small{
    min-width:0;
    padding:5px 8px;
    font-size:.68rem;
    line-height:1.15;
    text-align:center;
    white-space:normal;
  }

  .ng-roadmap-steps h3{
    margin-top:0;
  }

  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    max-width:none;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    position:absolute !important;
    top:-4px;
    right:0;
    width:62px !important;
    max-width:62px !important;
    max-height:60px !important;
    margin:0;
    width:76px !important;
    max-width:76px !important;
    max-height:70px !important;
    opacity:.76;
  }
}

/* Roadmap image safety: keep heads away from the clipped card edge. */
.ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
  top:42px !important;
  max-height:136px !important;
}

@media(max-width:1200px){
  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    top:54px !important;
    max-height:126px !important;
  }
}

@media(max-width:680px){
  .ng-roadmap-card-head{
    min-height:76px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    top:10px !important;
    right:4px !important;
    max-height:58px !important;
  }
}

/* Roadmap period label: keep the timing pill readable. */
.ng-roadmap-card-head small{
  padding:7px 15px;
  font-size:clamp(.9rem,1.08vw,1.04rem);
  line-height:1.2;
}

@media(max-width:680px){
  .ng-roadmap-card-head small{
    padding:7px 11px;
    font-size:.86rem;
    line-height:1.16;
  }
}

/* Final org role copy override. Keep this after final roadmap tuning. */
.ng-org-tier{
  min-height:82px;
  grid-template-columns:minmax(240px,.92fr) minmax(210px,1.08fr);
  padding-inline:24px;
}

.ng-org-tier--director{ --tier-width:62%; }
.ng-org-tier--chief{ --tier-width:70%; }
.ng-org-tier--lead{ --tier-width:78%; }
.ng-org-tier--sublead{ --tier-width:86%; }
.ng-org-tier--teamlead{ --tier-width:94%; }

.ng-org-tier p{
  display:grid;
  gap:3px;
  padding-left:18px;
  white-space:normal;
  overflow-wrap:normal;
  word-break:keep-all;
  line-height:1.35;
}

.ng-org-tier p strong{
  display:block;
  color:#fff;
  font-size:clamp(.94rem,1.05vw,1.08rem);
  line-height:1.35;
}

.ng-org-tier p span{
  display:block;
  color:rgba(255,255,255,.9);
  font-size:clamp(.74rem,.88vw,.88rem);
  line-height:1.45;
}

.ng-org-tier--teamlead .ng-org-role-name{
  line-height:1.12;
}

.ng-org-role-main::after{
  display:block;
  content:"";
  width:2px;
  min-height:38px;
  align-self:center;
  justify-self:end;
  border-radius:999px;
  background:rgba(255,255,255,.45);
}

@media(max-width:1040px){
  .ng-org-tier{
    grid-template-columns:1fr;
    gap:10px;
    width:100%;
    padding:18px 20px;
  }

  .ng-org-role-main{
    justify-content:space-between;
    padding-right:0;
  }

  .ng-org-role-main::after{
    display:none;
  }

  .ng-org-tier p{
    padding-left:0;
  }
}

/* Mobile org final override: keep a soft pyramid and prevent label collapse. */
@media(max-width:700px){
  .ng-org-pyramid{
    align-items:center;
    gap:13px;
  }

  .ng-org-tier{
    justify-self:center;
    width:var(--tier-width);
    max-width:100%;
    min-height:0;
    padding:16px 18px;
  }

  .ng-org-tier--director{ --tier-width:84%; }
  .ng-org-tier--chief{ --tier-width:88%; }
  .ng-org-tier--lead{ --tier-width:92%; }
  .ng-org-tier--sublead{ --tier-width:96%; }
  .ng-org-tier--teamlead{ --tier-width:100%; }

  .ng-org-role-main{
    flex-wrap:nowrap;
    min-width:0;
  }

  .ng-org-role-name{
    flex:1 1 auto;
    min-width:0;
    white-space:nowrap;
    font-size:clamp(1.08rem,5.2vw,1.34rem);
  }

  .ng-org-count{
    flex:0 0 auto;
  }

  .ng-org-tier p{
    gap:4px;
    line-height:1.42;
  }

  .ng-org-tier p strong,
  .ng-org-tier p span{
    overflow-wrap:normal;
    word-break:keep-all;
  }

  .ng-org-tier--teamlead .ng-org-role-name br{
    display:none;
  }
}

@media(max-width:480px){
  .ng-org-tier--teamlead .ng-org-role-main{
    flex-wrap:nowrap;
    justify-content:space-between;
  }

  .ng-org-tier--teamlead .ng-org-count{
    margin-top:0;
  }

  .ng-org-tier--teamlead .ng-org-role-name{
    font-size:clamp(1rem,4.8vw,1.18rem);
  }

  .ng-org-tier--teamlead .ng-org-count-icons img{
    width:28px;
    height:28px;
  }

  .ng-org-tier--teamlead .ng-org-count-icons img + img{
    margin-left:-10px;
  }
}
/* Org emphasis final pass: new graduate first, members second, support roles quieter. */
.ng-org-tier{
  background:
    linear-gradient(90deg,var(--tier-color) 0 8px,transparent 8px),
    linear-gradient(135deg,color-mix(in srgb,var(--tier-color) 14%,#fff 86%),rgba(255,255,255,.94));
  border:1px solid color-mix(in srgb,var(--tier-color) 26%,#fff 74%);
  color:#304238;
  box-shadow:0 10px 22px rgba(93,73,58,.07);
}

.ng-org-tier .ng-org-role-name,
.ng-org-tier p strong{
  color:#304238;
}

.ng-org-tier p span{
  color:#617169;
}

.ng-org-role-main::after{
  background:color-mix(in srgb,var(--tier-color) 24%,#fff 76%);
}

.ng-org-count{
  background:#fff;
  border-color:color-mix(in srgb,var(--tier-color) 20%,#fff 80%);
  color:var(--tier-color);
  box-shadow:0 8px 18px rgba(93,73,58,.06);
}

.ng-org-members{
  border-color:rgba(154,203,138,.96);
  background:
    linear-gradient(90deg,rgba(154,203,138,.16) 0 1px,transparent 1px 100%) 0 0 / 64px 64px,
    linear-gradient(180deg,rgba(248,255,245,.98),rgba(255,255,255,.96));
  box-shadow:0 20px 46px rgba(93,73,58,.1), inset 0 0 0 8px rgba(255,255,255,.56);
}

.ng-org-members-head .ng-org-role-name{
  color:#2F7C65;
  font-size:clamp(1.58rem,2.4vw,2.12rem);
}

.ng-org-members .ng-org-count{
  background:#F2FAEF;
  border-color:rgba(154,203,138,.72);
  color:#55745E;
  box-shadow:none;
}

.ng-org-member-faces{
  border-color:rgba(154,203,138,.52);
  background:rgba(255,255,255,.86);
}

.ng-org-newgraduate{
  max-width:820px;
  border:3px solid rgba(244,154,143,.72);
  background:
    radial-gradient(circle at 12% 42%,rgba(244,154,143,.16),transparent 150px),
    linear-gradient(90deg,#FFF2EC,#FFFDF9);
  box-shadow:0 24px 54px rgba(209,111,89,.16);
}

.ng-org-newgraduate strong{
  color:#D37361;
  font-size:clamp(1.76rem,3.1vw,2.32rem);
}

.ng-org-newgraduate p{
  color:#52635A;
  font-size:clamp(.98rem,1.42vw,1.18rem);
  line-height:1.75;
}

.ng-org-newgraduate > span{
  background:#fff;
  box-shadow:0 14px 28px rgba(209,111,89,.12);
}

@media(max-width:700px){
  .ng-org-tier{
    background:
      linear-gradient(90deg,var(--tier-color) 0 6px,transparent 6px),
      linear-gradient(135deg,color-mix(in srgb,var(--tier-color) 13%,#fff 87%),rgba(255,255,255,.95));
  }

  .ng-org-members-head .ng-org-role-name{
    font-size:1.58rem;
  }

  .ng-org-newgraduate{
    padding:22px 16px;
  }

  .ng-org-newgraduate strong{
    font-size:1.76rem;
  }
}

/* Message readability final override: add side breathing room on wide screens. */
.ng-message-body{
  max-width:min(100% - 140px,1340px);
  margin:-18px auto 0;
  padding:76px clamp(76px,8vw,132px) 64px;
}

.ng-message-body > p{
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
}

.ng-message-body__lead{
  max-width:1120px;
}

@media(max-width:900px){
  .ng-message-body{
    max-width:none;
    margin:0;
    padding:54px 30px 68px;
  }

  .ng-message-body > p{
    max-width:none;
  }
}

@media(max-width:560px){
  .ng-message-body{
    padding:42px 22px 54px;
  }
}

/* Visual contrast final override: keep the kindness, restore editorial contrast. */
.ng-section-label,
.ng-org-kicker,
.ng-message-body__lead{
  color:#C95F4D;
}

.ng-message h2,
.ng-split-head h2,
.ng-org-head h2,
.ng-faq h2,
.ng-entry-copy h2{
  color:#253B31;
}

.ng-split-head p,
.ng-message-body p,
.ng-talk-chat p,
.ng-faq p,
.ng-number-grid p{
  color:#52635A;
}

.ng-message-body,
.ng-training-roadmap,
.ng-support-org,
.ng-talk-card,
.ng-number-grid article,
.ng-faq details{
  background:#fff;
  border-color:rgba(211,115,97,.24);
  box-shadow:0 22px 46px rgba(65,54,42,.1);
}

.ng-message-body,
.ng-talk-card,
.ng-support-org{
  border-width:1.5px;
}

.ng-number-grid article{
  border-color:rgba(74,82,100,.42);
}

.ng-roadmap-steps article{
  border:1px solid rgba(74,82,100,.2);
  box-shadow:0 14px 28px rgba(65,54,42,.09);
}

.ng-roadmap-steps h3,
.ng-number-grid strong,
.ng-number-grid .ng-number-label,
.ng-talk-episode h3,
.ng-faq summary{
  color:#253B31;
}

.ng-section-cta,
.ng-talk-download,
.ng-talk-download--inline{
  background:#fff;
  border-color:rgba(209,111,89,.34);
  box-shadow:0 18px 38px rgba(65,54,42,.11);
}

.ng-section-cta a,
.ng-talk-download a,
.ng-form-submit{
  background:#C95F4D;
  box-shadow:0 14px 30px rgba(201,95,77,.26);
}

.ng-section-cta a:hover,
.ng-talk-download a:hover,
.ng-form-submit:hover{
  background:#B95545;
  box-shadow:0 18px 36px rgba(201,95,77,.32);
}

.ng-photo,
.ng-message-photo img,
.ng-gallery-grid img{
  filter:saturate(1.04) contrast(1.04);
}

@media(max-width:700px){
  .ng-message-body,
  .ng-training-roadmap,
  .ng-support-org,
  .ng-talk-card,
  .ng-number-grid article,
  .ng-faq details{
    box-shadow:0 14px 28px rgba(65,54,42,.08);
  }
}

/* Crosstalk PDF final override: never let the inline PDF block collapse into the left column. */
.ng-talk-download--inline{
  grid-column:1 / -1 !important;
  grid-row:auto !important;
  display:grid !important;
  grid-template-columns:64px minmax(0,1fr) minmax(180px,auto) !important;
  align-items:center !important;
  gap:18px 24px !important;
  width:100% !important;
  min-width:0 !important;
}

.ng-talk-download--inline div{
  display:contents !important;
  min-width:0 !important;
}

.ng-talk-download--inline span{
  grid-column:1 !important;
  grid-row:1 !important;
}

.ng-talk-download--inline p{
  grid-column:2 !important;
  grid-row:1 !important;
  min-width:0 !important;
  max-width:none !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

.ng-talk-download--inline a{
  grid-column:3 !important;
  grid-row:1 !important;
  justify-self:end !important;
  width:auto !important;
  min-width:180px !important;
}

@media(max-width:1040px){
  .ng-talk-download--inline{
    grid-template-columns:56px minmax(0,1fr) !important;
  }

  .ng-talk-download--inline a{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    justify-self:stretch !important;
  }
}

@media(max-width:560px){
  .ng-talk-download--inline{
    grid-template-columns:1fr !important;
  }

  .ng-talk-download--inline span,
  .ng-talk-download--inline p,
  .ng-talk-download--inline a{
    grid-column:1 !important;
  }

  .ng-talk-download--inline span{
    grid-row:1 !important;
  }

  .ng-talk-download--inline p{
    grid-row:2 !important;
  }

  .ng-talk-download--inline a{
    grid-row:3 !important;
  }
}

/* Page background final override: keep the side color soft, not stripe-like. */
.ng-page::before{
  inset:auto -14vw 4vh auto !important;
  width:28vw !important;
  min-width:220px !important;
  opacity:.32 !important;
  background:radial-gradient(circle at 50% 50%,rgba(244,154,143,.18),rgba(255,249,243,0) 68%) !important;
  filter:blur(18px) !important;
}

@media(max-width:700px){
  .ng-page::before{
    opacity:.18 !important;
    width:34vw !important;
  }
}

/* Support heading final polish: reduce haze and give the section entrance a clear edge. */
.ng-support{
  background:
    radial-gradient(circle at 12% 16%,rgba(246,207,91,.08),transparent 22vw),
    linear-gradient(105deg,rgba(131,191,206,.08),rgba(255,253,248,.96) 52%,rgba(244,154,143,.06)),
    #FFFDF8 !important;
}

.ng-support::before{
  opacity:.38;
  background:
    linear-gradient(90deg,rgba(127,160,137,.055) 1px,transparent 1px),
    linear-gradient(rgba(127,160,137,.045) 1px,transparent 1px) !important;
}

.ng-support .ng-split-head{
  position:relative;
  z-index:2;
  max-width:980px;
  padding:8px 0 2px;
}

.ng-support .ng-section-label{
  background:#fff;
  border:1px solid rgba(82,99,90,.14);
  box-shadow:0 12px 28px rgba(65,54,42,.1);
  color:#52635A;
}

.ng-support .ng-split-head h2{
  position:relative;
  width:max-content;
  max-width:100%;
  margin-bottom:18px;
  color:#243B31;
}

.ng-support .ng-split-head h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-8px;
  width:min(240px,42%);
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,#C95F4D,#8FC3AA);
}

.ng-support .ng-split-head p:not(.ng-section-label){
  max-width:920px;
  color:#4F6259;
}

.ng-illust-support-line{
  opacity:.22 !important;
}

@media(max-width:700px){
  .ng-support .ng-split-head h2{
    width:auto;
  }

  .ng-support .ng-split-head h2::after{
    width:150px;
  }
}

/* Roadmap note final copy fit: keep the lead copy on one line where space allows. */
.ng-roadmap-note{
  max-width:100%;
  padding:14px 28px;
  white-space:nowrap;
  color:#C95F4D;
}

@media(max-width:760px){
  .ng-roadmap-note{
    width:100%;
    white-space:normal;
    text-align:left;
  }
}

/* Support heading copy removed: tighten the handoff into the roadmap card. */
.ng-support .ng-split-head{
  margin-bottom:24px;
}

.ng-support .ng-split-head h2{
  margin-bottom:0;
}

/* Organization member area final tone: keep members and the new graduate in one coral family. */
.ng-org-members{
  border-color:rgba(244,154,143,.68);
  background:
    linear-gradient(90deg,rgba(244,154,143,.08) 0 1px,transparent 1px 100%) 0 0 / 64px 64px,
    linear-gradient(180deg,rgba(255,248,244,.98),rgba(255,255,255,.96));
  box-shadow:0 20px 46px rgba(209,111,89,.08), inset 0 0 0 8px rgba(255,255,255,.58);
}

.ng-org-members::before{
  background:linear-gradient(180deg,rgba(244,154,143,.56),rgba(211,115,97,.32));
}

.ng-org-members-head .ng-org-role-name{
  color:#D37361;
}

.ng-org-members-head .ng-org-role-name::before{
  background:linear-gradient(90deg,#F6CF5B,#F49A8F);
}

.ng-org-members-head .ng-org-role-name::after{
  background:linear-gradient(90deg,#F49A8F,#D37361);
}

.ng-org-members .ng-org-count{
  background:#FFF7F2;
  border-color:rgba(244,154,143,.54);
  color:#C95F4D;
}

.ng-org-member-faces{
  border-color:rgba(244,154,143,.36);
  background:rgba(255,255,255,.88);
}

.ng-org-member-faces::after{
  background:linear-gradient(180deg,rgba(244,154,143,.46),rgba(211,115,97,.44));
}

/* Organization CTA final override: use a simple centered button only. */
.ng-section-cta--button-only{
  display:flex;
  justify-content:center;
  align-items:center;
  max-width:none;
  margin:34px auto 0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}

.ng-section-cta--button-only a{
  width:auto;
  min-width:260px;
}

@media(max-width:560px){
  .ng-section-cta--button-only a{
    width:100%;
    min-width:0;
  }
}

/* Job cards CTA final override: use the red CTA color for entry buttons. */
.ng-job-entry{
  background:#C95F4D;
  box-shadow:0 14px 30px rgba(201,95,77,.24);
}

.ng-job-entry:hover{
  background:#B95545;
  box-shadow:0 18px 36px rgba(201,95,77,.3);
}

/* Voice detail buttons final override: keep "詳しく見る" in the green family. */
.ng-voice strong{
  background:#2F4A3D;
  box-shadow:0 8px 18px rgba(47,74,61,.2);
}

.ng-voice:hover strong{
  background:#263E33;
  box-shadow:0 12px 24px rgba(47,74,61,.26);
}

/* Voice detail button alignment 20260709: place the CTA on the right edge inside each card. */
.ng-voice strong{
  display:flex;
  width:max-content;
  margin:22px 0 0 auto;
}

/* FAQ label final override: match the compact section-label style used by PHOTO GALLERY. */
.ng-faq-head .ng-section-label{
  display:inline-flex;
  width:auto;
  min-width:0;
  max-width:max-content;
  min-height:0;
  margin:0 0 10px;
  padding:5px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 18px rgba(93,73,58,.06);
  color:#C95F4D;
  font-size:.92rem;
  line-height:1.9;
  letter-spacing:.18em;
}

.ng-faq-head .ng-section-label::before{
  width:7px;
  height:7px;
  margin-right:22px;
}

/* Entry form final override: remove the pale green layered background around the embedded form. */
.ng-entry-card{
  background:
    radial-gradient(circle at 86% 8%,rgba(255,216,194,.42) 0 120px,transparent 124px),
    linear-gradient(135deg,#FFF9F4 0%,#FFFFFF 56%,#FFFDF9 100%);
  border-color:rgba(233,197,176,.62);
}

.ng-entry-card::after{
  opacity:.18;
}

.ng-entry-form,
.ng-entry-form-frame{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}

.ng-entry-iframe{
  display:block;
  border-radius:24px;
  background:#FFE3CC;
  box-shadow:0 14px 30px rgba(147,111,82,.08);
}

@media(max-width:680px){
  .ng-entry-form,
  .ng-entry-form-frame{
    padding:0;
    border-radius:20px;
  }
}

/* Header final override: keep the upper menu following the page at all times. */
.ng-header{
  position:fixed;
  top:0;
  z-index:1000;
}

.ng-header.ng-header-hidden{
  opacity:1 !important;
  pointer-events:auto !important;
  transform:none !important;
}

/* Roadmap image order final fix: step 1 should read as mentor + new graduate, not patient care yet. */
.ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust{
  top:34px !important;
  right:22px !important;
  width:170px !important;
  max-width:170px !important;
  max-height:122px !important;
  opacity:.78;
}

@media(max-width:1200px){
  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust{
    width:180px !important;
    max-width:180px !important;
    max-height:132px !important;
  }
}

@media(max-width:680px){
  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust{
    top:8px !important;
    right:4px !important;
    width:96px !important;
    max-width:96px !important;
    max-height:78px !important;
  }
}

/* Roadmap layering final fix: text must never sit under the illustrations. */
.ng-roadmap-steps article{
  isolation:isolate;
}

.ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
.ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
  z-index:0 !important;
  pointer-events:none;
}

.ng-roadmap-card-head,
.ng-roadmap-steps h3,
.ng-roadmap-steps p,
.ng-roadmap-detail{
  position:relative;
  z-index:2;
}

.ng-roadmap-steps h3{
  max-width:calc(100% - 150px);
}

.ng-roadmap-steps p,
.ng-roadmap-detail{
  max-width:calc(100% - 120px);
}

@media(min-width:1201px){
  .ng-roadmap-steps article:nth-child(4) h3,
  .ng-roadmap-steps article:nth-child(5) h3{
    max-width:calc(100% - 130px);
  }

  .ng-roadmap-steps article:nth-child(4) p,
  .ng-roadmap-steps article:nth-child(5) p,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-detail,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-detail{
    max-width:calc(100% - 112px);
  }
}

@media(max-width:1200px){
  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    max-width:500px;
  }
}

@media(max-width:680px){
  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    max-width:none;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    opacity:.5 !important;
  }
}

/* Integrated fixes 20260625: entry memo asset and support color lift. */
.ng-illust-entry-person{
  width:164px;
  top:42px;
  right:72px;
  opacity:.92;
  transform:rotate(-4deg);
  filter:drop-shadow(0 16px 22px rgba(98,72,52,.12));
}

@media(max-width:760px){
  .ng-illust-entry-person{
    width:128px;
    right:36px;
    top:46px;
  }
}

@media(max-width:560px){
  .ng-illust-entry-person{
    width:112px;
    margin:-4px 0 10px auto;
  }
}

.ng-support{
  background:
    radial-gradient(circle at 10% 14%,rgba(246,207,91,.18),transparent 24vw),
    radial-gradient(circle at 92% 22%,rgba(244,154,143,.13),transparent 28vw),
    linear-gradient(105deg,rgba(131,191,206,.14),rgba(255,253,248,.95) 50%,rgba(244,154,143,.1)),
    #FFF9F2 !important;
}

.ng-support::before{
  opacity:.48;
}

.ng-support .ng-section-label{
  border-color:rgba(211,115,97,.22);
  color:#C95F4D;
  box-shadow:0 14px 30px rgba(209,111,89,.12);
}

.ng-support .ng-split-head h2::after{
  width:min(300px,52%);
  background:linear-gradient(90deg,#D37361,#F6CF5B 48%,#83BFCE);
}

.ng-training-roadmap{
  border-color:rgba(246,207,91,.56) !important;
  background:
    radial-gradient(circle at 10% 14%,rgba(246,207,91,.3),transparent 24%),
    radial-gradient(circle at 91% 16%,rgba(244,154,143,.25),transparent 28%),
    radial-gradient(circle at 66% 102%,rgba(131,191,206,.26),transparent 36%),
    linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,247,239,.94) 48%,rgba(235,248,245,.94)) !important;
  box-shadow:0 24px 56px rgba(93,73,58,.12) !important;
}

.ng-roadmap-section-label{
  color:#253B31;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(246,207,91,.36);
  box-shadow:0 16px 30px rgba(93,73,58,.11);
}

.ng-roadmap-section-label::before{
  background:linear-gradient(90deg,#F6CF5B,#F49A8F,#55B8AA);
}

.ng-roadmap-note{
  color:#B95748;
  border-color:rgba(244,154,143,.38);
  background:linear-gradient(90deg,rgba(255,247,239,.97),rgba(255,255,255,.93));
  box-shadow:0 12px 26px rgba(209,111,89,.1);
}

.ng-roadmap-steps article{
  border-width:1.5px;
  box-shadow:0 18px 34px rgba(65,54,42,.1);
}

.ng-roadmap-steps article:nth-child(1){
  background:linear-gradient(180deg,#FFF3B6,#FFFDF6 78%) !important;
  border-color:rgba(246,207,91,.6);
}

.ng-roadmap-steps article:nth-child(2){
  background:linear-gradient(180deg,#FFDCD0,#FFF8F4 78%) !important;
  border-color:rgba(244,154,143,.54);
}

.ng-roadmap-steps article:nth-child(3){
  background:linear-gradient(180deg,#D9F1F6,#F8FEFF 78%) !important;
  border-color:rgba(131,191,206,.56);
}

.ng-roadmap-steps article:nth-child(4){
  background:linear-gradient(180deg,#DCEED5,#FBFFF8 78%) !important;
  border-color:rgba(150,201,133,.56);
}

.ng-roadmap-steps article:nth-child(5){
  background:linear-gradient(180deg,#EAF2D2,#FFFDF5 78%) !important;
  border-color:rgba(180,199,118,.5);
}

.ng-org-tier{
  background:
    linear-gradient(90deg,var(--tier-color) 0 10px,transparent 10px),
    linear-gradient(135deg,color-mix(in srgb,var(--tier-color) 20%,#fff 80%),rgba(255,255,255,.94)) !important;
  border-color:color-mix(in srgb,var(--tier-color) 34%,#fff 66%) !important;
  box-shadow:0 12px 26px rgba(93,73,58,.09);
}

.ng-org-count{
  border-color:color-mix(in srgb,var(--tier-color) 28%,#fff 72%);
  background:color-mix(in srgb,var(--tier-color) 8%,#fff 92%);
}

/* Org pyramid visibility fix 20260625: keep hierarchy even on narrower screens. */
@media(max-width:1040px){
  .ng-org-pyramid{
    align-items:center;
  }

  .ng-org-tier{
    width:var(--tier-width);
    justify-self:center;
  }

  .ng-org-tier--director{ --tier-width:78%; }
  .ng-org-tier--chief{ --tier-width:84%; }
  .ng-org-tier--lead{ --tier-width:90%; }
  .ng-org-tier--sublead{ --tier-width:96%; }
  .ng-org-tier--teamlead{ --tier-width:100%; }

  .ng-org-role-main{
    display:flex;
    align-items:center;
    gap:14px;
  }

  .ng-org-role-name{
    white-space:nowrap;
  }
}

@media(max-width:700px){
  .ng-org-tier--director{ --tier-width:82%; }
  .ng-org-tier--chief{ --tier-width:87%; }
  .ng-org-tier--lead{ --tier-width:92%; }
  .ng-org-tier--sublead{ --tier-width:96%; }
  .ng-org-tier--teamlead{ --tier-width:100%; }

  .ng-org-tier--teamlead .ng-org-role-name{
    font-size:clamp(.98rem,4.5vw,1.18rem);
  }
}

/* Org team-leader label fix 20260625: wrap only when space gets tight. */
@media(max-width:1180px){
  .ng-org-tier--teamlead .ng-org-role-main{
    align-items:center;
  }

  .ng-org-tier--teamlead .ng-org-role-name{
    flex:0 1 7.4em;
    min-width:4.8em;
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:normal;
    line-height:1.18;
  }
}

@media(max-width:700px){
  .ng-org-tier--teamlead .ng-org-role-name{
    flex-basis:5.6em;
    line-height:1.2;
  }
}

/* Roadmap step 5 fix 20260706: align with the other steps; keep text above the illustration. */
.ng-roadmap-steps article:nth-child(5) .ng-roadmap-card-head,
.ng-roadmap-steps article:nth-child(5) h3,
.ng-roadmap-steps article:nth-child(5) p,
.ng-roadmap-steps article:nth-child(5) .ng-roadmap-detail{
  position:relative;
  z-index:3;
}

/* Roadmap clarity fix 20260625: reduce layered gradients for readability. */
.ng-training-roadmap{
  background:#FFF9F2 !important;
  border-color:rgba(231,184,121,.58) !important;
  box-shadow:0 22px 46px rgba(93,73,58,.1) !important;
}

.ng-training-roadmap::after,
.ng-roadmap-deco{
  opacity:.08 !important;
}

.ng-roadmap-deco-line{
  display:none !important;
}

.ng-roadmap-section-label{
  background:#fff !important;
  border-color:rgba(231,184,121,.38) !important;
  box-shadow:0 10px 22px rgba(93,73,58,.08) !important;
}

.ng-roadmap-section-label::before{
  background:#F0BE51 !important;
}

.ng-roadmap-note{
  background:#fff !important;
  border-color:rgba(211,115,97,.28) !important;
  box-shadow:0 10px 22px rgba(93,73,58,.07) !important;
}

.ng-roadmap-steps article{
  background:#fff !important;
  border-left-width:4px;
  box-shadow:0 16px 30px rgba(65,54,42,.09) !important;
}

.ng-roadmap-steps article::before,
.ng-roadmap-card-head::after{
  display:none !important;
}

.ng-roadmap-steps article:nth-child(1){
  --road-accent:#F0BE51;
  background:#FFF9D8 !important;
  border-color:rgba(240,190,81,.56) !important;
}

.ng-roadmap-steps article:nth-child(2){
  --road-accent:#E88F7D;
  background:#FFF0EA !important;
  border-color:rgba(232,143,125,.5) !important;
}

.ng-roadmap-steps article:nth-child(3){
  --road-accent:#76BBD0;
  background:#EEF9FB !important;
  border-color:rgba(118,187,208,.5) !important;
}

.ng-roadmap-steps article:nth-child(4){
  --road-accent:#8EC681;
  background:#F1FAEE !important;
  border-color:rgba(142,198,129,.52) !important;
}

.ng-roadmap-steps article:nth-child(5){
  --road-accent:#B7C96E;
  background:#F7FAEA !important;
  border-color:rgba(183,201,110,.52) !important;
}

.ng-roadmap-steps h3{
  background:none !important;
  box-shadow:inset 0 -.26em color-mix(in srgb,var(--road-accent,#F0BE51) 26%,transparent);
}

.ng-roadmap-steps h3{
  width:fit-content;
  max-width:100% !important;
  padding-inline:.08em;
  background:linear-gradient(
    transparent 58%,
    color-mix(in srgb,var(--road-accent,#F0BE51) 28%,transparent) 58% 86%,
    transparent 86%
  ) !important;
  box-shadow:none !important;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

.ng-roadmap-card-head span,
.ng-roadmap-card-head small{
  justify-content:center;
  box-sizing:border-box;
}

.ng-roadmap-card-head span{
  min-width:116px;
  padding-inline:18px;
}

.ng-roadmap-card-head small{
  min-width:128px;
  padding-inline:18px;
}

.ng-roadmap-detail{
  border-top-color:color-mix(in srgb,var(--road-accent,#D37361) 34%,transparent);
}

.ng-roadmap-detail dt{
  background:color-mix(in srgb,var(--road-accent,#7FA089) 16%,#fff 84%);
  color:#496D58;
}

@media(max-width:680px){
  .ng-roadmap-card-head span{
    min-width:96px;
    padding-inline:12px;
  }

  .ng-roadmap-card-head small{
    min-width:108px;
    padding-inline:12px;
  }
}

/* Org chart simplify 20260706: drop role descriptions, compact 2+3 card cluster. */
.ng-org-pyramid{
  display:grid !important;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:18px 16px;
  max-width:880px;
  align-items:stretch;
  justify-items:stretch;
}

.ng-org-pyramid::before{
  display:none !important;
}

.ng-org-tier + .ng-org-tier::before{
  display:none !important;
}

.ng-org-tier{
  width:auto !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:18px 16px 16px !important;
  border-radius:26px;
}

.ng-org-tier--director{ grid-column:2/4; }
.ng-org-tier--chief{ grid-column:4/6; }
.ng-org-tier--lead{ grid-column:1/3; }
.ng-org-tier--sublead{ grid-column:3/5; }
.ng-org-tier--teamlead{ grid-column:5/7; }

.ng-org-role-main{
  flex-direction:column;
  align-items:center;
  justify-content:center !important;
  gap:10px;
  width:100%;
}

.ng-org-pyramid .ng-org-role-name{
  flex:0 0 auto !important;
  min-width:0 !important;
  white-space:nowrap !important;
  text-align:center;
  font-size:clamp(1.1rem,1.5vw,1.4rem);
  line-height:1.2;
}

.ng-org-tier--teamlead .ng-org-role-name{
  flex:0 0 auto !important;
  font-size:clamp(1.02rem,1.4vw,1.3rem) !important;
}

.ng-org-tier--teamlead .ng-org-role-name br{
  display:none;
}

@media(max-width:700px){
  .ng-org-pyramid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px 10px;
  }

  .ng-org-tier--director{ grid-column:1/3; }
  .ng-org-tier--chief{ grid-column:3/5; }
  .ng-org-tier--lead{ grid-column:1/3; }
  .ng-org-tier--sublead{ grid-column:3/5; }
  .ng-org-tier--teamlead{ grid-column:1/5; }

  .ng-org-tier{
    padding:14px 10px 12px !important;
  }

  .ng-org-pyramid .ng-org-role-name{
    font-size:clamp(.94rem,3.4vw,1.1rem);
  }

  .ng-org-tier--teamlead .ng-org-role-name{
    font-size:clamp(.9rem,3.2vw,1.05rem) !important;
  }

  .ng-org-count-icons img{
    width:26px;
    height:26px;
  }

  .ng-org-count-icons img + img{
    margin-left:-9px;
  }

  /* Pre-existing fix: the hero label was reverted to 1.76rem and clipped at 375px. */
  .ng-org-newgraduate strong{
    font-size:1.3rem;
  }
}

/* Message mobile whitespace fix 20260706: overlap the photo onto the body card to remove the dead band. */
@media(max-width:680px){
  .ng-message-top{
    row-gap:12px;
  }

  .ng-message-photo{
    position:relative;
    z-index:2;
    margin:0 0 -50px;
  }

  .ng-message-body{
    padding-top:64px;
  }
}

/* Pre-existing fix 20260706: the message lead wrapped as メッセ/ージ at 375px. */
@media(max-width:680px){
  .ng-message-body p.ng-message-body__lead{
    font-size:.86rem;
  }
}

/* Roadmap mobile compact 20260706: tighten the step cards to shorten scroll. */
@media(max-width:680px){
  .ng-roadmap-card-head{
    min-height:44px;
  }

  .ng-roadmap-steps h3{
    margin:8px 0 6px;
  }

  .ng-roadmap-steps article:nth-child(n){
    padding:18px 16px 18px;
  }

  .ng-roadmap-steps{
    gap:14px;
  }

  .ng-roadmap-note{
    margin-bottom:14px;
  }
}

/* Org tier width 20260706: let the cards fill their grid cells (esp. the top four). */
.ng-org-tier{
  justify-self:stretch !important;
  width:100% !important;
}

/* The chart's auto grid track resolved to max-content and overflowed the card at 375px. */
.ng-org-chart{
  grid-template-columns:minmax(0,1fr);
}

/* Newgraduate card mobile 20260706: full-width text with the icon floated, not a narrow column. */
@media(max-width:680px){
  .ng-org-newgraduate{
    display:block;
  }

  .ng-org-newgraduate > span{
    float:left;
    width:44px;
    height:44px;
    margin:2px 10px 4px 0;
  }

  .ng-org-newgraduate div{
    display:block;
  }
}

/* Org mobile width 20260706: slim the nested side paddings so cards and text get real width. */
@media(max-width:680px){
  .ng-support-org{
    padding-left:14px;
    padding-right:14px;
  }

  .ng-org-chart{
    padding-left:10px;
    padding-right:10px;
  }

  .ng-org-members{
    padding-left:10px;
    padding-right:10px;
  }

  .ng-org-newgraduate{
    padding-left:12px;
    padding-right:12px;
  }
}

/* Interview day schedule 20260706: note text and single-column body when no schedule. */
.ng-day-note{
  margin:12px 0 0;
  font-size:.82rem;
  line-height:1.6;
  color:#7A6A5F;
}

.ng-modal-body--single{
  grid-template-columns:1fr;
}

/* Message title 20260706: keep the longer title on exactly two lines on PC. */
@media(min-width:1001px){
  .ng-message-copy h2{
    font-size:clamp(2.2rem,3.3vw,3.3rem);
    white-space:nowrap;
  }
}

/* Roadmap step5 tune 20260706: badge above the art; art slightly smaller and softer. */
.ng-roadmap-card-head span,
.ng-roadmap-card-head small{
  position:relative;
  z-index:2;
}

.ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
  width:132px !important;
  max-width:132px !important;
  opacity:.7;
}

@media(max-width:1200px){
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:146px !important;
    max-width:146px !important;
  }
}

/* Crosstalk speaker colors 20260706: subtle tint per speaker (M=green, I=blue, S=coral). */
.ng-talk-chat p.is-speaker-m{ background:#F1F8F4; }
.ng-talk-chat p.is-speaker-m::before{ border-right-color:#F1F8F4; border-left-color:#F1F8F4; }
.ng-talk-chat p.is-speaker-m b{ background:#4E8C83; }

.ng-talk-chat p.is-speaker-i{ background:#F0F6FB; }
.ng-talk-chat p.is-speaker-i::before{ border-right-color:#F0F6FB; border-left-color:#F0F6FB; }
.ng-talk-chat p.is-speaker-i b{ background:#5F8FBF; }

.ng-talk-chat p.is-speaker-s{ background:#FFF3ED; }
.ng-talk-chat p.is-speaker-s::before{ border-right-color:#FFF3ED; border-left-color:#FFF3ED; }
.ng-talk-chat p.is-speaker-s b{ background:#CE7960; }

/* Entry form spacing 20260706: drop the white panel a little so the card's warm rim stays visible. */
.ng-entry-iframe{
  margin-top:26px;
}

@media(max-width:680px){
  .ng-entry-iframe{
    margin-top:18px;
  }
}

/* Message mobile tune 20260706: smaller title, tighter gap above the body card. */
@media(max-width:680px){
  .ng-message-copy h2{
    font-size:clamp(1.4rem,6.1vw,1.62rem);
  }

  .ng-message-top{
    row-gap:6px;
  }

  .ng-message-photo{
    width:104px;
    margin:0 0 -58px;
    padding:6px 6px 14px;
  }

  .ng-message-photo img{
    width:82px;
    height:96px;
  }

  .ng-message-photo figcaption{
    width:104px;
  }

  .ng-message-body{
    padding-top:72px;
  }
}

/* Utility 20260706: keep a phrase on one line (used by the roadmap note). */
.ng-nowrap{
  white-space:nowrap;
}

/* Org declutter 20260706: tighter top space, plain centered メンバー label, one less nested frame. */
.ng-org-chart{
  padding-top:28px;
}

@media(max-width:680px){
  .ng-org-chart{
    padding-top:14px;
    padding-bottom:14px;
  }
}

.ng-org-members{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding:12px 0 4px !important;
  width:100%;
}

.ng-org-members-head .ng-org-role-name::before,
.ng-org-members-head .ng-org-role-name::after{
  display:none;
}

@media(max-width:680px){
  .ng-org-members-head{
    flex-direction:column;
    align-items:center;
    gap:8px;
  }
}

/* Interview day markers 20260706: drop the half-hidden yellow dots. */
.ng-modal-day li::before{
  display:none;
}

/* Numbers cards 20260706: no bar for 職種別人数; correct rates for 男女比. */
.ng-number-grid article:nth-child(3) .ng-disease-columns span{
  padding-bottom:10px;
}

.ng-number-grid article:nth-child(3) .ng-disease-columns span::after{
  display:none;
}

.ng-number-grid article:nth-child(4) .ng-disease-columns span:nth-child(1){
  --disease-rate:61%;
}

.ng-number-grid article:nth-child(4) .ng-disease-columns span:nth-child(2){
  --disease-rate:39%;
}

/* Danjohi bars off 20260706: numbers only, same as 職種別人数. */
.ng-number-grid article:nth-child(4) .ng-disease-columns span{
  padding-bottom:10px;
}

.ng-number-grid article:nth-child(4) .ng-disease-columns span::after{
  display:none;
}

/* PDF card 20260706: the accent line collided with the text on mobile. */
@media(max-width:680px){
  .ng-talk-download::before{
    display:none;
  }
}

/* Entry head mobile 20260706: float the clipboard, kill the dead space, one-line title. */
@media(max-width:680px){
  .ng-entry-card .ng-illust-entry-person{
    position:absolute !important;
    width:74px !important;
    top:12px !important;
    right:16px !important;
    margin:0 !important;
  }

  .ng-entry-copy .ng-section-label{
    margin-top:0;
  }

  .ng-entry-copy h2{
    font-size:clamp(1.65rem,7.9vw,1.9rem);
    white-space:nowrap;
  }
}

/* Message label gap 20260706: the pill sat 64px above the title on PC. */
@media(min-width:1001px){
  .ng-message-copy .ng-section-label{
    margin-bottom:22px;
  }
}

/* Roadmap tablet range 20260706: 681-900px was reserving 190px on the right; go single column. */
@media(min-width:681px) and (max-width:900px){
  .ng-roadmap-steps article:nth-child(n){
    min-height:0;
    padding:22px 24px 22px !important;
  }

  .ng-roadmap-card-head{
    min-height:104px;
    padding-right:150px;
    margin-bottom:4px;
  }

  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    max-width:none !important;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    top:16px !important;
    right:20px !important;
    width:128px !important;
    max-width:128px !important;
    max-height:104px !important;
  }
}

/* Org tier 20260706: remove the leftover separator line under the count pill. */
.ng-org-role-main::after{
  display:none !important;
}

/* Gender pie 20260706: donut chart with legend instead of bars. */
.ng-gender-body{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  padding:10px 0 6px;
}

.ng-gender-pie{
  flex:0 0 auto;
  width:112px;
  height:112px;
  border-radius:50%;
  background:conic-gradient(#6F9C8C 0 61%, #8FBDD3 61% 100%);
  -webkit-mask:radial-gradient(circle at 50% 50%, transparent 30px, #000 31px);
  mask:radial-gradient(circle at 50% 50%, transparent 30px, #000 31px);
  filter:drop-shadow(0 10px 18px rgba(93,73,58,.14));
}

.ng-gender-legend{
  display:grid;
  gap:12px;
}

.ng-gender-legend span{
  display:flex;
  align-items:center;
  gap:8px;
}

.ng-gender-legend i{
  width:12px;
  height:12px;
  border-radius:4px;
}

.ng-gender-legend-m i{ background:#6F9C8C; }
.ng-gender-legend-f i{ background:#8FBDD3; }

.ng-gender-legend b{
  font-size:.92rem;
  font-weight:700;
  color:#52635A;
}

.ng-gender-legend strong{
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:1.7rem;
  font-weight:700;
  line-height:1;
}

.ng-gender-legend-m strong{ color:#5D8A79; }
.ng-gender-legend-f strong{ color:#5F97B8; }

.ng-gender-legend em{
  font-style:normal;
  font-size:.8rem;
  font-weight:700;
  color:#7A8A80;
}

.ng-number-grid .ng-gender-legend-m strong{ color:#5D8A79 !important; }
.ng-number-grid .ng-gender-legend-f strong{ color:#5F97B8 !important; }

/* Job count tiles 20260706: three upright tiles instead of stacked bars. */
.ng-jobcount-body{
  padding:10px 0 6px;
}

.ng-jobcount{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  width:100%;
}

.ng-jobcount span{
  display:grid;
  justify-items:center;
  align-content:start;
  gap:8px;
  padding:14px 4px 12px;
  border-radius:16px;
  border:1px solid rgba(127,160,137,.2);
  border-top:4px solid var(--job-color);
  background:linear-gradient(180deg,#fff,rgba(248,252,248,.9));
  box-shadow:0 10px 22px rgba(93,73,58,.06);
}

.ng-jobcount-ot{ --job-color:#6F9C8C; }
.ng-jobcount-pt{ --job-color:#5F97B8; }
.ng-jobcount-st{ --job-color:#CE7960; }

.ng-jobcount b{
  font-size:.78rem;
  font-weight:700;
  color:#52635A;
  white-space:nowrap;
}

.ng-jobcount strong{
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:2.1rem;
  font-weight:700;
  line-height:1;
  color:var(--job-color);
}

.ng-jobcount em{
  font-style:normal;
  font-size:.78rem;
  font-weight:700;
  color:#7A8A80;
  margin-top:-4px;
}

.ng-number-grid .ng-jobcount span strong{ color:var(--job-color) !important; }

/* Number size 20260706: one size down for 職種別人数 and 疾患別割合. */
.ng-number-grid .ng-jobcount strong,
.ng-number-grid .ng-disease-columns strong{
  font-size:clamp(3.2rem,4.8vw,3.8rem) !important;
}

@media(max-width:680px){
  .ng-number-grid .ng-jobcount strong,
  .ng-number-grid .ng-disease-columns strong{
    font-size:clamp(2.9rem,14.5vw,3.5rem) !important;
  }
}

/* Gender card stack 20260706: pie on top, bigger numbers below. */
.ng-gender-body{
  flex-direction:column;
  gap:16px;
}

.ng-gender-legend{
  grid-auto-flow:column;
  gap:14px;
}

.ng-gender-legend strong{
  font-size:2.4rem;
}

.ng-gender-legend span{
  white-space:nowrap;
}

.ng-gender-legend b{
  white-space:nowrap;
}

/* Gender card 20260706: force the stacked layout at every width (a grid rule was overriding it). */
.ng-number-grid .ng-gender-body{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:16px !important;
}

/* Newgraduate card center 20260707: icon + title centered as a pair on PC. */
@media(min-width:681px){
  .ng-org-newgraduate{
    display:flex !important;
    flex-wrap:wrap;
    justify-content:center !important;
    align-items:center;
    column-gap:14px;
    row-gap:12px;
  }

  .ng-org-newgraduate > div{
    display:contents;
  }

  .ng-org-newgraduate > span{
    order:1;
  }

  .ng-org-newgraduate strong{
    order:2;
    display:inline-block !important;
    width:auto;
  }

  .ng-org-newgraduate p{
    order:3;
    flex-basis:100%;
    margin:0;
    text-align:center;
  }
}

/* Float revival 20260707: gentle drift for decorative cutouts, rotation-safe via the translate property. */
@keyframes ngDrift{
  0%, 100%{ translate:0 0; }
  50%{ translate:0 -7px; }
}

.ng-cutout{
  animation:ngDrift 9s ease-in-out infinite !important;
}

.ng-cutout:nth-of-type(2n){
  animation-duration:10.5s !important;
  animation-delay:-3.5s !important;
}

.ng-cutout:nth-of-type(3n){
  animation-duration:12s !important;
  animation-delay:-6s !important;
}

@media(prefers-reduced-motion:reduce){
  .ng-cutout{
    animation:none !important;
  }
}

/* Float revival pass2 20260707: bigger drift for the large scene cutouts (people, parallel bars, etc.). */
@keyframes ngDriftBig{
  0%, 100%{ translate:0 0; }
  50%{ translate:0 -12px; }
}

.ng-illust-hero-person,
.ng-illust-message-patient,
.ng-illust-support-person,
.ng-illust-jobs-walk,
.ng-illust-jobs-bars,
.ng-illust-jobs-plant,
.ng-illust-jobs-steps,
.ng-illust-jobs-bubble,
.ng-illust-people-speech,
.ng-illust-numbers-person,
.ng-illust-faq-bubble,
.ng-illust-entry-person{
  animation:ngDriftBig 7.5s ease-in-out infinite !important;
}

.ng-illust-jobs-bars,
.ng-illust-people-speech,
.ng-illust-numbers-person{
  animation-delay:-2.5s !important;
}

.ng-illust-message-patient,
.ng-illust-jobs-plant,
.ng-illust-faq-bubble{
  animation-delay:-5s !important;
}

@media(prefers-reduced-motion:reduce){
  .ng-illust-hero-person,
  .ng-illust-message-patient,
  .ng-illust-support-person,
  .ng-illust-jobs-walk,
  .ng-illust-jobs-bars,
  .ng-illust-jobs-plant,
  .ng-illust-jobs-steps,
  .ng-illust-jobs-bubble,
  .ng-illust-people-speech,
  .ng-illust-numbers-person,
  .ng-illust-faq-bubble,
  .ng-illust-entry-person{
    animation:none !important;
  }
}

/* Motion pass 20260707: revive scroll reveal (JS-gated), staggered cards, CTA hover, extra fluff. */
html.js-ready .ng-page .reveal{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .4s ease, transform .4s ease;
}

html.js-ready .ng-page .reveal.show{
  opacity:1;
  transform:none;
}

html.js-ready .ng-page .ng-message-photo.reveal{
  transform:translateY(20px) rotate(2deg);
}

html.js-ready .ng-page .ng-message-photo.reveal.show{
  transform:rotate(2deg);
}

/* ロードマップ：ステップが順番にふわっと */
html.js-ready .ng-page .ng-training-roadmap.reveal .ng-roadmap-steps article{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .35s ease, transform .35s ease;
}

html.js-ready .ng-page .ng-training-roadmap.reveal.show .ng-roadmap-steps article{
  opacity:1;
  transform:none;
}

html.js-ready .ng-page .ng-training-roadmap.reveal.show .ng-roadmap-steps article:nth-child(2){ transition-delay:.06s; }
html.js-ready .ng-page .ng-training-roadmap.reveal.show .ng-roadmap-steps article:nth-child(3){ transition-delay:.12s; }
html.js-ready .ng-page .ng-training-roadmap.reveal.show .ng-roadmap-steps article:nth-child(4){ transition-delay:.18s; }
html.js-ready .ng-page .ng-training-roadmap.reveal.show .ng-roadmap-steps article:nth-child(5){ transition-delay:.24s; }

/* 数字カード：時間差でふわっと */
html.js-ready .ng-page .ng-number-grid.reveal article{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .35s ease, transform .35s ease, box-shadow .26s ease, border-color .26s ease;
}

html.js-ready .ng-page .ng-number-grid.reveal.show article{
  opacity:1;
  transform:none;
}

html.js-ready .ng-page .ng-number-grid.reveal.show article:nth-child(2){ transition-delay:.04s; }
html.js-ready .ng-page .ng-number-grid.reveal.show article:nth-child(3){ transition-delay:.08s; }
html.js-ready .ng-page .ng-number-grid.reveal.show article:nth-child(4){ transition-delay:.12s; }
html.js-ready .ng-page .ng-number-grid.reveal.show article:nth-child(5){ transition-delay:.16s; }
html.js-ready .ng-page .ng-number-grid.reveal.show article:nth-child(6){ transition-delay:.20s; }

html.js-ready .ng-page .ng-number-grid.reveal.show article:hover{
  transform:translateY(-5px);
  transition-delay:0s;
}

/* CTAボタン：ホバーでふわっと持ち上がる */
.ng-entry,
.ng-hero-actions a,
.ng-section-cta a,
.ng-job-entry,
.ng-talk-download a{
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
}

.ng-entry:hover,
.ng-hero-actions a:hover,
.ng-section-cta a:hover,
.ng-job-entry:hover,
.ng-talk-download a:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 30px rgba(178,90,64,.26);
}

/* フワフワ増量：漂いに微回転を追加＋対象外だった飾りも漂わせる */
@keyframes ngDrift{
  0%, 100%{ translate:0 0; rotate:0deg; }
  50%{ translate:0 -7px; rotate:1.2deg; }
}

@keyframes ngDriftBig{
  0%, 100%{ translate:0 0; rotate:0deg; }
  50%{ translate:0 -12px; rotate:2deg; }
}

.ng-roadmap-deco,
.ng-talk-download-deco,
.ng-talk-theme-illust{
  animation:ngDrift 10s ease-in-out infinite;
}

.ng-talk-download-deco{ animation-delay:-4s; }
.ng-talk-theme-illust{ animation-delay:-7s; }

@media(prefers-reduced-motion:reduce){
  html.js-ready .ng-page .reveal,
  html.js-ready .ng-page .ng-training-roadmap.reveal .ng-roadmap-steps article,
  html.js-ready .ng-page .ng-number-grid.reveal article{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }

  .ng-roadmap-deco,
  .ng-talk-download-deco,
  .ng-talk-theme-illust{
    animation:none !important;
  }
}

/* Roadmap desktop text-flow fix 20260708: widen PC cards and stop body copy from being squeezed into the left edge. */
@media(min-width:1201px){
  .ng-support .wrap{
    max-width:1240px;
  }

  .ng-training-roadmap{
    padding:56px 44px 62px;
  }

  .ng-roadmap-steps{
    max-width:1152px;
    gap:34px 34px;
  }

  .ng-roadmap-steps article{
    min-height:386px;
    padding:26px 28px 26px;
  }

  .ng-roadmap-card-head{
    min-height:116px;
    padding-right:156px;
    margin-bottom:12px;
  }

  .ng-roadmap-steps h3{
    max-width:none !important;
    font-size:clamp(1.44rem,1.6vw,1.72rem);
    line-height:1.36;
  }

  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    width:100%;
    max-width:none !important;
  }

  .ng-roadmap-steps p{
    line-height:1.72;
  }

  .ng-roadmap-detail{
    margin-top:auto;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    top:34px !important;
    right:24px !important;
    width:138px !important;
    max-width:138px !important;
    max-height:112px !important;
    opacity:.68;
  }

  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust{
    width:156px !important;
    max-width:156px !important;
  }

  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust{
    width:124px !important;
    max-width:124px !important;
  }

  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:146px !important;
    max-width:146px !important;
  }
}

/* Roadmap skill block align 20260708: center the acquired-skill label and text. */
.ng-roadmap-detail{
  text-align:center;
}

.ng-roadmap-detail dt{
  margin-inline:auto;
  justify-content:center;
}

.ng-roadmap-detail dd{
  text-align:center;
}

/* Roadmap mobile illustration 20260708: center the art within the top-right whitespace. */
@media(max-width:680px){
  .ng-roadmap-steps article:nth-child(n){
    position:relative;
    overflow:hidden;
  }

  .ng-roadmap-card-head{
    position:relative !important;
    min-height:104px !important;
    padding-right:144px !important;
    margin-bottom:10px;
  }

  .ng-roadmap-card-head span,
  .ng-roadmap-card-head small,
  .ng-roadmap-steps h3,
  .ng-roadmap-steps p,
  .ng-roadmap-detail{
    position:relative;
    z-index:2;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    left:auto !important;
    top:50% !important;
    right:8px !important;
    width:128px !important;
    max-width:128px !important;
    max-height:104px !important;
    transform:translateY(-50%) !important;
    opacity:.58 !important;
    mix-blend-mode:multiply;
    filter:saturate(.96) drop-shadow(0 14px 24px rgba(93,73,58,.08));
  }

  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust{
    width:136px !important;
    max-width:136px !important;
  }

  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust{
    width:118px !important;
    max-width:118px !important;
  }

  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:134px !important;
    max-width:134px !important;
  }
}

/* Roadmap skill row 20260713: place the label and acquired skill side by side. */
.ng-roadmap-detail{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  text-align:left;
}

.ng-roadmap-detail dt{
  flex:0 0 auto;
  margin:0;
}

.ng-roadmap-detail dd{
  min-width:0;
  text-align:left;
}

@media(max-width:680px){
  .ng-roadmap-detail{
    gap:12px;
  }
}

/* Roadmap compact cards 20260713: tighten tablet/mobile whitespace and keep art in front. */
@media(max-width:1200px){
  .ng-roadmap-steps article:nth-child(n){
    min-height:0 !important;
    padding-top:18px !important;
    padding-bottom:16px !important;
  }

  .ng-roadmap-card-head{
    min-height:78px !important;
    margin-bottom:2px;
  }

  .ng-roadmap-steps article h3{
    margin-top:8px;
    margin-bottom:6px;
  }

  .ng-roadmap-steps article > p{
    margin-bottom:0;
  }

  .ng-roadmap-detail{
    margin-top:12px;
    padding-top:10px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    z-index:3 !important;
    opacity:.9 !important;
    mix-blend-mode:normal;
  }
}

@media(max-width:680px){
  .ng-roadmap-steps article:nth-child(n){
    padding:14px 16px 14px !important;
  }

  .ng-roadmap-card-head{
    min-height:72px !important;
    padding-right:126px !important;
    margin-bottom:0;
  }

  .ng-roadmap-detail{
    margin-top:10px;
    padding-top:9px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    right:6px !important;
    width:112px !important;
    max-width:112px !important;
    max-height:82px !important;
    opacity:.92 !important;
  }

  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:118px !important;
    max-width:118px !important;
  }

  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    width:90px !important;
    max-width:90px !important;
    max-height:76px !important;
  }
}

/* Voice cards 20260713: use reassuring temporary illustrations until staff photos arrive. */
.ng-voice[data-interview="pt"] img.ng-voice-illustration{
  object-position:center 20%;
}

.ng-voice[data-interview="ot"] img.ng-voice-illustration{
  object-position:center 18%;
}

/* Voice card CTA bottom align 20260713: remove the empty area below the button. */
.ng-voice{
  display:flex;
  flex-direction:column;
}

.ng-voice > div{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
}

.ng-voice span{
  margin-bottom:22px;
}

.ng-voice strong{
  margin:auto 0 0 auto;
}

/* Mobile roadmap fix 20260716: 期間ラベルとイラストの重なり解消＋ステップカード圧縮 */
@media(max-width:680px){
  .ng-roadmap-steps article:nth-child(n){
    padding:12px 14px 12px !important;
  }

  .ng-roadmap-card-head{
    min-height:0 !important;
    padding-right:62px !important;
    flex-wrap:wrap;
    justify-content:flex-start;
    align-items:center;
    row-gap:6px;
    column-gap:8px;
  }

  .ng-roadmap-card-head span,
  .ng-roadmap-card-head small{
    position:relative;
    z-index:5;
    min-width:0;
    padding:4px 9px;
    font-size:.78rem;
    line-height:1.2;
    white-space:nowrap;
  }

  .ng-roadmap-card-head small{
    background:rgba(255,255,255,.94);
    border-radius:999px;
  }

  .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(1) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(2) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(3) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(4) .ng-roadmap-illust,
  .ng-roadmap-steps article:nth-child(5) .ng-roadmap-illust{
    z-index:1 !important;
    width:56px !important;
    max-width:56px !important;
    max-height:50px !important;
    top:2px !important;
    right:2px !important;
    opacity:.95 !important;
    transform:none !important;
    mix-blend-mode:normal !important;
    filter:none !important;
  }

  .ng-roadmap-steps h3{
    margin-top:6px;
    margin-bottom:5px;
  }
}

/* Mobile roadmap fix 20260716 (2): イラスト背景の白吹き出しもイラストサイズに合わせて縮小 */
@media(max-width:680px){
  .ng-roadmap-card-head::before{
    width:62px !important;
    height:56px !important;
    border-radius:18px !important;
    top:0 !important;
    right:-1px !important;
  }
}

/* Design tweaks 20260716: CTA入れ替え / ラベル統一 / 小見出しの線・サイズ / ピラミッド横並び */

/* ① CTAボタンの色を入れ替え */
.ng-hero-actions a:nth-child(1){ /* 職種を見る → 白抜き */
  background:rgba(255,255,255,.94);
  color:#C95D4F;
  border:2px solid rgba(201,93,79,.28);
  box-shadow:0 14px 30px rgba(84,67,54,.13);
}
.ng-hero-actions a:nth-child(2){ /* 見学に申し込む → 赤塗り */
  background:linear-gradient(135deg,#C95D4F,#DF795F);
  color:#fff;
  border:0;
  box-shadow:0 16px 34px rgba(201,93,79,.34),0 4px 0 rgba(157,63,51,.18);
}

/* ② セクションラベル（MESSAGE等）を大きい方に統一 */
.ng-page .ng-section-label{ font-size:.92rem; }

/* ③④ 研修制度＋組織図の線を縦・控えめに統一 */
.ng-roadmap-section-label::before,
.ng-org-head .ng-org-kicker::before{
  width:4px !important;
  height:16px !important;
  border-radius:999px !important;
  background:rgba(240,190,81,.5) !important;
}

/* ④ 組織図見出しのフォント・余白を研修制度に合わせる */
.ng-org-head .ng-org-kicker{ font-size:1.28rem; padding:10px 18px; }
@media(max-width:680px){
  .ng-org-head .ng-org-kicker{ font-size:.96rem; padding:10px 14px; }
}

/* ⑤ 組織図ピラミッド（モバイル）：部長中央＋主任・チームリーダー横並び */
@media(max-width:700px){
  .ng-org-tier--director{ grid-column:2/4; } /* 部長=中央(2-3列) */
  .ng-org-tier--lead{ grid-column:1/3; }      /* 主任=左(1-2列) */
  .ng-org-tier--teamlead{ grid-column:3/5; }  /* チームリーダー=右(3-4列) */
}

/* Design tweaks 20260716 (2): 新卒カード/数字2列/ロゴ中央/フォーム帯除去 */

/* ① 新卒のあなたカード（モバイル）：名前を左・少し下、本文は下から全幅 */
@media(max-width:700px){
  .ng-org-newgraduate{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    column-gap:14px;
    row-gap:10px;
  }
  .ng-org-newgraduate > div{ display:contents; }
  .ng-org-newgraduate > span{ grid-column:1; grid-row:1; }
  .ng-org-newgraduate strong{ grid-column:2; grid-row:1; align-self:center; }
  .ng-org-newgraduate p{ grid-column:1 / -1; grid-row:2; margin:0; }
}

/* ② 数字カード（モバイル）：全カード2列 */
@media(max-width:680px){
  .ng-page .ng-number-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .ng-page .ng-number-grid article:nth-child(1),
  .ng-page .ng-number-grid article:nth-child(2),
  .ng-page .ng-number-grid article:nth-child(3),
  .ng-page .ng-number-grid article:nth-child(4),
  .ng-page .ng-number-grid article:nth-child(5),
  .ng-page .ng-number-grid article:nth-child(6){
    grid-column:auto;
    min-width:0;
  }
}

/* ③ フッターのロゴを中央揃え（PC・スマホ共通） */
.ng-footer .wrap{ justify-content:center; }
footer .ng-footer-brand{ justify-items:center; text-align:center; }

/* ④ 帯の正体はフォーム側 form.css の --lp-bg（html/body 背景）。form.css 側で対応。 */

/* Design tweaks 20260716 (3): 数字ラベル中央 / 部長キャプション拡大 / ハンバーガー */

/* A: 数字カードのタイトル（初任給 等）を中央揃え */
.ng-page .ng-number-grid .ng-number-label{
  align-self:center;
  margin-left:auto;
  margin-right:auto;
  left:0;
}

/* Codex#4: 部長写真の氏名キャプションを読めるサイズに */
@media(max-width:680px){
  .ng-message-photo figcaption{ width:142px; padding:6px 10px; }
  .ng-message-photo figcaption span{ font-size:.64rem; line-height:1.35; }
  .ng-message-photo figcaption strong{ font-size:.82rem; line-height:1.25; }
}

/* Codex#2: モバイル用ハンバーガーメニュー */
.ng-nav-toggle{ display:none; }

@media(max-width:1000px){
  .ng-nav-toggle{
    display:inline-flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:44px;
    height:44px;
    padding:0 11px;
    border:0;
    border-radius:12px;
    background:rgba(255,255,255,.72);
    box-shadow:0 6px 16px rgba(93,73,58,.1);
    cursor:pointer;
    flex:0 0 auto;
  }
  .ng-nav-toggle span{
    display:block;
    height:2px;
    border-radius:2px;
    background:#C95D4F;
    transition:transform .25s ease, opacity .2s ease;
  }
  .ng-header.nav-open .ng-nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .ng-header.nav-open .ng-nav-toggle span:nth-child(2){ opacity:0; }
  .ng-header.nav-open .ng-nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .ng-nav{
    display:flex !important;
    flex-direction:column;
    gap:2px;
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    right:0;
    margin:0;
    background:#fff;
    border-radius:18px;
    padding:10px;
    border:1px solid rgba(245,198,186,.55);
    box-shadow:0 18px 40px rgba(93,73,58,.16);
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    transition:opacity .22s ease, transform .22s ease, visibility .22s;
  }
  .ng-header.nav-open .ng-nav{
    opacity:1;
    visibility:visible;
    transform:none;
  }
  .ng-nav a{
    padding:13px 16px;
    border-radius:12px;
    font-size:1rem;
    color:#4A3B34;
  }
  .ng-nav a:active{ background:rgba(201,93,79,.09); }
}

/* Codex#3: CTAボタンの色コントラストを基準達成（白文字×#B95545 ≒4.6:1） */
.ng-entry,
.ng-hero-actions a:nth-child(2),
.ng-section-cta a,
.ng-job-entry,
.ng-talk-download a,
.ng-form-submit{
  background:#B95545 !important;
  color:#fff !important;
  border-color:#B95545 !important;
}
/* 白抜きCTA（職種を見る）の文字色も同じ濃さに */
.ng-hero-actions a:nth-child(1){
  color:#B95545 !important;
  border-color:rgba(185,85,69,.4) !important;
}

/* Org pyramid desktop fix 20260716: 部長を中央、主任・チームリーダーをバランスよく下段に */
@media(min-width:701px){
  .ng-org-tier--director{ grid-column:3/5; } /* 部長=中央(3-4列) */
  .ng-org-tier--lead{ grid-column:2/4; }      /* 主任=左寄り中央(2-3列) */
  .ng-org-tier--teamlead{ grid-column:4/6; }  /* チームリーダー=右寄り中央(4-5列) */
}

/* 先輩の声カード写真の見せ方調整 20260716: 顔をしっかり見せ、頭が切れないように */
.ng-voice[data-interview="pt"] img.ng-voice-illustration,
.ng-voice[data-interview="ot"] img.ng-voice-illustration{
  object-position:center 22% !important;
}

/* 数字グラフカードを半幅(2列)用にレイアウト 20260716 */
@media(max-width:680px){
  /* グラフ系カードは内側の余白を詰める */
  .ng-page .ng-number-grid article:nth-child(3),
  .ng-page .ng-number-grid article:nth-child(4),
  .ng-page .ng-number-grid article:nth-child(6){
    padding:22px 12px 20px;
  }

  /* 職種別人数・疾患別割合：3列→縦積みの行（ラベル左・数字右） */
  .ng-page .ng-jobcount,
  .ng-page .ng-disease-columns{
    grid-template-columns:1fr;
    gap:8px;
  }
  .ng-page .ng-jobcount span,
  .ng-page .ng-disease-columns span{
    display:flex;
    align-items:baseline;
    gap:4px;
    min-height:0;
    padding:9px 12px;
    text-align:left;
  }
  .ng-page .ng-jobcount span b,
  .ng-page .ng-disease-columns span b{
    margin-right:auto;
    font-size:.82rem;
    white-space:nowrap;
  }
  .ng-page .ng-jobcount span strong,
  .ng-page .ng-disease-columns span strong{
    font-size:1.5rem !important;
  }
  .ng-page .ng-jobcount span em,
  .ng-page .ng-disease-columns span em{
    font-size:.78rem !important;
  }

  /* 男女比：凡例を縦積み・数字を小さめに */
  .ng-page .ng-gender-legend{
    grid-auto-flow:row !important;
    gap:8px;
    width:100%;
  }
  .ng-page .ng-gender-legend span{
    justify-content:center;
  }
  .ng-page .ng-gender-legend strong{
    font-size:1.9rem;
  }
  .ng-page .ng-gender-pie{
    width:100px;
    height:100px;
  }
}

/* 疾患別割合(半幅): 割合バーを下端に残し、ラベル＋数字と重ならないよう下余白を確保 */
@media(max-width:680px){
  .ng-page .ng-disease-columns span{
    padding:10px 14px 22px;
    position:relative;
  }
  .ng-page .ng-disease-columns span::after{
    left:14px;
    right:14px;
    bottom:8px;
  }
}

/* スマホ2列: メインの大きい数字を幅に合わせて縮小 */
@media(max-width:680px){
  .ng-page .ng-number-grid .ng-number-visual strong{
    font-size:clamp(2.35rem,11.5vw,3.2rem) !important;
  }
  .ng-page .ng-number-grid .ng-number-visual em{
    font-size:.92rem !important;
    white-space:nowrap;
  }
  /* 職種別人数・疾患別割合の「名/%」が切れないよう単位に余白 */
  .ng-page .ng-jobcount span em,
  .ng-page .ng-disease-columns span em{
    margin-left:2px;
  }
}

/* OTカード写真: 3人構図（中央が主役）に合わせ、顔の高さで表示 */
.ng-voice[data-interview="ot"] img.ng-voice-illustration{
  object-position:center 20% !important;
}

/* PDF案内ブロックの左の縦線を削除 20260716 */
.ng-talk-download::before{
  display:none !important;
}

/* 研修制度と組織図ラベルの高さを揃える（行間を統一） 20260716 */
.ng-roadmap-section-label{
  line-height:1.2 !important;
}

/* 組織図ラベルを研修制度と同じ枠線・背景に揃える 20260716 */
.ng-org-head .ng-org-kicker{
  background:#fff !important;
  border:1px solid rgba(231,184,121,.38) !important;
  box-shadow:0 10px 22px rgba(93,73,58,.08) !important;
}

/* PDFを読むボタン：CTAの赤と紛らわしいため「詳しく見る」と同じ緑に 20260716 */
.ng-talk-download a{
  background:#2F4A3D !important;
  border-color:#2F4A3D !important;
  color:#fff !important;
}
.ng-talk-download a:hover{
  background:#263E33 !important;
}
