/* スクロールアニメーション（TOP・ABOUT のみ）。CSS transition ＋ IntersectionObserver（assets/js/motion.js）。
   - 隠し状態は html.lw-mo（head のインラインスクリプトが付与。JS無効・reduced-motion では付かない）の下だけ。
   - translate / scale は個別プロパティで、既存の transform（hover 等）と干渉させない。
   - 表示完了後は JS が .mo-done を付け、本ファイルのルールを外す（既存の transition を壊さない）。
   - 対象を足すときは motion.js の SELECTORS と、このファイルのリストの両方に追記する。 */

@media (prefers-reduced-motion: no-preference) {

/* ---- タイプ別の量（PC） ---- */
.lw-mo .lw-sec-title__eyebrow,
.lw-mo .lw-cta-recruit__eyebrow { --mo-y: 12px; --mo-dur: 0.55s; --mo-base: 0s; }
.lw-mo .lw-sec-title__row,
.lw-mo .lw-a-h2,
.lw-mo .lw-amsg__lead,
.lw-mo .lw-cta-reserve__title,
.lw-mo .lw-cta-recruit__title { --mo-y: 28px; --mo-dur: 0.85s; --mo-base: 0.08s; }
.lw-mo .lw-a-sub,
.lw-mo .lw-fwhy__lead,
.lw-mo .lw-fwhy__body,
.lw-mo .lw-fwhy__kw,
.lw-mo .lw-fwhy__more,
.lw-mo .lw-amsg__body,
.lw-mo .lw-acare__body,
.lw-mo .lw-fcolor__all,
.lw-mo .lw-fnews__more,
.lw-mo .lw-fnews__all,
.lw-mo .lw-social__follow,
.lw-mo .lw-cta-reserve__copy,
.lw-mo .lw-cta-reserve__buttons,
.lw-mo .lw-cta-recruit__text,
.lw-mo .lw-cta-recruit__btn,
.lw-mo .lw-ateam__lead,
.lw-mo .lw-ateam__more,
.lw-mo .lw-sstaff__all,
.lw-mo .lw-sstyle__all,
.lw-mo .lw-saccess__map,
.lw-mo .lw-saccess__link,
.lw-mo .lw-staff-group__head,
.lw-mo .lw-rdet__text,
.lw-mo .lw-rdet__cta,
.lw-mo .lw-rjoin__eyebrow,
.lw-mo .lw-rjoin__title,
.lw-mo .lw-rjoin__text,
.lw-mo .lw-rjoin__cta,
.lw-mo .lw-rteam__more,
.lw-mo .lw-fnews__empty { --mo-y: 16px; --mo-dur: 0.7s; --mo-base: 0.14s; }
.lw-mo .lw-tone-tile,
.lw-mo .lw-pnav__card,
.lw-mo .lw-stat,
.lw-mo .lw-sstaff__card,
.lw-mo .lw-sstyle__tile,
.lw-mo .lw-sdata__row,
.lw-mo .lw-pcard,
.lw-mo .lw-rmind__item,
.lw-mo .lw-rgrow__row,
.lw-mo .lw-rsalon__item,
.lw-mo .lw-awhy__item,
.lw-mo .lw-asalon__item,
.lw-mo .lw-ateam__grid .lw-photo,
.lw-mo .lw-fnews__list > * { --mo-y: 20px; --mo-dur: 0.7s; --mo-base: 0s; }
.lw-mo .lw-fhero__title,
.lw-mo .lw-ahero__eyebrow,
.lw-mo .lw-sahero__eyebrow,
.lw-mo .lw-sahero__title,
.lw-mo .lw-sthero__eyebrow,
.lw-mo .lw-sthero__title,
.lw-mo .lw-rhero__eyebrow,
.lw-mo .lw-rhero__title,
.lw-mo .lw-ahero__title,
.lw-mo .lw-fhero__copy,
.lw-mo .lw-fhero__lead,
.lw-mo .lw-ahero__sub,
.lw-mo .lw-sahero__jp,
.lw-mo .lw-sahero__switch,
.lw-mo .lw-sthero__sub,
.lw-mo .lw-sthero__lead,
.lw-mo .lw-rhero__lead,
.lw-mo .lw-ahero__jp,
.lw-mo .lw-fhero__actions { --mo-y: 20px; --mo-dur: 0.75s; --mo-base: 0s; }

/* ---- 隠し状態（opacity ＋ translate） ---- */
.lw-mo .lw-sec-title__eyebrow:not(.is-in):not(.mo-done),
.lw-mo .lw-cta-recruit__eyebrow:not(.is-in):not(.mo-done),
.lw-mo .lw-sec-title__row:not(.is-in):not(.mo-done),
.lw-mo .lw-a-h2:not(.is-in):not(.mo-done),
.lw-mo .lw-amsg__lead:not(.is-in):not(.mo-done),
.lw-mo .lw-cta-reserve__title:not(.is-in):not(.mo-done),
.lw-mo .lw-cta-recruit__title:not(.is-in):not(.mo-done),
.lw-mo .lw-a-sub:not(.is-in):not(.mo-done),
.lw-mo .lw-fwhy__lead:not(.is-in):not(.mo-done),
.lw-mo .lw-fwhy__body:not(.is-in):not(.mo-done),
.lw-mo .lw-fwhy__kw:not(.is-in):not(.mo-done),
.lw-mo .lw-fwhy__more:not(.is-in):not(.mo-done),
.lw-mo .lw-amsg__body:not(.is-in):not(.mo-done),
.lw-mo .lw-acare__body:not(.is-in):not(.mo-done),
.lw-mo .lw-fcolor__all:not(.is-in):not(.mo-done),
.lw-mo .lw-fnews__more:not(.is-in):not(.mo-done),
.lw-mo .lw-fnews__all:not(.is-in):not(.mo-done),
.lw-mo .lw-social__follow:not(.is-in):not(.mo-done),
.lw-mo .lw-cta-reserve__copy:not(.is-in):not(.mo-done),
.lw-mo .lw-cta-reserve__buttons:not(.is-in):not(.mo-done),
.lw-mo .lw-cta-recruit__text:not(.is-in):not(.mo-done),
.lw-mo .lw-cta-recruit__btn:not(.is-in):not(.mo-done),
.lw-mo .lw-ateam__lead:not(.is-in):not(.mo-done),
.lw-mo .lw-ateam__more:not(.is-in):not(.mo-done),
.lw-mo .lw-sstaff__all:not(.is-in):not(.mo-done),
.lw-mo .lw-sstyle__all:not(.is-in):not(.mo-done),
.lw-mo .lw-saccess__map:not(.is-in):not(.mo-done),
.lw-mo .lw-saccess__link:not(.is-in):not(.mo-done),
.lw-mo .lw-staff-group__head:not(.is-in):not(.mo-done),
.lw-mo .lw-rdet__text:not(.is-in):not(.mo-done),
.lw-mo .lw-rdet__cta:not(.is-in):not(.mo-done),
.lw-mo .lw-rjoin__eyebrow:not(.is-in):not(.mo-done),
.lw-mo .lw-rjoin__title:not(.is-in):not(.mo-done),
.lw-mo .lw-rjoin__text:not(.is-in):not(.mo-done),
.lw-mo .lw-rjoin__cta:not(.is-in):not(.mo-done),
.lw-mo .lw-rteam__more:not(.is-in):not(.mo-done),
.lw-mo .lw-fnews__empty:not(.is-in):not(.mo-done),
.lw-mo .lw-tone-tile:not(.is-in):not(.mo-done),
.lw-mo .lw-pnav__card:not(.is-in):not(.mo-done),
.lw-mo .lw-stat:not(.is-in):not(.mo-done),
.lw-mo .lw-sstaff__card:not(.is-in):not(.mo-done),
.lw-mo .lw-sstyle__tile:not(.is-in):not(.mo-done),
.lw-mo .lw-sdata__row:not(.is-in):not(.mo-done),
.lw-mo .lw-pcard:not(.is-in):not(.mo-done),
.lw-mo .lw-rmind__item:not(.is-in):not(.mo-done),
.lw-mo .lw-rgrow__row:not(.is-in):not(.mo-done),
.lw-mo .lw-rsalon__item:not(.is-in):not(.mo-done),
.lw-mo .lw-awhy__item:not(.is-in):not(.mo-done),
.lw-mo .lw-asalon__item:not(.is-in):not(.mo-done),
.lw-mo .lw-ateam__grid .lw-photo:not(.is-in):not(.mo-done),
.lw-mo .lw-fnews__list > *:not(.is-in):not(.mo-done),
.lw-mo .lw-fhero__title:not(.is-in):not(.mo-done),
.lw-mo .lw-ahero__eyebrow:not(.is-in):not(.mo-done),
.lw-mo .lw-sahero__eyebrow:not(.is-in):not(.mo-done),
.lw-mo .lw-sahero__title:not(.is-in):not(.mo-done),
.lw-mo .lw-sthero__eyebrow:not(.is-in):not(.mo-done),
.lw-mo .lw-sthero__title:not(.is-in):not(.mo-done),
.lw-mo .lw-rhero__eyebrow:not(.is-in):not(.mo-done),
.lw-mo .lw-rhero__title:not(.is-in):not(.mo-done),
.lw-mo .lw-ahero__title:not(.is-in):not(.mo-done),
.lw-mo .lw-fhero__copy:not(.is-in):not(.mo-done),
.lw-mo .lw-fhero__lead:not(.is-in):not(.mo-done),
.lw-mo .lw-ahero__sub:not(.is-in):not(.mo-done),
.lw-mo .lw-sahero__jp:not(.is-in):not(.mo-done),
.lw-mo .lw-sahero__switch:not(.is-in):not(.mo-done),
.lw-mo .lw-sthero__sub:not(.is-in):not(.mo-done),
.lw-mo .lw-sthero__lead:not(.is-in):not(.mo-done),
.lw-mo .lw-rhero__lead:not(.is-in):not(.mo-done),
.lw-mo .lw-ahero__jp:not(.is-in):not(.mo-done),
.lw-mo .lw-fhero__actions:not(.is-in):not(.mo-done) {
	opacity: 0;
	translate: 0 var(--mo-y, 16px);
}

/* ---- 表示（トランジション） ---- */
.lw-mo .lw-sec-title__eyebrow.is-in:not(.mo-done),
.lw-mo .lw-cta-recruit__eyebrow.is-in:not(.mo-done),
.lw-mo .lw-sec-title__row.is-in:not(.mo-done),
.lw-mo .lw-a-h2.is-in:not(.mo-done),
.lw-mo .lw-amsg__lead.is-in:not(.mo-done),
.lw-mo .lw-cta-reserve__title.is-in:not(.mo-done),
.lw-mo .lw-cta-recruit__title.is-in:not(.mo-done),
.lw-mo .lw-a-sub.is-in:not(.mo-done),
.lw-mo .lw-fwhy__lead.is-in:not(.mo-done),
.lw-mo .lw-fwhy__body.is-in:not(.mo-done),
.lw-mo .lw-fwhy__kw.is-in:not(.mo-done),
.lw-mo .lw-fwhy__more.is-in:not(.mo-done),
.lw-mo .lw-amsg__body.is-in:not(.mo-done),
.lw-mo .lw-acare__body.is-in:not(.mo-done),
.lw-mo .lw-fcolor__all.is-in:not(.mo-done),
.lw-mo .lw-fnews__more.is-in:not(.mo-done),
.lw-mo .lw-fnews__all.is-in:not(.mo-done),
.lw-mo .lw-social__follow.is-in:not(.mo-done),
.lw-mo .lw-cta-reserve__copy.is-in:not(.mo-done),
.lw-mo .lw-cta-reserve__buttons.is-in:not(.mo-done),
.lw-mo .lw-cta-recruit__text.is-in:not(.mo-done),
.lw-mo .lw-cta-recruit__btn.is-in:not(.mo-done),
.lw-mo .lw-ateam__lead.is-in:not(.mo-done),
.lw-mo .lw-ateam__more.is-in:not(.mo-done),
.lw-mo .lw-sstaff__all.is-in:not(.mo-done),
.lw-mo .lw-sstyle__all.is-in:not(.mo-done),
.lw-mo .lw-saccess__map.is-in:not(.mo-done),
.lw-mo .lw-saccess__link.is-in:not(.mo-done),
.lw-mo .lw-staff-group__head.is-in:not(.mo-done),
.lw-mo .lw-rdet__text.is-in:not(.mo-done),
.lw-mo .lw-rdet__cta.is-in:not(.mo-done),
.lw-mo .lw-rjoin__eyebrow.is-in:not(.mo-done),
.lw-mo .lw-rjoin__title.is-in:not(.mo-done),
.lw-mo .lw-rjoin__text.is-in:not(.mo-done),
.lw-mo .lw-rjoin__cta.is-in:not(.mo-done),
.lw-mo .lw-rteam__more.is-in:not(.mo-done),
.lw-mo .lw-fnews__empty.is-in:not(.mo-done),
.lw-mo .lw-tone-tile.is-in:not(.mo-done),
.lw-mo .lw-pnav__card.is-in:not(.mo-done),
.lw-mo .lw-stat.is-in:not(.mo-done),
.lw-mo .lw-sstaff__card.is-in:not(.mo-done),
.lw-mo .lw-sstyle__tile.is-in:not(.mo-done),
.lw-mo .lw-sdata__row.is-in:not(.mo-done),
.lw-mo .lw-pcard.is-in:not(.mo-done),
.lw-mo .lw-rmind__item.is-in:not(.mo-done),
.lw-mo .lw-rgrow__row.is-in:not(.mo-done),
.lw-mo .lw-rsalon__item.is-in:not(.mo-done),
.lw-mo .lw-awhy__item.is-in:not(.mo-done),
.lw-mo .lw-asalon__item.is-in:not(.mo-done),
.lw-mo .lw-ateam__grid .lw-photo.is-in:not(.mo-done),
.lw-mo .lw-fnews__list > *.is-in:not(.mo-done),
.lw-mo .lw-fhero__title.is-in:not(.mo-done),
.lw-mo .lw-ahero__eyebrow.is-in:not(.mo-done),
.lw-mo .lw-sahero__eyebrow.is-in:not(.mo-done),
.lw-mo .lw-sahero__title.is-in:not(.mo-done),
.lw-mo .lw-sthero__eyebrow.is-in:not(.mo-done),
.lw-mo .lw-sthero__title.is-in:not(.mo-done),
.lw-mo .lw-rhero__eyebrow.is-in:not(.mo-done),
.lw-mo .lw-rhero__title.is-in:not(.mo-done),
.lw-mo .lw-ahero__title.is-in:not(.mo-done),
.lw-mo .lw-fhero__copy.is-in:not(.mo-done),
.lw-mo .lw-fhero__lead.is-in:not(.mo-done),
.lw-mo .lw-ahero__sub.is-in:not(.mo-done),
.lw-mo .lw-sahero__jp.is-in:not(.mo-done),
.lw-mo .lw-sahero__switch.is-in:not(.mo-done),
.lw-mo .lw-sthero__sub.is-in:not(.mo-done),
.lw-mo .lw-sthero__lead.is-in:not(.mo-done),
.lw-mo .lw-rhero__lead.is-in:not(.mo-done),
.lw-mo .lw-ahero__jp.is-in:not(.mo-done),
.lw-mo .lw-fhero__actions.is-in:not(.mo-done) {
	transition: opacity var(--mo-dur, 0.7s) cubic-bezier(0.22, 0.61, 0.36, 1) calc(var(--mo-base, 0s) + var(--mo-d, 0s)),
		translate var(--mo-dur, 0.7s) cubic-bezier(0.22, 0.61, 0.36, 1) calc(var(--mo-base, 0s) + var(--mo-d, 0s));
}

/* ---- SOCIAL タイル（768px以上のみ。モバイルは横スクロールを妨げないため動かさない） ---- */
@media (min-width: 768px) {
	.lw-mo .lw-social__tile { --mo-y: 20px; --mo-dur: 0.7s; --mo-base: 0s; }
	.lw-mo .lw-social__tile:not(.is-in):not(.mo-done) { opacity: 0; translate: 0 20px; }
	.lw-mo .lw-social__tile.is-in:not(.mo-done) {
		transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) var(--mo-d, 0s), translate 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) var(--mo-d, 0s);
	}
}

