html {
  scroll-behavior: smooth;
}


html.is-spa-nav { scroll-behavior: auto !important; }
body.is-routing { transition: none !important; }
img:not([src]), img[src=""] { visibility: hidden; }


/* ページセクションの表示制御 */
.page-section {
    display: none; /* 基本はすべて非表示 */
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.page-section.is-active {
    display: block; /* is-activeが付いたものだけ表示 */
    opacity: 1;
}

/* ページが消える瞬間の演出用クラス */
.page-section.is-exiting {
    opacity: 0;
}
html.is-spa-nav .page-section{
    opacity: 0;
}


[id][data-template],
[id][data-template-processed] {
  display: block;
  min-height: 1px;   /* 100px は厚すぎ→ズレ要因。1px で十分トリガになる */
}

img.lazy {
    /* プレースホルダーから高画質画像への切り替えを滑らかにする */
    transition: opacity 0.5s ease-in-out;
}

img.lazy:not(.loaded) {
    /* 読み込み完了前は少し透明にしておく（お好みで） */
    opacity: 0.9;
}

img.lazy.loaded {
    opacity: 1;
}
