/* TOP only — LOCAL WORKFORCE GRID. Loaded after the shared stylesheet.
   Lines describe service regions and language development; motion follows connection, reveal and growth. */
.c-home .c-hero{ padding-bottom:32px; }
.c-home .c-slab{ padding:64px 0 44px; }
.c-home .c-hero-grid{ grid-template-columns:1.2fr 1fr; gap:36px; }
.c-home .c-hero h1{ font-size:clamp(34px,4.4vw,61px); line-height:1.26; letter-spacing:-.035em; text-wrap:initial; }
.c-home .c-hero h1 > span{ display:block; }
.c-home .c-hero h1 em{ display:block; margin-top:16px; font-size:.76em; color:#fff; }
.c-home .c-hero h1 em span{ font-size:1.35em; margin-left:.06em; color:#7DD3FC; }
.c-home .c-hero-key{ position:relative; color:#7DD3FC; font-weight:900; box-shadow:inset 0 -.16em 0 rgba(125,211,252,.18); }
.c-home .c-hero-key::after{ content:""; position:absolute; right:0; bottom:-.08em; left:0; height:2px; background:#7DD3FC; transform-origin:left; }
.c-home .c-hero-key-model{ letter-spacing:-.045em; }
.c-home .c-hero .lead{ max-width:32em; }
.c-home .c-b2{ box-shadow:none; border:1px solid #718299; }
.c-home .c-b2:hover{ border-color:#7DD3FC; }
.c-home .c-btns a{ padding:16px 24px; }
.c-home .c-field-photo{ margin:0; }
.c-home .c-field-photo picture{ display:block; }
.c-home .c-field-photo img{ display:block; width:100%; height:auto; object-fit:cover; }
.c-home .c-field-photo figcaption{ display:flex; justify-content:space-between; gap:6px; padding-top:0; margin-top:14px; flex-direction:column; align-items:flex-start; font-family:"Archivo",sans-serif; font-size:11px; font-weight:700; letter-spacing:.08em; line-height:1.7; color:var(--sub); }
.c-home .c-hero-photo{ margin-right:-76px; }
.c-home .c-hero-photo img{ aspect-ratio:1/1.08; }
.c-home .c-hero-photo figcaption{ color:#c2cedc; margin-right:76px; }
.c-home .c-hero-route{ display:flex; align-items:center; gap:12px; font-family:"Archivo",sans-serif; font-size:11px; font-weight:700; letter-spacing:.12em; color:var(--cy); padding:20px 0; margin:0; }
.c-home .c-hero-route span{ flex:1; height:1px; background:var(--cy); font-size:0; }
.c-home .c-section-index{ display:flex; justify-content:space-between; gap:20px; padding-top:18px; font-family:"Archivo",sans-serif; font-size:11px; letter-spacing:.12em; color:var(--sub); }
.c-home .c-local{ padding:54px 0 100px; }
.c-home .c-local-intro{ display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:end; margin-top:32px; }
.c-home .c-local-intro .c-h2{ font-size:clamp(30px,3.6vw,46px); }
.c-home .c-local-intro p,.c-home .c-growth-intro > p{ font-size:14px; color:var(--sub); line-height:2.1; max-width:32em; margin:0; }
.c-home .c-region-line{ display:grid; grid-template-columns:1.04fr 1fr 1.08fr 1.16fr .92fr; list-style:none; margin:64px 0 0; padding:0; }
.c-home .c-region-line li{ position:relative; border-top:2px solid var(--cy); padding:30px 10px 0 0; }
.c-home .c-region-line li::before{ content:""; position:absolute; top:-6px; left:0; width:10px; height:10px; border:2px solid var(--cy); background:white; border-radius:50%; }
.c-home .c-region-en{ display:inline-block; font-family:"Archivo",sans-serif; font-size:clamp(13px,1.7vw,22px); font-weight:700; letter-spacing:.02em; color:var(--cy); }
.c-home .c-region-line h3{ margin:14px 0 8px; font-size:clamp(30px,3.7vw,49px); font-weight:900; letter-spacing:-.07em; line-height:1.2; color:var(--nv9); }
.c-home .c-region-line h3 span{ font-size:13px; font-weight:400; margin-left:4px; }
.c-home .c-region-line small{ font-size:11px; color:var(--sub); }
.c-home .c-local-foot{ display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:40px; }
.c-home .c-local-foot p{ font-size:12px; color:var(--sub); margin:0; }
.c-home .c-local-foot .c-more{ margin:0; flex-shrink:0; }
.c-home .c-editorial{ padding:0 0 100px; }
.c-home .c-editorial .c-h2{ margin-top:48px; font-size:clamp(30px,3.6vw,46px); }
.c-home .c-editorial .c-h2{ white-space:nowrap; }
.c-home .c-editorial-lead{ margin:24px 0 48px; color:var(--sub); font-size:14px; }
.c-home .c-reasons article{ display:grid; grid-template-columns:88px 1fr 1.3fr; gap:36px; padding:40px 0; border-top:1px solid var(--ln); align-items:start; }
.c-home .c-reasons article:last-child{ border-bottom:1px solid var(--ln); }
.c-home .c-reason-number{ font-family:"Archivo",sans-serif; font-size:60px; font-weight:400; letter-spacing:-.06em; line-height:1; color:var(--cy); }
.c-home .c-reasons h3{ font-size:23px; margin:9px 0 0; line-height:1.5; color:var(--nv9); }
.c-home .c-reasons p{ margin:0; font-size:14px; line-height:2.05; color:var(--sub); }
.c-home .c-work-photo{ margin-top:64px; }
.c-home .c-work-photo img{ aspect-ratio:2.6/1; object-position:50% 40%; }
.c-home .c-growth{ padding:0 0 104px; }
.c-home .c-growth-layout{ display:grid; grid-template-columns:1fr 1.15fr; gap:100px; margin-top:60px; }
.c-home .c-growth-intro .c-h2{ margin-top:0; font-size:clamp(30px,3.6vw,46px); line-height:1.5; }
.c-home .c-growth-intro > p{ margin-top:24px; }
.c-home .c-growth-photo{ margin-top:48px; max-width:360px; }
.c-home .c-growth-photo img{ aspect-ratio:4/3; }
.c-home .c-growth-line{ list-style:none; margin:0; padding:0 0 0 32px; border-left:2px solid var(--cy); }
.c-home .c-growth-line li{ position:relative; }
.c-home .c-growth-stage::before{ content:""; position:absolute; left:-39px; top:36px; width:12px; height:12px; border:2px solid var(--cy); background:#fff; border-radius:50%; }
.c-home .c-level{ font-family:"Archivo",sans-serif; font-size:100px; font-weight:700; letter-spacing:-.06em; line-height:1; color:var(--nv9); margin-bottom:24px; }
.c-home .c-level span{ display:inline-block; margin-left:20px; font-family:"FOT-ニューロダン ProN M",sans-serif; font-size:12px; font-weight:400; letter-spacing:0; color:var(--sub); }
.c-home .c-growth-line h3{ font-size:23px; color:var(--nv9); margin:8px 0; }
.c-home .c-growth-line p{ font-size:13px; color:var(--sub); margin:8px 0 0; }
.c-home .c-growth-training{ margin:36px 0; padding:24px 0; }
.c-home .c-growth-training::before{ content:"↓"; position:absolute; left:-41px; top:40px; color:var(--cy); background:#fff; font-size:24px; line-height:1.5; }
.c-home .c-growth-training h3{ font-size:20px; }
.c-home .c-growth-note{ font-size:12px; color:var(--sub); margin:28px 0 0 34px; }
@media (max-width:1000px){
  .c-home .c-hero-grid{ gap:24px; }
  .c-home .c-growth-layout{ gap:48px; }
  .c-home .c-local-intro{ gap:40px; }
  .c-home .c-reasons article{ grid-template-columns:72px 1fr 1.2fr; gap:24px; }
}
@media (max-width:900px){
  .c-home .c-hero-grid{ grid-template-columns:1fr 1fr; }
  .c-home .c-hero-photo{ margin-right:0; }
  .c-home .c-hero-photo figcaption{ margin-right:0; }
  .c-home .c-btns{ gap:8px; }
  .c-home .c-btns a{ font-size:13px; padding:14px 18px; }
}
@media (max-width:700px){
  .c-home .c-slab{ padding:36px 0 28px; }
  .c-home .c-hero-grid{ grid-template-columns:1fr; gap:32px; }
  .c-home .c-hero h1{ font-size:clamp(34px,8.8vw,56px); margin-top:24px; }
  .c-home .c-hero h1 em{ margin-top:10px; }
  .c-home .c-hero .lead{ font-size:13px; }
  .c-home .c-hero-photo img{ aspect-ratio:1.5/1; object-position:50% 42%; }

  .c-home .c-hero-route{ font-size:10px; gap:5px; letter-spacing:0; }
  .c-home .c-lic{ margin-bottom:0; }
  .c-home .c-lic div{ flex:1 1 50%; padding:14px 8px; }
  .c-home .c-lic div:last-child{ flex-basis:100%; border-left:0; border-top:1px solid var(--ln); padding-left:0; }
  .c-home .c-lic dt{ font-size:10px; letter-spacing:0; }
  .c-home .c-lic dd{ font-size:16px; }
  .c-home .c-section-index{ flex-wrap:wrap; gap:8px; font-size:9.5px; }
  .c-home .c-local{ padding:32px 0 64px; }
  .c-home .c-local-intro{ grid-template-columns:1fr; gap:24px; margin-top:16px; }
  .c-home .c-region-line{ display:block; margin:36px 0 0 8px; }
  .c-home .c-region-line li{ display:grid; grid-template-columns:1fr 1.1fr; column-gap:12px; align-items:center; border-top:0; border-left:2px solid var(--cy); padding:18px 0 18px 24px; min-height:90px; }
  .c-home .c-region-line li::before{ top:40px; left:-6px; }
  .c-home .c-region-en{ font-size:17px; }
  .c-home .c-region-line h3{ font-size:36px; margin:0; }
  .c-home .c-region-line small{ grid-column:2; margin-top:8px; font-size:11px; }
  .c-home .c-local-foot{ display:block; margin-top:24px; }
  .c-home .c-local-foot .c-more{ margin-top:20px; }
  .c-home .c-editorial{ padding-bottom:64px; }
  .c-home .c-editorial .c-h2{ margin-top:32px; font-size:clamp(22px,7.2vw,34px); letter-spacing:-.055em; white-space:nowrap; }
  .c-home .c-editorial-lead{ margin-bottom:32px; font-size:13px; }
  .c-home .c-reasons article{ grid-template-columns:54px 1fr; gap:16px; padding:28px 0; }
  .c-home .c-reason-number{ font-size:48px; }
  .c-home .c-reasons h3{ font-size:20px; }
  .c-home .c-reasons p{ grid-column:2; font-size:13px; }
  .c-home .c-work-photo{ margin-top:40px; }
  .c-home .c-work-photo img{ aspect-ratio:1.5/1; object-position:35% 40%; }

  .c-home .c-growth{ padding-bottom:64px; }
  .c-home .c-growth-layout{ grid-template-columns:1fr; gap:40px; margin-top:32px; }
  .c-home .c-growth-photo{ max-width:100%; margin-top:32px; }
  .c-home .c-growth-photo img{ aspect-ratio:1.65/1; object-position:50% 40%; }
  .c-home .c-growth-line{ margin-left:8px; padding-left:24px; }
  .c-home .c-growth-stage::before{ left:-31px; }
  .c-home .c-growth-training::before{ left:-33px; }
  .c-home .c-level{ font-size:88px; }
  .c-home .c-growth-line .lbl{ font-size:10px; letter-spacing:.1em; }
  .c-home .c-growth-line h3{ font-size:21px; }
  .c-home .c-growth-note{ margin-left:34px; }
}

/* Connection lines use their own layers; node/text motion never moves the line. */
.c-home .c-region-line{ position:relative; }
.c-home .c-region-line li{ border-color:transparent; }
.c-home .c-region-line::before{ content:""; position:absolute; inset:0 0 auto; height:2px; background:var(--cy); transform-origin:left; }
.c-home .c-region-line::after{ content:""; position:absolute; top:-5px; left:0; width:12px; height:12px; border:2px solid var(--cy); border-radius:50%; background:#fff; box-shadow:0 0 0 5px rgba(14,127,168,.12); opacity:0; }
.c-home .c-region-line li:first-child .c-region-en{ font-weight:900; }
.c-home .c-growth-line{ position:relative; border-color:transparent; }
.c-home .c-growth-line::before{ content:""; position:absolute; left:-2px; top:0; bottom:0; width:2px; background:var(--cy); transform-origin:top; }
.c-home .c-growth-line::after{ content:""; position:absolute; top:0; left:-7px; width:12px; height:12px; border:2px solid var(--cy); border-radius:50%; background:#fff; box-shadow:0 0 0 5px rgba(14,127,168,.12); opacity:0; }
.c-home .c-region-line li:nth-child(1){ --order:0; }
.c-home .c-region-line li:nth-child(2){ --order:1; }
.c-home .c-region-line li:nth-child(3){ --order:2; }
.c-home .c-region-line li:nth-child(4){ --order:3; }
.c-home .c-region-line li:nth-child(5){ --order:4; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .c-home .c-reason-number,.c-home .c-reasons .lbl{ transition:transform .2s ease,color .2s ease; }
  .c-home .c-reasons article:hover .c-reason-number{ transform:translateX(3px); color:var(--nv9); }
  .c-home .c-reasons article:hover .lbl{ transform:translateX(2px); }
}
@media (max-width:700px){
  .c-home .c-region-line::before{ inset:0 auto 0 0; width:2px; height:auto; transform-origin:top; }
}
/* Content is visible by default, including when JS or IntersectionObserver is unavailable. */
@media (prefers-reduced-motion:no-preference){
  .c-home{ --connect-time:.7s; --stagger:.07s; --reveal-time:.7s; --rise:14px; }
  .c-home .c-region-line.is-pending::before{ transform:scaleX(0); }
  .c-home .c-hero-copy.is-pending .c-hero-key::after{ transform:scaleX(0); }
  .c-home .c-region-line.is-pending li > *, .c-home .c-region-line.is-pending li::before,
  .c-home .c-field-photo.is-pending img,.c-home .c-field-photo.is-pending figcaption{ opacity:0; }
  .c-home .c-region-line.is-visible::before{ animation:c-connect-x var(--connect-time) ease-out both; }
  .c-home .c-region-line.is-visible::after{ animation:c-route-signal 1.15s ease-in-out var(--connect-time) both; }
  .c-home .c-region-line.is-visible li > *, .c-home .c-region-line.is-visible li::before{
    animation:c-grid-reveal .4s ease-out both; animation-delay:calc(var(--connect-time) + var(--order) * var(--stagger)); }
  .c-home .c-growth-line.is-pending::before{ transform:scaleY(0); }
  .c-home .c-growth-line.is-visible::before{ animation:c-connect-y 1.3s ease-in-out both; }
  .c-home .c-growth-line.is-visible::after{ animation:c-growth-signal 1.05s ease-in-out .12s both; }
  .c-home .c-field-photo.is-visible img{ animation:c-field-open var(--reveal-time) ease-out both; }
  .c-home .c-field-photo.is-visible figcaption{ animation:c-grid-reveal .35s ease-out both; animation-delay:calc(var(--reveal-time) + .2s); }
  .c-home .c-hero-copy.is-visible{ animation:c-grid-reveal .65s ease-out both; }
  .c-home .c-hero-copy.is-visible .c-hero-key::after{ animation:c-keyline .5s ease-out both; }
  .c-home .c-hero-photo.is-visible img{ animation:c-hero-settle .9s ease-out both; }
  .c-home .c-hero-photo.is-visible figcaption{ animation-delay:1.1s; }
  @keyframes c-connect-x{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
  @keyframes c-connect-y{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
  @keyframes c-keyline{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
  @keyframes c-route-signal{ 0%{ left:0; opacity:0; } 12%{ opacity:1; } 88%{ opacity:1; } 100%{ left:calc(100% - 12px); opacity:0; } }
  @keyframes c-growth-signal{ 0%{ top:0; opacity:0; } 12%{ opacity:1; } 88%{ opacity:1; } 100%{ top:calc(100% - 12px); opacity:0; } }
  @keyframes c-grid-reveal{ from{ opacity:0; transform:translateY(var(--rise)); } to{ opacity:1; transform:translateY(0); } }
  @keyframes c-field-open{ from{ clip-path:inset(0 0 100% 0); } to{ clip-path:inset(0); } }
  @keyframes c-hero-settle{ from{ opacity:0; transform:scale(1.03); } to{ opacity:1; transform:scale(1); } }
  @media (max-width:700px){
    .c-home{ --connect-time:.5s; --stagger:.045s; --reveal-time:.45s; --rise:10px; }
    .c-home .c-region-line.is-pending::before{ transform:scaleY(0); }
    .c-home .c-region-line.is-visible::before{ animation-name:c-connect-y; }
    .c-home .c-region-line.is-visible::after{ animation-name:c-route-signal-y; animation-duration:.9s; animation-delay:var(--connect-time); }
    .c-home .c-hero-photo.is-visible img{ animation:c-grid-reveal .45s ease-out both; }
    .c-home .c-hero-photo.is-visible figcaption{ animation-delay:.65s; }
    .c-home .c-growth-line.is-visible::before{ animation-duration:1s; }
    @keyframes c-route-signal-y{ 0%{ top:0; left:-6px; opacity:0; } 12%{ opacity:1; } 88%{ opacity:1; } 100%{ top:calc(100% - 12px); left:-6px; opacity:0; } }
  }
}