/* ---- 画像：枠（overflow:hidden）の中だけで opacity ＋ scale ---- */
.lw-mo .lw-fwhy__media .lw-photo:not(.is-in):not(.mo-done),
.lw-mo .lw-sstore__media .lw-photo:not(.is-in):not(.mo-done),
.lw-mo .lw-acare__media .lw-photo:not(.is-in):not(.mo-done),
.lw-mo .lw-fhero__media:not(.is-in):not(.mo-done),
.lw-mo .lw-sthero__media:not(.is-in):not(.mo-done),
.lw-mo .lw-rhero__media:not(.is-in):not(.mo-done),
.lw-mo .lw-ahero__media:not(.is-in):not(.mo-done) { opacity: 0; }
.lw-mo .lw-fwhy__media .lw-photo:not(.is-in):not(.mo-done) .lw-photo__img,
.lw-mo .lw-sstore__media .lw-photo:not(.is-in):not(.mo-done) .lw-photo__img,
.lw-mo .lw-acare__media .lw-photo:not(.is-in):not(.mo-done) .lw-photo__img,
.lw-mo .lw-fhero__media:not(.is-in):not(.mo-done) .lw-photo__img,
.lw-mo .lw-sthero__media:not(.is-in):not(.mo-done) .lw-photo__img,
.lw-mo .lw-rhero__media:not(.is-in):not(.mo-done) .lw-photo__img,
.lw-mo .lw-ahero__media:not(.is-in):not(.mo-done) .lw-photo__img { scale: 1.03; }
.lw-mo .lw-fwhy__media .lw-photo.is-in:not(.mo-done),
.lw-mo .lw-sstore__media .lw-photo.is-in:not(.mo-done),
.lw-mo .lw-acare__media .lw-photo.is-in:not(.mo-done),
.lw-mo .lw-fhero__media.is-in:not(.mo-done),
.lw-mo .lw-sthero__media.is-in:not(.mo-done),
.lw-mo .lw-rhero__media.is-in:not(.mo-done),
.lw-mo .lw-ahero__media.is-in:not(.mo-done) { transition: opacity 0.9s ease calc(var(--mo-d, 0s)); }
.lw-mo .lw-fwhy__media .lw-photo.is-in:not(.mo-done) .lw-photo__img,
.lw-mo .lw-sstore__media .lw-photo.is-in:not(.mo-done) .lw-photo__img,
.lw-mo .lw-acare__media .lw-photo.is-in:not(.mo-done) .lw-photo__img,
.lw-mo .lw-fhero__media.is-in:not(.mo-done) .lw-photo__img,
.lw-mo .lw-sthero__media.is-in:not(.mo-done) .lw-photo__img,
.lw-mo .lw-rhero__media.is-in:not(.mo-done) .lw-photo__img,
.lw-mo .lw-ahero__media.is-in:not(.mo-done) .lw-photo__img { transition: scale 1s cubic-bezier(0.22, 0.61, 0.36, 1) var(--mo-d, 0s); }

