.hero{position:relative;padding-top:40px;padding-bottom:18px;overflow:hidden}
.work-card,.place{isolation:isolate;overflow:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.work-card::before,.place::before{content:"";position:absolute;inset:0;background:#fff0df;z-index:-1;transform:translateY(102%);transition:transform .65s cubic-bezier(.22,1,.36,1);pointer-events:none}
.work-card{position:relative}
.work-card>img,.about-photos img{transition:transform .65s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){
 .work-card:hover,.place:hover{transform:translateY(-6px);box-shadow:0 18px 35px #703e1210}
 .work-card:hover::before,.place:hover::before,.place:focus-within::before{transform:translateY(0)}
 .work-card:hover>img{transform:scale(1.025)}
}
@media(prefers-reduced-motion:no-preference){
 .motion-ready:not(.motion-paused) .section-heading:not(.is-inview)::before{opacity:0}
 .motion-ready:not(.motion-paused) .section-heading.is-inview::before{animation:heading-ball 1.15s both;transform-origin:center bottom}
 .motion-ready:not(.motion-paused) .section-heading:nth-child(even)::before{animation-delay:.06s}
}
@keyframes heading-ball{
 0%{opacity:0;transform:translate(-90px,-125px) scale(.75,1.15)}
 12%{opacity:1}
 38%{transform:translate(0,9px) scale(1.3,.7)}
 58%{transform:translate(0,-36px) scale(.87,1.12)}
 76%{transform:translate(0,4px) scale(1.13,.87)}
 89%{transform:translate(0,-9px) scale(.97,1.03)}
 100%{opacity:1;transform:translate(0,0) scale(1)}
}
.motion-paused .section-heading::before{opacity:1!important;transform:none!important}
/* Oversized, softly blurred existing photographs bring depth behind the content. */
.about-scene{position:relative;isolation:isolate;overflow:hidden;padding:90px 0;background:#f9eddd}
.about-scene::before{content:"";position:absolute;z-index:-2;inset:-55px;background:linear-gradient(110deg,#fff4dc55,#fff1e54d),url('../img/sakae/visit-care-image.webp') center/cover;filter:blur(14px);transform:scale(1.08);animation:photo-drift 22s ease-in-out infinite alternate;animation-play-state:paused}
.about-scene::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(130deg,#fff4d047,transparent 45%,#f9906a36);pointer-events:none}
.about-scene .about{background:#ffffffed;border-radius:64px;padding:70px 6%;width:min(1220px,86%);box-shadow:0 20px 80px #42270908}
.about-scene .about-grid{gap:7%}
.about-photos img:first-child{animation:photo-float 8s ease-in-out infinite alternate;animation-play-state:paused}
.about-photos img:last-child{animation:photo-float 10s ease-in-out -3s infinite alternate-reverse;animation-play-state:paused}
.about-scene.scene-visible::before,.about-scene.scene-visible .about-photos img{animation-play-state:running}
.life-ribbon{overflow:hidden;padding:25px 0 80px;background:#fff;isolation:isolate}
.life-track{display:flex;width:max-content;animation:life-flow 45s linear infinite;animation-play-state:paused}
.life-ribbon.scene-visible .life-track{animation-play-state:running}
.life-group{display:flex;align-items:center;gap:26px;padding-right:26px;flex-shrink:0}
.life-group figure{position:relative;width:clamp(230px,27vw,410px);margin:0;flex-shrink:0;overflow:hidden;border-radius:28px;transform:rotate(-3deg)}
.life-group figure:nth-child(even){transform:rotate(3deg);margin-top:65px}
.life-group img{width:100%;height:290px;object-fit:cover}
.life-group figcaption{position:absolute;left:0;bottom:0;width:100%;padding:45px 20px 18px;background:linear-gradient(transparent,#201810a6);color:white;font-size:19px;font-weight:700;letter-spacing:.06em}
.word-band .word-run{display:flex;width:max-content;animation:life-flow 32s linear infinite;animation-play-state:paused}
.word-band.scene-visible .word-run{animation-play-state:running}
.word-band .word-run span{animation:none;padding-right:.3em;flex-shrink:0}
.word-band .word-sakae{color:#e9b1a7;font-weight:inherit}
.entry::before{inset:-35px;width:auto;height:auto;border:0;border-radius:0;background:url('../img/sakae/day-rehab-image.webp') center/cover;filter:blur(10px);opacity:.24;animation:photo-drift 20s ease-in-out infinite alternate;animation-play-state:paused}
.entry.scene-visible::before{animation-play-state:running}
@keyframes photo-drift{from{transform:scale(1.08) translate(-1%,-1%)}to{transform:scale(1.16) translate(1%,1%)}}
@keyframes photo-float{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-16px) rotate(1deg)}}
@keyframes life-flow{to{transform:translateX(-50%)}}
@media(max-width:1000px){.about-scene{padding:65px 0}.about-scene .about{border-radius:40px;padding:55px 6%}.life-group img{height:235px}.life-group{gap:20px;padding-right:20px}}
@media(max-width:540px){.about-scene{padding:45px 0}.about-scene .about{width:90%;padding:45px 7%;border-radius:30px}.life-ribbon{padding:15px 0 50px}.life-group img{height:210px}.life-group figure{width:230px;border-radius:20px}.life-group figcaption{font-size:16px}.life-group figure:nth-child(even){margin-top:35px}.life-track{animation-duration:38s}}
@media(prefers-reduced-motion:reduce){.about-scene::before,.entry::before,.about-photos img{transform:none!important}}
.photo-track{display:flex;gap:14px;width:140%;margin-left:-20%;height:610px}
.photo-track img{border-radius:30px;width:33.333%;height:100%;transition:opacity .25s}
.photo-track .photo-main{width:40%}
.photo-side{object-position:55% center}
.hero-copy{position:absolute;left:0;top:315px;width:min(850px,76%);background:#ffffffed;border-radius:0 30px 30px 0;padding:34px 48px 36px max(7vw,40px)}
.hero-copy p{font-size:18px;font-weight:700;margin-bottom:15px;letter-spacing:.02em}
.hero-copy strong{color:#d92931}
.hero h1{font-size:clamp(29px,3.2vw,51px);line-height:1.6;letter-spacing:.045em;margin-bottom:23px}
.hero-bottom{display:flex;justify-content:space-between;padding:18px 4% 0;align-items:center;gap:20px}
.hero-bottom>span{font-size:10px;letter-spacing:.15em;color:#777}
.photo-controls{display:flex;align-items:center;gap:25px}
.photo-change{border:0;background:none;font-size:11px;padding:8px;color:var(--ink)}
.photo-change span{font-size:20px;margin-left:8px}
.photo-count{font:13px Arial,sans-serif;letter-spacing:.12em}
.scroll-label{position:absolute;left:24px;bottom:80px;writing-mode:vertical-rl;font:12px Arial;letter-spacing:.08em}
.scroll-label span{margin-top:16px}
.mobile-break{display:none}
.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:10%}
.about h3,.section-intro h3{font-size:32px;line-height:1.85;letter-spacing:.04em;margin-bottom:32px}
.about p:not(.english):not(.photo-word){font-size:15px;line-height:2.2;margin-bottom:26px}
.about-photos{padding-top:25px}
.about-photos img{border-radius:28px;width:100%;aspect-ratio:1.35;object-position:center}
.about-photos img:last-child{width:70%;margin:10px 0 0 auto;aspect-ratio:1.2}
.photo-word{font:italic 32px/1.3 Georgia,serif;color:var(--red);margin:25px 0 22px -40px}
.word-band{overflow:hidden;padding:25px 0 40px;white-space:nowrap;color:#edeeeb;font:700 clamp(60px,9vw,140px)/1 Arial,sans-serif;letter-spacing:-.03em}
.word-band span{display:block;animation:band 45s linear infinite;width:max-content}
@keyframes band{to{transform:translateX(-35%)}}
.work{background:var(--soft);border-radius:65px 65px 0 0}
.work-card{background:white;border-radius:30px;padding:48px 50px;display:grid;grid-template-columns:1.7fr 1fr;align-items:center;gap:45px;margin-top:30px}
.work-title{display:flex;gap:16px;align-items:center;margin-bottom:22px}
.number{font:54px/1 Arial,sans-serif;color:var(--red);letter-spacing:-.05em}
.work-title p{font-size:13px;margin:0}
.work-title h3{font-size:23px;line-height:1.5;margin:5px 0 0}
.work-content>p{font-size:14px;line-height:2.1}
.work-card>img{width:100%;aspect-ratio:1.1;border-radius:25px}
.work-card .text-link{margin-top:25px}
.consult-visual{background:#fff2ec;border-radius:25px;padding:32px 25px}
.consult-visual>span{display:block;font:700 clamp(20px,2.4vw,34px)/1.3 Arial;color:#e83d38;letter-spacing:-.04em}
.consult-visual p{font-size:12px;margin:20px 0 0}
.section-intro{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:40px}
.section-intro p{font-size:14px;line-height:2.1}
.section-intro h3{margin:0}
.places-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.place{position:relative;background:#f7f7f5;border-radius:20px;padding:35px 25px 20px;scroll-margin-top:130px}
.place-no{position:absolute;right:20px;top:12px;color:#e5e5e0;font:50px Arial}
.tag{position:relative;color:#bc3532;font-size:11px;font-weight:700;margin:8px 0 14px}
.place h3{position:relative;font-size:18px;line-height:1.7;min-height:61px}
.place>p:not(.tag){font-size:12px;min-height:48px;line-height:1.9}
.place small{font-size:10px}
.place details{border-top:1px solid #ddd;font-size:12px}
.place summary{padding:15px 0 0}
.place details p{margin:16px 0 8px}
.rehab-room-photo{max-width:360px;margin:22px auto 0}
.rehab-room-photo .official-photo{display:block;height:auto;margin:0 0 8px}
.rehab-room-photo figcaption{font-size:12px;text-align:center;color:var(--ink)}
.detail-link{display:block;padding-top:14px;text-decoration:underline}
.place summary span{color:#dd3836;margin-left:auto}
.team{background:#f5f5f3;display:grid;grid-template-columns:1fr 1fr;align-items:center}
.team>img{width:100%;height:100%;min-height:540px;object-position:48% center;border-radius:0 40px 40px 0}
.team>div{padding:70px 12%}
.eyebrow{font:11px Arial;color:#ce3a33;letter-spacing:.11em}
.team h2{font-size:30px;line-height:1.85;margin:25px 0}
.team p:not(.eyebrow){font-size:14px;line-height:2.2;margin-bottom:28px}
.team .button{font-size:12px;gap:20px}
.faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:65px}
.faq-list details{border-bottom:1px solid #d7d7d4}
.faq-list summary{font-size:14px;font-weight:700;padding:25px 0;line-height:1.8}
.q{color:var(--red);font:28px Arial}
.plus{margin-left:auto;font-size:23px;color:var(--red);flex-shrink:0}
.faq-list details p{font-size:13px;padding:0 30px 15px;line-height:2}
.faq-list details p a{display:block;color:#bb3333;text-decoration:underline;margin-top:10px}
.white{background:white;color:#ba3530;margin:20px 0}
.white>span{background:var(--gradient);color:white}
@media(min-width:1600px){.photo-track{height:700px}
.hero-copy{top:365px}
.hero{max-width:1900px;margin:auto}
}
@media(max-width:1100px){.hero-copy{padding-left:7vw}
.work-card{padding:35px;gap:30px}
.work-title h3{font-size:20px}
.places-grid{grid-template-columns:repeat(2,1fr)}
.faq{gap:35px}
.team>div{padding:50px 9%}
.team h2{font-size:25px}
}
@media(max-width:1000px){.hero{padding-top:22px}
.photo-track{height:440px;width:185%;margin-left:-42.5%;gap:10px}
.photo-track img{border-radius:23px}
.hero-copy{top:250px;padding:25px 6vw 28px;width:88%}
.hero h1{font-size:32px;line-height:1.65}
.hero-copy p{font-size:13px;margin-bottom:14px}
.hero-bottom{padding-top:140px;justify-content:flex-end}
.hero-bottom>span{display:none}
.scroll-label{display:none}
.about-grid{gap:7%}
.about h3{font-size:25px}
.about p:not(.english):not(.photo-word){font-size:13px}
.about-photos{padding-top:65px}
.photo-word{font-size:24px;margin-left:-15px}
.work{border-radius:38px 38px 0 0}
.work-card{grid-template-columns:1.5fr 1fr;padding:28px;gap:22px}
.work-title{gap:12px}
.number{font-size:40px}
.work-title h3{font-size:19px}
.work-title p{font-size:10px}
.work-content>p{font-size:13px}
.consult-visual{padding:30px 18px}
.section-intro{display:block}
.section-intro h3{font-size:27px;margin-bottom:22px}
.team{grid-template-columns:1fr}
.team>img{min-height:0;height:390px;width:93%}
.team>div{padding:48px 7%}
.team h2{font-size:30px}
.faq{grid-template-columns:1fr;gap:0}
}
@media(max-width:540px){.hero{padding-top:16px}
.photo-track{height:325px;width:240%;margin-left:-70%}
.photo-track .photo-main{width:42%}
.hero-copy{top:245px;width:94%;padding:24px 7vw 28px;border-radius:0 24px 24px 0}
.hero-copy p{font-size:11px}
.hero h1{font-size:29px;line-height:1.6;letter-spacing:.035em;margin-bottom:20px}
.mobile-break{display:block}
.hero-bottom{padding:205px 7% 0}
.photo-controls{gap:15px}
.photo-change{font-size:10px}
.about-grid{grid-template-columns:1fr}
.about h3{font-size:26px}
.about p:not(.english):not(.photo-word){font-size:14px;line-height:2.1}
.about-photos{padding-top:35px;position:relative;padding-bottom:20px}
.about-photos img{width:87%;aspect-ratio:1.4}
.about-photos img:last-child{width:57%;margin-top:-45px;position:relative;aspect-ratio:1}
.photo-word{font-size:clamp(20px,6.25vw,25px);margin:20px 0 0}
.word-band{padding:0 0 25px;font-size:65px}
.work-card{grid-template-columns:1fr;padding:28px 24px;margin-top:22px;gap:22px;border-radius:24px}
.work-title h3{font-size:19px}
.work-title{align-items:flex-start}
.number{font-size:39px}
.work-title p{font-size:10px}
.work-card>img{aspect-ratio:1.5;grid-row:2;border-radius:18px}
.work-content>p{line-height:2}
.work-card .text-link{font-size:12px}
.consult-visual{padding:24px}
.consult-visual>span{font-size:34px}
.consult-visual p{margin-top:10px}
.places-grid{grid-template-columns:1fr;gap:18px}
.place{padding:25px 23px 18px}
.place h3{min-height:0;font-size:18px;margin-bottom:13px}
.place>p:not(.tag){min-height:0;font-size:12px}
.place-no{font-size:45px}
.section-intro p{font-size:13px}
.section-intro p br{display:none}
.team>img{height:280px;border-radius:0 28px 28px 0}
.team h2{font-size:26px}
.team p:not(.eyebrow){font-size:13px}
.faq-list summary{font-size:12px;gap:10px}
.q{font-size:25px}
.faq-list details p{padding-inline:0}
}
@media(max-width:540px){.about h3{font-size:clamp(19px,5.9vw,24px)}
}

/* Area illustration: labels remain HTML and motion follows the shared stop control. */
.workplace-overview{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5%;margin-bottom:45px}
.workplace-copy .section-intro{display:block;margin:0}
.workplace-copy .section-intro h3{margin-bottom:22px}
.area-map{margin:-35px 0 0;min-width:0}
.area-map-title{text-align:center;font-weight:700;margin:0 0 14px}
.area-map-choice{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.area-map-switch{display:flex;justify-content:center;gap:10px;margin-bottom:20px}
.area-map-daycare-areas{background:#faf4ee;border-radius:16px;padding:15px 20px;margin-bottom:18px;font-size:12px;line-height:1.9;color:#76594e}.area-map-daycare-areas p{margin:0 0 7px}.area-map-daycare-areas p:last-child{margin-bottom:0}
#map-nursing:checked~.area-map-daycare-areas{display:none}
.area-map-switch label{padding:9px 12px;border:1px solid #e4d6cc;border-radius:30px;cursor:pointer;font-size:12px;background:#fff;color:#76594e;text-align:center}
#map-nursing:checked~.area-map-switch label[for="map-nursing"],#map-daycare:checked~.area-map-switch label[for="map-daycare"]{background:#edc5b6;border-color:#edc5b6;font-weight:700}
#map-nursing:focus-visible~.area-map-switch label[for="map-nursing"],#map-daycare:focus-visible~.area-map-switch label[for="map-daycare"]{outline:2px solid #805449;outline-offset:3px}
#map-nursing:checked~.area-map-canvas .area-map-daycare-image,#map-nursing:checked~.area-map-canvas .area-map-shijimi,#map-nursing:checked~figcaption .area-map-daycare-caption,#map-daycare:checked~.area-map-canvas .area-map-nursing-image,#map-daycare:checked~figcaption .area-map-nursing-caption{display:none}
.area-map-canvas{--sakae-x:39.34%;--sakae-y:49.26%;position:relative;isolation:isolate;width:100%;aspect-ratio:1;overflow:hidden;border-radius:40px}
.area-map-canvas>img{display:block;width:100%;height:100%;object-fit:contain}
.area-map-label{position:absolute;transform:translate(-50%,-50%);color:#86776b;font-size:13px;white-space:nowrap;font-weight:600;text-align:center;line-height:1.5;z-index:2}
.area-map-label small{display:block;font-size:9px;letter-spacing:.12em;font-weight:500}
.area-map-miki{left:45%;top:26%}.area-map-sanda{left:75%;top:12%}.area-map-kita{left:66%;top:41%}.area-map-akashi{left:13%;top:68%}
.area-map-shijimi{left:40%;top:40%;font-size:11px;color:#805449}.area-map-shijimi small{letter-spacing:.02em}
.area-map-nishi{left:29%;top:59%;font-size:22px;color:#6c4138;line-height:1.6}
.area-map-nishi small{font-size:10px;letter-spacing:.14em;color:#7d4a3f}
.area-map-rings{position:absolute;left:var(--sakae-x);top:var(--sakae-y);width:30%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.area-map-rings i{position:absolute;inset:0;border:1px solid rgba(194,110,86,.25);border-radius:50%;background:rgba(225,165,139,.08)}
.area-map-rings i:nth-child(2){inset:-20%}.area-map-rings i:nth-child(3){inset:-40%}
.area-map figcaption{text-align:center;font-size:14px;letter-spacing:.08em;color:#806f64;margin-top:8px}
.area-map figcaption small{display:block;font-size:10px;letter-spacing:.03em;color:#918780;margin-top:6px}
@media(prefers-reduced-motion:no-preference){.area-map.scene-visible .area-map-rings i{animation:area-ripple 4.5s ease-in-out infinite}.area-map.scene-visible .area-map-rings i:nth-child(2){animation-delay:.4s}.area-map.scene-visible .area-map-rings i:nth-child(3){animation-delay:.8s}}
@keyframes area-ripple{0%,100%{transform:scale(.9);opacity:.45}50%{transform:scale(1.08);opacity:1}}
@media(max-width:800px){.workplace-overview{grid-template-columns:1fr;gap:28px}.area-map{width:min(100%,490px);margin:0 auto}.workplace-copy .section-intro p br{display:none}}
@media(max-width:540px){.area-map-label{font-size:11px}.area-map-label small{font-size:8px}.area-map-nishi{font-size:18px}.area-map-nishi small{font-size:9px}.area-map-canvas{border-radius:24px}.area-map figcaption{font-size:12px}}

/* Station-area marker on the illustrative map; not a surveyed building position. */
.area-map-location{position:absolute;left:var(--sakae-x);top:var(--sakae-y);z-index:3}
.area-map-dot{position:absolute;width:12px;height:12px;border-radius:50%;background:#d74342;border:2px solid #fff;box-shadow:0 0 0 3px #d7434226;transform:translate(-50%,-50%)}
.area-map-location-label{position:absolute;left:14px;top:-12px;padding:5px 9px;background:rgba(255,255,255,.92);border-radius:8px;color:#6c4138;white-space:nowrap;line-height:1.6;font-size:12px}
.area-map-location-label b{font-weight:700}.area-map-location-label small{display:block;font-size:10px;color:#64594f}
@media(max-width:540px){.area-map-location-label{left:11px;padding:4px 6px;font-size:11px}.area-map-location-label small{font-size:9px}}

/* Joining bonus is a primary recruitment message. */
.joining-bonus{box-sizing:border-box;margin:36px auto;padding:clamp(22px,4vw,48px);border:3px solid #d57b68;border-radius:24px;background:#fff4d9;color:#403e38;max-width:calc(100% - 32px)}
.joining-bonus-label{font-weight:700;color:#924c3e}.joining-bonus h2{font-size:clamp(26px,4vw,42px);line-height:1.5;margin:8px 0 18px}.joining-bonus h2 span{display:inline-block;color:#a6402c}.joining-bonus p{line-height:1.9;overflow-wrap:anywhere}.joining-bonus .actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center}.joining-bonus .button{white-space:normal}.joining-bonus-badge{display:inline-block;padding:6px 14px;border-radius:8px;background:#fff0b8;color:#8b3e2f;font-weight:700}.job-fields+.joining-bonus{width:100%}
