/* First-paint state comes from HTML. A visible illustration never fades away to replay. */
.art-ready{opacity:1}
.art-reenter{animation:art-reenter 1.35s cubic-bezier(.2,.65,.2,1) both}
@keyframes art-reenter{from{opacity:1;translate:0 14px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
.art-motion-paused .art-reenter{animation-play-state:paused}
/* FV load starts one entrance immediately; its scale never winds up or settles twice. */
img[data-illustration].fv-art,.art-prepare img[data-illustration].fv-art[data-art-initial]{transition:none;scale:1;translate:0 0;transform:translate3d(0,0,0);backface-visibility:hidden}
.fv-art.fv-entering{animation:fv-enter 1s cubic-bezier(.22,.65,.32,1) both;will-change:transform,opacity}
.fv-art.art-reenter{animation:fv-reenter 1s cubic-bezier(.22,.65,.32,1) both;will-change:transform}
@keyframes fv-enter{from{opacity:0;transform:translate3d(0,14px,0)}24%{opacity:1}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes fv-reenter{from{opacity:1;transform:translate3d(0,14px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.fv-motion-paused .fv-entering,.art-motion-paused .fv-entering{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.fv-art.fv-entering,.fv-art.art-reenter{animation:none!important;opacity:1;translate:none}}
.motion-flow .motion-step::before{--step-dot-size:10px;box-sizing:border-box;left:calc(var(--step-dot-axis, -21px) - var(--step-dot-size)/2);top:calc(var(--step-dot-offset,38px) - var(--step-dot-size)/2);width:var(--step-dot-size);height:var(--step-dot-size)}
.insurer-logo{transform-origin:center}
.insurer-logo.reveal-pending{transition:opacity .85s ease,transform 1.1s cubic-bezier(.2,.65,.2,1),box-shadow .3s ease,border-color .3s ease}
.empathy-copy{align-items:flex-start}
.empathy-copy>.copy-line{flex:none;align-self:flex-start;height:max-content;white-space:nowrap}
.empathy-copy .copy-text{writing-mode:vertical-rl;white-space:nowrap}
.empathy-copy.copy-playing>.copy-line::after{animation-name:copy-cover-vertical}
@keyframes copy-cover-vertical{0%{transform:scaleY(0);transform-origin:top}37%,51%{transform:scaleY(1);transform-origin:top}52%{transform-origin:bottom;transform:scaleY(1)}100%{transform:scaleY(0);transform-origin:bottom}}
.job-reference-note{margin:24px auto;max-width:900px;padding:18px 24px;border-left:3px solid #67bfdc;background:#fff;color:#596c7b;font-size:14px;line-height:1.9}
.job-reference-note strong{display:block;color:#34556b;margin-bottom:5px}
.job-inquiry{display:flex;align-items:center;justify-content:center;gap:18px;max-width:900px;margin:28px auto 0;padding:18px;background:var(--gradient);border-radius:6px;color:#fff;font-size:17px;font-weight:600}
.job-availability{max-width:900px;margin:28px auto;padding:32px;background:#fff;border-radius:12px;font-size:16px;line-height:2}
@media(max-width:1000px){
 .menu-toggle:focus:not(:focus-visible){outline:none;box-shadow:none}
 .site-header[data-menu-input=pointer] .menu-toggle:focus,.site-header[data-menu-input=pointer] .menu-toggle:focus-visible{outline:none;box-shadow:none}
 .home-intro .hero-orb{animation-duration:9s}
 .home-intro .orb-two{animation-duration:12s}
 .about-hero::before,.guidance-hero::before,.risks-page .risk-hero::before,.recruit-page .rec-hero::before,.news-hero__inner::before,.contact-hero__inner::before{animation-duration:12s}
}
@keyframes hero-cloud{from{translate:-32px -18px;scale:.96;rotate:-5deg}to{translate:40px 26px;scale:1.1;rotate:7deg}}
@keyframes menu-cloud-one{from{translate:-28px -18px;scale:.97}to{translate:34px 38px;scale:1.12}}
@keyframes menu-cloud-two{from{translate:34px -30px;scale:1.08}to{translate:-40px 27px;scale:.94}}
@keyframes fv-cloud{from{translate:-7% -3%;rotate:-12deg}to{translate:8% 8%;rotate:14deg}}
@media(max-width:760px){
 .guidance-flow-list.motion-flow,.recruit-page .rec-timeline.motion-flow{--flow-rail-x:0px;padding-left:28px}
 .motion-flow .motion-step::before{--step-dot-size:8px}
 .recruit-page .rec-fitting-cards{display:flex;flex-direction:column;gap:30px}
 .recruit-page .rec-fitting-cards>div{width:100%;height:auto;min-height:160px;padding:32px 16px 28px}
 .recruit-page .rec-fitting-cards h3{font-size:clamp(18px,5.1vw,22px);line-height:1.7;overflow-wrap:normal;word-break:normal;-webkit-text-size-adjust:100%;text-size-adjust:100%}
 .recruit-page .rec-fitting-cards h3>span{display:block;white-space:nowrap}
 .recruit-page .rec-fitting-cards p{font-size:12px}
 .recruit-page .rec-position-person,.recruit-page .rec-fitting-people{background:transparent;image-rendering:auto}
 .job-reference-note{font-size:13px;padding:16px;margin-top:24px}.job-availability{padding:24px;font-size:15px}.job-inquiry{font-size:15px;padding:16px}
}
@media(max-width:700px){
 .home-about{grid-template-columns:clamp(96px,28vw,120px) minmax(0,1fr) 104px;grid-template-rows:auto auto auto auto 164px;column-gap:16px;row-gap:30px}
 .home-about>.english-heading{grid-column:1/-1;grid-row:1}
 .home-about .home-about-art{display:contents;position:static}
 .home-about .home-about-art>img{position:static;inset:auto;object-fit:contain}
 .home-about .home-about-art .person-art{display:block;grid-column:1;grid-row:1;align-self:center;justify-self:start;width:clamp(70px,21vw,92px);height:auto;aspect-ratio:278/291}
 .home-about .home-about-art .pair-art{display:block;grid-column:3;grid-row:5;align-self:end;justify-self:end;width:104px;height:124px}
 .home-about .home-about-art .woman-art{display:block;grid-column:1;grid-row:5;align-self:start;justify-self:start;width:clamp(96px,28vw,120px);height:auto;aspect-ratio:160/150}
 .home-about .home-about-art .shield-one{display:block;grid-column:2;grid-row:5;align-self:start;justify-self:end;width:clamp(40px,11vw,48px);height:clamp(40px,11vw,48px)}
 .home-about .home-about-art .shield-two{display:block;grid-column:2;grid-row:5;align-self:end;justify-self:start;width:clamp(40px,11vw,48px);height:clamp(40px,11vw,48px)}
 .home-about-message>h3{grid-column:1/-1;grid-row:2}
 .home-about-message>p{grid-column:1/-1;grid-row:3;justify-self:center;width:100%;max-width:25em;font-size:16px;line-height:2;text-align:center;text-wrap:balance;overflow-wrap:normal}
 .home-about-message>p .keep-word{white-space:nowrap}
 .home-about>.text-link{grid-column:1/-1;grid-row:4;justify-self:center;gap:9px;font-size:15px;white-space:nowrap}
 .home-about>.text-link .link-arrow{width:48px;height:36px}
 .home-about .about-orbit{top:160px;opacity:.18}
 .empathy-copy p+p{margin-top:38px}
}
@media(max-width:359px){
 .home-about{grid-template-columns:96px minmax(0,1fr) 92px;column-gap:12px}
 .home-about>.english-heading{font-size:42px;left:12px}
 .home-about .home-about-art .pair-art{width:92px;height:110px}
 .home-about>.text-link{font-size:14px;gap:7px}
 .home-about>.text-link .link-arrow{width:42px;height:32px}
}
@media(prefers-reduced-motion:reduce){.art-reenter{animation:none!important;opacity:1;translate:none;scale:1}.empathy-copy.copy-playing>.copy-line::after{display:none}}
@media(max-width:760px){.recruit-page .rec-fitting-subtitle{-webkit-text-size-adjust:100%;text-size-adjust:100%;line-height:1.75}.recruit-page .rec-fitting-subtitle>span{display:block;white-space:nowrap}}
@media(max-width:700px){.home-about .home-about-art .person-art,.home-about .home-about-art .pair-art,.home-about .home-about-art .woman-art,.home-about .home-about-art .shield-one,.home-about .home-about-art .shield-two{position:static;inset:auto;margin:0}}

/* Keep location links readable in both the company table and footer. */
.company-map-link{display:inline-block;color:inherit;text-decoration:none}
.rec-job-admin .job-inquiry{background:linear-gradient(105deg,#b94000,#cb4c08)}

/* Preserve the centered ABOUT title while enlarging the left-hand illustration. */
@media(max-width:700px){
 .home-about .home-about-art .person-art{margin-left:-12px}
}