/* ---- Mobile：移動量は半分、時間と stagger は短く ---- */
@media (max-width: 767px) {
.lw-mo .lw-sec-title__eyebrow,
.lw-mo .lw-cta-recruit__eyebrow { --mo-y: 6px; --mo-dur: 0.45s; }
.lw-mo .lw-sec-title__row,
.lw-mo .lw-a-h2,
.lw-mo .lw-amsg__lead,
.lw-mo .lw-cta-reserve__title,
.lw-mo .lw-cta-recruit__title { --mo-y: 14px; --mo-dur: 0.65s; --mo-base: 0.06s; }
.lw-mo .lw-a-sub,
.lw-mo .lw-fwhy__lead,
.lw-mo .lw-fwhy__body,
.lw-mo .lw-fwhy__kw,
.lw-mo .lw-fwhy__more,
.lw-mo .lw-amsg__body,
.lw-mo .lw-acare__body,
.lw-mo .lw-fcolor__all,
.lw-mo .lw-fnews__more,
.lw-mo .lw-fnews__all,
.lw-mo .lw-social__follow,
.lw-mo .lw-cta-reserve__copy,
.lw-mo .lw-cta-reserve__buttons,
.lw-mo .lw-cta-recruit__text,
.lw-mo .lw-cta-recruit__btn,
.lw-mo .lw-ateam__lead,
.lw-mo .lw-ateam__more,
.lw-mo .lw-sstaff__all,
.lw-mo .lw-sstyle__all,
.lw-mo .lw-saccess__map,
.lw-mo .lw-saccess__link,
.lw-mo .lw-staff-group__head,
.lw-mo .lw-rdet__text,
.lw-mo .lw-rdet__cta,
.lw-mo .lw-rjoin__eyebrow,
.lw-mo .lw-rjoin__title,
.lw-mo .lw-rjoin__text,
.lw-mo .lw-rjoin__cta,
.lw-mo .lw-rteam__more,
.lw-mo .lw-fnews__empty { --mo-y: 8px; --mo-dur: 0.55s; --mo-base: 0.1s; }
.lw-mo .lw-tone-tile,
.lw-mo .lw-pnav__card,
.lw-mo .lw-stat,
.lw-mo .lw-sstaff__card,
.lw-mo .lw-sstyle__tile,
.lw-mo .lw-sdata__row,
.lw-mo .lw-pcard,
.lw-mo .lw-rmind__item,
.lw-mo .lw-rgrow__row,
.lw-mo .lw-rsalon__item,
.lw-mo .lw-awhy__item,
.lw-mo .lw-asalon__item,
.lw-mo .lw-ateam__grid .lw-photo,
.lw-mo .lw-fnews__list > * { --mo-y: 10px; --mo-dur: 0.55s; }
.lw-mo .lw-fhero__title,
.lw-mo .lw-ahero__eyebrow,
.lw-mo .lw-sahero__eyebrow,
.lw-mo .lw-sahero__title,
.lw-mo .lw-sthero__eyebrow,
.lw-mo .lw-sthero__title,
.lw-mo .lw-rhero__eyebrow,
.lw-mo .lw-rhero__title,
.lw-mo .lw-ahero__title,
.lw-mo .lw-fhero__copy,
.lw-mo .lw-fhero__lead,
.lw-mo .lw-ahero__sub,
.lw-mo .lw-sahero__jp,
.lw-mo .lw-sahero__switch,
.lw-mo .lw-sthero__sub,
.lw-mo .lw-sthero__lead,
.lw-mo .lw-rhero__lead,
.lw-mo .lw-ahero__jp,
.lw-mo .lw-fhero__actions { --mo-y: 10px; --mo-dur: 0.6s; }
}

} /* /prefers-reduced-motion: no-preference */

/* ---- Hover（PCのみ。タッチでは何も変えない）。ボタン・矢印は components/button.css へ移動済み ---- */
@media (hover: hover) and (pointer: fine) {
	/* 画像カード：画像だけをゆっくり 1.02 倍（枠は overflow:hidden） */
	.lw-tone-tile .lw-photo__img,
	.lw-pnav__card .lw-photo__img,
	.lw-social__tile .lw-photo__img,
	.lw-asalon__item .lw-photo__img {
		transition: transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1);
	}

	.lw-tone-tile:hover .lw-photo__img,
	.lw-pnav__card:hover .lw-photo__img,
	.lw-social__tile:hover .lw-photo__img,
	.lw-asalon__item:hover .lw-photo__img {
		transform: scale(1.02);
	}
}
