@charset "UTF-8";
/* ====================================================
　index.css
　トップページ固有CSS（ファーストビュー／登場スケジュール／ショップ紹介／カレンダーモーダル）
　Figma node: 5001:870「top」配下の pc_top（node 5078:2346）を正とする。
　SP版はコンポーネントのSPバリアント・現行サイト構成から補って作成
==================================================== */

/* ######################################################################################

　ファーストビュー（Figma node 5078:2348）

###################################################################################### */

.hero{
    position: relative;
    padding-block: 4rem;
}
@media print, screen and (min-width: 768px){
    .hero{
        z-index: 101;
        padding-block: 0;
        overflow-x: clip;
        overflow-y: visible;
    }
}
.hero__container{
    position: relative;
}
@media print, screen and (min-width: 768px){
    .hero__container{
        padding-top: 9.6rem;
        padding-bottom: 6.4rem;
    }
}

/* ----- 装飾：雲・竹・足跡（Figma node 5242:21163/21199／5125:4506/4507／5190:7732,7734実測。
   すべて.hero自身（outer edge基準、パディングの影響を受けない）からの相対位置。SPでは使用しない） ----- */
.heroDeco{
    display: none;
}

@keyframes footprintFirst {
    0%   { opacity: 0; }
    20%  { opacity: 0; }
    21%  { opacity: 1; }
    100% { opacity: 1; }
}

@keyframes footprintSecond {
    0%   { opacity: 0; }
    28%  { opacity: 0; }
    29%  { opacity: 1; }
    100% { opacity: 1; }
}
@media print, screen and (min-width: 768px){
    .heroDeco{
        display: block;
        position: absolute;
        pointer-events: none;
    }
}

html.is-motion-paused .heroDeco--pawA,
html.is-motion-paused .heroDeco--pawB,
html.is-motion-paused .heroDeco--shopPawA,
html.is-motion-paused .heroDeco--shopPawB,
html.is-motion-paused .spDeco--profilePawA,
html.is-motion-paused .spDeco--profilePawB,
html.is-motion-paused .spDeco--shopPawA,
html.is-motion-paused .spDeco--shopPawB{
    animation-play-state: paused;
}
@media print, screen and (min-width: 768px){
    /* 雲C（5242:21195／ナビ直下・右上。Frame2265基準 left:1096,top:-12、180度回転） */
    .heroDeco--cloudC{
        top: -1.2rem;
        right: -11.4rem;
        z-index:-1;
        width: 29.8rem;
        height: 7rem;
        --cloud-rotate: 180deg;
        --cloud-to-center: -100px;
        animation: cloudMoveToCenter 25s ease-in-out infinite;
    }
    /* 雲A（5242:21163／「ぼくはトラりん」左側。Frame2265基準 left:-109,top:447、180度回転） */
    .heroDeco--cloudA{
        top: 44.7rem;
        left: -10.9rem;
        z-index:-1;
        width: 29.8rem;
        height: 7rem;
        --cloud-rotate: 180deg;
        --cloud-to-center: 100px;
        animation: cloudMoveToCenter 25s ease-in-out infinite;
    }
    .heroDeco--cloudB{
        z-index: 2;
        top: 58.15rem;
        left: 102.8rem;
        z-index:-1;
        width: 29.8rem;
        height: 7rem;
        --cloud-to-center: -100px;
        animation: cloudMoveToCenter 30s ease-in-out infinite;
    }
    .heroDeco--pawA{
        top: 104.599rem;
        left: 38.7325rem;
        width: 2.8208rem;
        height: 3.5066rem;
        transform: rotate(124.21deg);
        animation: footprintSecond 5s linear infinite;
    }
    .heroDeco--pawB{
        top: 97.499rem;
        left: 35.4325rem;
        width: 2.8208rem;
        height: 3.5066rem;
        transform: rotate(124.21deg);
        animation: footprintFirst 5s linear infinite;
    }
    .heroDeco--bambooTopLeftA{
        z-index: 0;
        top: 3.1rem;
        left: -1.6rem;
        width: 7.4rem;
        height: 18.2rem;
        object-fit: contain;
        scale: -1 1;
        transform-origin: 50% 100%;
        animation: bambooSway 3.4s ease-in-out infinite;
    }
    .heroDeco--bambooTopLeftB{
        z-index: 0;
        top: 8.2rem;
        left: -9.3rem;
        width: 7.5rem;
        height: 18.2rem;
        object-fit: contain;
        transform-origin: 50% 100%;
        animation: bambooSway 3.4s ease-in-out infinite;
    }
}

.hero__inner{
    display: flex;
    flex-direction: column;
    gap: 4rem;
}
@media print, screen and (min-width: 768px){
    .hero__inner{
        flex-direction: row;
        align-items: flex-start;
        gap: 8rem;
    }
}

/* ----- トラりん紹介カード（Figma node 5078:2349、白背景＋上下4px罫線の「カード」） ----- */

.heroIntro{
    position: relative;
    z-index: 1;
    flex: none;
    background-color: #fff;
}
@media print, screen and (min-width: 768px){
    .heroIntro{
        width: 41.6rem;
        border-block: 4px solid var(--color-ink-secondary);
        padding: 6.4rem 4.8rem;
    }
}

.heroIntro__bubbleStack{
    position: relative;
    width: 27rem;
    height: 48.8079rem;
}
@media print, screen and (min-width: 768px){
.heroIntro__bubbleStack{
    left:2.5em;
}
}
@media screen and (max-width: 767px){
.heroIntro__bubbleStack{
    left:0;
}
}

.heroIntro__bubble{
    position: absolute;
    left: 3.15rem;
    top: 0;
    width: 23.7rem;
    height: 19.4079rem;
}

.heroIntro__bubble::before{
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(../images/common/hero_bubble_shape.svg);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    transform: scaleX(-1);
}
.heroIntro__heading{
    position: absolute;
    left: 5.292rem;
    top: 4.653rem;
    width: 14.0077rem;
    height: 8.294rem;
    margin: 0;
}
.heroIntro__heading img{
    width: 100%;
    height: 100%;
}

.heroIntro__illust{
    position: absolute;
    left: 0;
    top: 15.8079rem;
    width: 27rem;
    aspect-ratio: 270 / 330;
}
.heroIntro__lead{
    margin-top: 2.4rem;
    font-size: 1.4rem;
    line-height: 1.8;
    color: var(--color-ink-secondary);
}
@media print, screen and (min-width: 768px){
    .heroIntro__lead{
        font-size: 1.6rem;
    }
}
@media screen and (max-width: 767px){
    .heroIntro__lead{
        font-size: calc(var(--sp-px) * 14);
        letter-spacing: calc(var(--sp-px) * 0.14);
    }
}
.heroIntro__btn{
    margin-top: 2.4rem;
    max-width: none;
}

/* ----- 虎ブログ新着カード（Figma Cardコンポーネント 5086:1545、node 5078:2355実測） ----- */

.heroBlog{
    position: relative;
    z-index: 1;
}
.blogCards{
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.4rem;
    margin-bottom: 2.4rem;
}
@media print, screen and (min-width: 768px){
    .blogCards{
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        gap: 4.8rem;
        margin-bottom: 4.8rem;
    }
    .blogCard--large{
        grid-column: 1 / 3;
    }
}

.blogCard a{
    display: block;
    text-decoration: none;
    color: inherit;
}
.blogCard__figure{
    position: relative;
    margin: 0 0 1.6rem;
    overflow:hidden;
}
.blogCard__figure img{
    position: relative;
    z-index: 0;
    display: block;
    width: 100%;
    aspect-ratio: 173 / 100;
    object-fit: cover;
    transition: transform .3s ease;
}
@media (hover: hover) and (pointer: fine){
    .blogCard a:hover .blogCard__figure img{
        transform: scale(1.05);
    }
}

.blogCard__frame{
    z-index: 1;
    position: absolute;
    pointer-events: none;
    overflow: hidden;
    background-repeat: no-repeat;
    background-color:rgba(255 0 0 0.5);
}
.blogCard__frame--top,
.blogCard__frame--bottom{
    left: 0;
    width:100%;
    height:4px;
    background-size:auto 100%;
}
.blogCard__frame--left,
.blogCard__frame--right{
    top: 0;
    width:4px;
    height:100%;
    background-size:100% auto;
}
.blogCard__frame--top{
    top: 0;
    background-image: url(../images/common/card_frame_cream_top.svg);
    background-position: left bottom;
    background-repeat: repeat-x;
}
.blogCard__frame--bottom{
    bottom: 0;
    background-image: url(../images/common/card_frame_cream_bottom.svg);
    background-position: left top;
}
.blogCard__frame--left{
    left: 0;
    background-image: url(../images/common/card_frame_cream_left.svg);
    background-position: right top;
}
.blogCard__frame--right{
    right: 0;
    background-image: url(../images/common/card_frame_cream_right.svg);
    background-position: left top;
}

.blogCard__tags{
    display: flex;
    gap: 0.8rem;
    margin-bottom: 0.8rem;
}
.blogCard__tag{
    padding: 0.2rem 1rem 0.4rem;
    border-radius: var(--radius-btn);
    background-color: var(--color-object-secondary);
    color: #fff;
    font-size: 1.4rem;
    font-weight: 500;
}
.blogCard__tag--end{
    background-color: var(--color-end);
}
.blogCard__title{
    margin: 0 0 0.6rem;
    font-size: 1.6rem;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    line-height: 1.4;
    color: var(--color-ink-secondary);
}
.blogCard__date{
    font-size: 1.2rem;
    color: var(--color-object-secondary);
}

@media print, screen and (min-width: 768px){
    .blogCard--large .blogCard__title{
        font-size: 3rem;
    }
    .blogCard--large .blogCard__date{
        font-size: 1.3rem;
    }
}

/* ######################################################################################

　登場スケジュール（Figma node 5052:1326）

###################################################################################### */

.schedule{
    position: relative;
    z-index: 0;
}
@media print, screen and (min-width: 768px){
    .schedule{
        overflow-x: clip;
    }
}

.schedule__wave{
    display: block;
    width: 100%;
    height: auto;
}
@media print, screen and (min-width: 768px){
    .schedule__wave{
        height: 14.9rem;
    }
}

@media print, screen and (min-width: 768px){
    .schedule__bambooA,
    .schedule__bambooB,
    .schedule__bambooC{
        position: absolute;
        z-index: -1;
        width: 7.4rem;
        height: 18.2rem;
        object-fit: contain;
        pointer-events: none;
        transform-origin: 50% 100%;
        animation: bambooSway 3.8s ease-in-out infinite;
    }
    .schedule__bambooA{
        left: calc(50% - 60rem + 120.6rem);
        top: 0.9rem;
    }
    .schedule__bambooB{
        left: calc(50% - 60rem + 125.1rem);
        top: -11.5rem;
        width: 7.5rem;
    }
    .schedule__bambooC{
        left: calc(50% - 60rem + 113.7rem);
        top: -1.9rem;
        scale: -1 1;
    }
}

.schedule__waveBottom{
    display: block;
    width: 100%;
    height: auto;
}
@media print, screen and (min-width: 768px){
    .schedule__waveBottom{
        height: 12.4rem;
    }
}

@media print, screen and (min-width: 768px){
    .schedule__decoTopLeft{
        position: absolute;
        left: calc(50% - 58rem);
        top: -6.6rem;
        width: 34.95rem;
        height: 34.1rem;
        z-index: 1;
        pointer-events: none;
    }
    .schedule__decoTopLeft__bubble{
        position: absolute;
        left: 0;
        top: 1.134rem;
        width: 14.358rem;
        height: auto;
        transform-origin: 114.500px 147.165px;
        animation: scheduleSpeechFloat 3s ease-in-out infinite;
    }
    .schedule__decoTopLeft__tora{
        position: absolute;
        left: 12.09rem;
        top: 0;
        width: 22.859rem;
        height: 34.1rem;
        object-fit: contain;
    }
    .schedule__decoBottomRight{
        position: absolute;
        right: calc(50% - 60rem - 1.8rem);
        top: 106rem;
        width: 34.458rem;
        height: 26.527rem;
        z-index: 1;
        pointer-events: none;
    }
    .schedule__decoBottomRight__tora{
        position: absolute;
        left: 0;
        top: 5.418rem;
        width: 33.188rem;
        height: 21.109rem;
        object-fit: contain;
    }
    .schedule__decoBottomRight__bubbleWrap{
        position: absolute;
        left: 15.7124rem;
        top: 11%;
        width: 18.7458rem;
        height: 15.1668rem;
        display: flex;
        align-items: center;
        justify-content: center;
        pointer-events: none;
    }
    .schedule__decoBottomRight__bubble{
        width: 16.2248rem;
        height: 10.4101rem;
        transform-origin: -0.081px 53.068px;
        animation: scheduleSpeechFloat 3.4s ease-in-out infinite;
    }
}

@keyframes scheduleSpeechFloat{
    0%, 100%{ transform: rotate(-20deg); }
    50%{ transform: rotate(-14deg); }
}
@media (prefers-reduced-motion: reduce){
    .schedule__decoTopLeft__bubble,
    .schedule__decoBottomRight__bubble{
        animation: none;
    }
}
html.is-motion-paused .schedule__decoTopLeft__bubble,
html.is-motion-paused .schedule__decoBottomRight__bubble{
    animation-play-state: paused;
}

@keyframes bambooSway{
    0%, 100%{ rotate: -2deg; }
    50%{ rotate: 2deg; }
}

html.is-motion-paused .heroDeco--bambooTopLeftA,
html.is-motion-paused .heroDeco--bambooTopLeftB,
html.is-motion-paused .schedule__bambooA,
html.is-motion-paused .schedule__bambooB,
html.is-motion-paused .schedule__bambooC,
html.is-motion-paused .heroDeco--shopBambooA,
html.is-motion-paused .heroDeco--shopBambooB,
html.is-motion-paused .heroDeco--shopBambooC,
html.is-motion-paused .heroDeco--pageBottomBambooA,
html.is-motion-paused .heroDeco--pageBottomBambooB,
html.is-motion-paused .heroDeco--pageBottomBambooC,
html.is-motion-paused .spDeco--heroBambooTopA,
html.is-motion-paused .spDeco--heroBambooTopB,
html.is-motion-paused .spDeco--boundaryBambooA,
html.is-motion-paused .spDeco--boundaryBambooB,
html.is-motion-paused .spDeco--boundaryBambooC,
html.is-motion-paused .spDeco--shopBambooTopB,
html.is-motion-paused .spDeco--shopBambooTopC,
html.is-motion-paused .spDeco--shopBambooBottomA,
html.is-motion-paused .spDeco--shopBambooBottomB,
html.is-motion-paused .spDeco--shopBambooBottomC{
    animation-play-state: paused;
}

.schedule__bg{
    background-color: #fff;
    padding-block: 4rem;
}
@media print, screen and (min-width: 768px){
    .schedule__bg{
        padding-top: 6.4rem;
        padding-bottom: 9.5rem;
    }
}

.schedule__heading{
    display: flex;
    justify-content: center;
    margin: 0 0 3.2rem;
}
.schedule__headingArt{
    width: 28rem;
    height: auto;
}
@media print, screen and (min-width: 768px){
    .schedule__headingArt{
        width: 46.2rem;
        height: 16.7rem;
    }
}

.schedule__content{
    display: flex;
    flex-direction: column-reverse;
    gap: 4rem;
}
@media print, screen and (min-width: 768px){
    .schedule__content{
        flex-direction: row;
        align-items: flex-start;
        gap: 6.4rem;
        width: 120rem;
        padding-top: 1.6rem;
    }
}

/* ----- 登場時間・場所（Figma node 5078:2383、472×596） ----- */
.scheduleInfo{
    flex: none;
    padding-top: 2rem;
}
@media print, screen and (min-width: 768px){
    .scheduleInfo{
        width: 47.2rem;
        padding-top: 6rem;
    }
}
.scheduleInfo__heading{
    margin-bottom: 2.4rem;
    padding-block: 2.4rem;
    border-block: 1px solid var(--color-ink-secondary);
    background-color: var(--color-bg-primary);
    color: var(--color-ink-secondary);
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}

.scheduleInfo__legend{
    padding-bottom: 2.4rem;
    margin-bottom: 1.6rem;
    border-bottom: 1px dashed var(--color-ink-secondary);
}
.scheduleInfo__legendRow{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.6rem 2.4rem;
    margin-bottom: 0.8rem;
}
.scheduleInfo__legendItem{
    display: flex;
    align-items: center;
    gap: 1.6rem;
    margin: 0;
    font-size: 1.4rem;
    font-weight: 500;
}
.scheduleInfo__legendItem img{
    width: 5.1rem;
    height: auto;
}
.scheduleInfo__legendItem--museum{
    color: var(--color-end);
}
.scheduleInfo__legendItem--trip{
    flex: 1 0 0;
    min-width: 0;
    color: var(--color-trip);
}
.scheduleInfo__legendTrip{
    display: flex;
    flex: 1 0 0;
    min-width: 0;
    align-items: center;
    gap: 1.6rem;
}
.scheduleInfo__legendTripIcons{
    display: flex;
    flex: none;
    align-items: center;
    gap: 0.8rem;
}

.scheduleInfo__legendTripIcon{
    display: block;
    box-sizing: border-box;
    border: 1px solid var(--color-trip);
    border-radius: 2px;
    background-color: #fff;
    object-fit: contain;
}
.scheduleInfo__legendTripIcon--l{ width: 5.3rem; height: 4.8rem; padding: 0.6rem; }
.scheduleInfo__legendTripIcon--s{ width: 5.3rem; height: 2.6rem; padding: 0.3rem 0.6rem; }
.scheduleInfo__legendNote{
    font-size: 1.2rem;
    line-height: 1.8;
    color: var(--color-ink-secondary);
}

.scheduleInfo__times{
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.8;
    color: var(--color-ink-secondary);
}
.scheduleInfo__times dt{
    font-weight: 500;
}
.scheduleInfo__times ul{
    margin-top: 0.8rem;
    padding-left: 1.6em;
    list-style: disc;
}
.scheduleInfo__place{
    margin-top: 0.8rem;
    font-size: 1.6rem;
    line-height: 1.8;
    color: var(--color-ink-secondary);
}
.scheduleInfo__note{
    margin-top: 0.8rem;
    font-size: 1.2rem;
    line-height: 1.8;
    color: var(--color-ink-secondary);
}
.scheduleInfo__btn{
    display: flex;
    width: 32rem;
    max-width: 100%;
    margin-inline: auto;
    margin-top: 2.4rem;
}

/* ----- カレンダー（Figma node 5078:2395、664×741。左664pxの内側616pxがグリッド本体） ----- */
.scheduleCalendar{
    flex: none;
    position: relative;
}
@media print, screen and (min-width: 768px){
    .scheduleCalendar{
        width: 66.4rem;
    }
}

.calendarNav{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.6rem;
}
@media print, screen and (min-width: 768px){
    .calendarNav{
        width: 61.6rem;
        height: 5.6rem;
        margin-bottom: 0.8rem;
    }
}
.calendarNav__yearMonth{
    display: inline-flex;
    align-items: baseline;
    gap: 0.8rem;
    font-weight: 700;
    color: var(--color-ink-secondary);
}
.calendarNav__year{
    font-size: 1.8rem;
}
.calendarNav__month{
    font-size: 2.4rem;
}
@media print, screen and (min-width: 768px){
    .calendarNav__year{
        font-size: 2.4rem;
    }
    .calendarNav__month{
        font-size: 4rem;
    }
}
.calendarNav__buttons{
    display: flex;
    gap: 0.8rem;
}
.calendarNav__btn{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border: 1px solid var(--color-text);
    border-radius: 999px;
}
@media print, screen and (min-width: 768px){
    .calendarNav__btn{
        width: 8rem;
        border-radius: 999px;
        border-color: var(--color-line-primary);
        background-color: #fff;
        box-shadow: 0 5px 0 rgba(74,66,58,.3);
    }
}
.calendarNav__btnIcon{
    width: 2.1rem;
    height: 3.3rem;
}
.calendarNav__btn--prev .calendarNav__btnIcon{
    transform: rotate(90deg);
}
.calendarNav__btn--next .calendarNav__btnIcon{
    transform: rotate(90deg) scaleY(-1);
}
.calendarNav__btn:disabled{
    opacity: .35;
    cursor: not-allowed;
}

.calWrap{
    position: relative;
    z-index: 0;
}

.calContent{
    position: relative;
    z-index: 1;
}
.flexslider{
    overflow: hidden;
}
.slides > li[hidden]{
    display: none;
}
.monthName{
    display: none;
}

.calendarSideDeco{
    display: none;
}
@media print, screen and (min-width: 768px){
    .calendarSideDeco{
        display: block;
        position: absolute;
        top: 51.8rem;
        left: 60.07rem;
        width: 6.314rem;
        height: 8.148rem;
        z-index: -1;
        transform-origin: 12% 72%;
        animation: calendarSideDecoFuriFuri 6.42s ease-in-out infinite;
    }
}

@keyframes calendarSideDecoFuriFuri{
    0%{ transform: rotate(0deg); }
    2.84%{ transform: rotate(8deg); }
    5.69%{ transform: rotate(-9deg); }
    8.53%{ transform: rotate(9deg); }
    11.37%{ transform: rotate(-9deg); }
    14.22%{ transform: rotate(5deg); }
    17.06%{ transform: rotate(0deg); }
    100%{ transform: rotate(0deg); }
}
@media (prefers-reduced-motion: reduce){
    .calendarSideDeco,
    .spDeco--scheduleHeadingTail{
        animation: none;
    }
}
html.is-motion-paused .calendarSideDeco,
html.is-motion-paused .spDeco--scheduleHeadingTail{
    animation-play-state: paused;
}

.calendarLink{
    display: inline-block;
    margin-top: 0.8rem;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.8;
    color: var(--color-ink-secondary);
    text-decoration: underline;
}
@media (hover: hover) and (pointer: fine){
    .calendarLink:hover {text-decoration:none;}
}

.calendarContents{
    border-collapse: collapse;
    table-layout: fixed;
}
@media print, screen and (min-width: 768px){
    .calendarContents{
        width: 61.6rem;
    }
}
.calendarContents th,
.calendarContents td{
    width: 14.28%;
    border: 1px solid var(--color-border);
    padding: 0;
}
.calendarContents th{
    background-color: var(--color-bg-gray);
    padding-block: 0.8rem;
    text-align: center;
    vertical-align: middle;
}
.calendarContents .week{
    display: inline-block;
    font-size: 1.1rem;
    font-weight: 400;
    text-align: center;
}
@media print, screen and (min-width: 768px){
    .calendarContents th,
    .calendarContents td{
        width: 8.8rem;
        border-color: var(--color-ink-secondary);
    }
    .calendarContents th{
        height: 2.9rem;
        background-color: var(--color-bg-primary);
        padding-block: 0;
    }
    .calendarContents .week{
        width: 100%;
        font-size: 1.6rem;
        font-weight: 400;
        line-height: 1.8;
        color: var(--color-ink-secondary);
    }
}
.calendarContents .week.sun{ color: var(--color-end); }
.calendarContents .week.sat{ color: var(--color-trip); }

.calender__inner{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 6.4rem;
    padding: 0.4rem;
}
@media print, screen and (min-width: 768px){
    .calender__inner{
        height: 12.3rem;
        gap: 0.3rem;
        padding: 0.4rem 0.8rem 0.8rem;
        background-color: var(--color-bg-cell-empty);
    }
    .calender__inner:has(.day){
        background-color: var(--color-bg-cell);
    }
    .calender__inner a img + br {display:none;}
}
@media screen and (max-width: 767px){
.calender__inner{
    gap: 0.1rem;
}
}

.day{
    display: block;
    font-size: 1.1rem;
    font-weight: 700;
}
@media print, screen and (min-width: 768px){
    .day{
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.8;
        color: var(--color-ink-secondary);
    }
    .calender__tr td:nth-child(1) .day{ color: var(--color-end); }
    .calender__tr td:nth-child(7) .day{ color: var(--color-trip); }
}

@media screen and (max-width: 767px){
    .calender__tr td:nth-child(1) .day{ color: var(--color-end); }
    .calender__tr td:nth-child(7) .day{ color: var(--color-trip); }
}

.calendarContents a.inline{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    width: 100%;
    line-height:1.25;
    color: inherit;
}

@media screen and (max-width: 767px){
.calendarContents a.inline br {display:none;}
.calendarContents .calender__inner p br {display:none;}
}

@media print, screen and (min-width: 768px){
    .calendarContents a.inline{
        gap: 0.2rem;
    }
}
.toraIcon{
    width: 2.8rem;
    height: auto;
}
@media print, screen and (min-width: 768px){
    .toraIcon{
        width: 4.6rem;
        height: 4rem;
        object-fit: contain;
    }
    .calendarContents a.inline:has(img[src*="toraicon_b"]) .toraIcon,
    .calender__inner:has(> img[src*="toraicon_b"]) > .toraIcon{
        height: 4.2rem;
        object-fit: contain;
    }
}
.museam{
    margin: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    color: var(--color-ink-secondary);
}
@media print, screen and (min-width: 768px){
    .museam{
        font-size: 1rem;
        font-weight: 500;
        line-height: 1.25;
    }
}
.museam--syuttyo{
    color: var(--color-primary);
}
@media print, screen and (min-width: 768px){
    .museam--syuttyo{
        color: var(--color-ink-secondary);
    }
}

.calendar_icon__wrap{
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
    margin-top: 1.6rem;
    padding-top: 1.6rem;
    border-top: 1px dashed var(--color-border);
    font-size: 1.2rem;
}
.calendar_icon__tora{
    display: flex;
    align-items: center;
    gap: 0.8rem;
}
.calendar_icon__tora--kyoto{ color: var(--color-end); }
.calendar_icon__tora--isetan{ color: var(--color-trip); }
.calendar_icon__tora--img{
    width: 2.4rem;
    height: auto;
}
.calendarLegend__note{
    width: 100%;
    margin-top: 0.8rem;
    color: var(--color-text-gray);
    font-size: 1.2rem;
}
@media print, screen and (min-width: 768px){
    .calendar_icon__wrap,
    .calendarLegend__note{
        display: none;
    }
}

/* ######################################################################################

　ショップ紹介（Figma node 5052:1350）

###################################################################################### */

.shop{
    position: relative;
    padding-block: 4rem;
}
@media print, screen and (min-width: 768px){
    .shop{
        z-index: 1;
        padding-block: 0;
        overflow-x: clip;
        overflow-y: visible;
    }
}
.shopInner{
    position: relative;
}
@media print, screen and (min-width: 768px){
    .shopInner{
        padding-block: 8rem;
    }
}
/* ----- 装飾：雲・竹・足跡（ショップ紹介セクション。.shopInner基準） ----- */

@media print, screen and (min-width: 768px){
    .heroDeco--shopCloudRight{
        top: 17.6rem;
        left: 98.4rem;
        z-index:-1;
        width: 29.8rem;
        height: 7rem;
        z-index: -1;
        --cloud-rotate: 180deg;
        --cloud-to-center: -100px;
        animation: cloudMoveToCenter 30s ease-in-out infinite;
    }
    .heroDeco--shopCloudLeft{
        top: 95.4rem;
        left: -14.9rem;
        z-index:-1;
        width: 29.8rem;
        height: 7rem;
        z-index: -1;
        --cloud-to-center: 100px;
        animation: cloudMoveToCenter 25s ease-in-out infinite;
    }
    .heroDeco--shopPawA{
        top: 0.8986rem;
        left: 21.4418rem;
        width: 2.8208rem;
        height: 3.5066rem;
        transform: rotate(-145.79deg);
        animation: footprintSecond 5s linear infinite;
    }
    .heroDeco--shopPawB{
        top: -3.6104rem;
        left: 27.9508rem;
        width: 2.8208rem;
        height: 3.5066rem;
        transform: rotate(-145.79deg);
        animation: footprintFirst 5s linear infinite;
    }
    .heroDeco--shopBambooA{
        z-index: -1;
        top: 0.1rem;
        left: 8.7rem;
        width: 7.4rem;
        height: 18.2rem;
        object-fit: contain;
        scale: -1 1;
        transform-origin: 50% 100%;
        animation: bambooSway 3s ease-in-out infinite;
    }
    .heroDeco--shopBambooB{
        z-index: -1;
        top: 5.2rem;
        left: -5.5rem;
        width: 7.4rem;
        height: 18.2rem;
        object-fit: contain;
        scale: -1 1;
        transform-origin: 50% 100%;
        animation: bambooSway 3s ease-in-out infinite;
    }
    .heroDeco--shopBambooC{
        z-index: -1;
        top: 8.2rem;
        left: 1.3rem;
        width: 7.5rem;
        height: 18.2rem;
        object-fit: contain;
        transform-origin: 50% 100%;
        animation: bambooSway 3s ease-in-out infinite;
    }
    .heroDeco--pageBottomBambooA{
        z-index: -1;
        right: -1.5rem;
        bottom: -17.4rem;
        width: 7.4rem;
        height: 18.2rem;
        object-fit: contain;
        scale: -1 1;
        transform-origin: 50% 100%;
        animation: bambooSway 3.6s ease-in-out infinite;
    }
    .heroDeco--pageBottomBambooB{
        z-index: -1;
        right: 3rem;
        bottom: -5rem;
        width: 7.5rem;
        height: 18.2rem;
        object-fit: contain;
        scale: -1 1;
        transform-origin: 50% 100%;
        animation: bambooSway 3.6s ease-in-out infinite;
    }
    .heroDeco--pageBottomBambooC{
        z-index: -1;
        right: -8.4rem;
        bottom: -12.6rem;
        width: 7.4rem;
        height: 18.2rem;
        object-fit: contain;
        transform-origin: 50% 100%;
        animation: bambooSway 3.6s ease-in-out infinite;
    }
}
.shop__heading{
    display: flex;
    justify-content: center;
    margin: 0 0 4rem;
}
.shop__heading img{
    width: 21rem;
    height: auto;
}
@media print, screen and (min-width: 768px){
    .shop__heading img{
        width: 35.4rem;
    }
}

.shopCards{
    display: flex;
    flex-direction: column;
    gap: 4rem;
}
@media print, screen and (min-width: 768px){
    .shopCards{
        flex-direction: row;
        align-items: stretch;
        gap: 4.8rem;
    }
}

.shopCard{
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.4rem;
    padding: 3.2rem 2.4rem;
    border-block: 4px solid var(--color-ink-secondary);
    text-align: center;
}
@media print, screen and (min-width: 768px){
    .shopCard{
        padding: 4.8rem 3.2rem;
    }
}
.shopCard--museum{
    background-color: var(--color-accent1);
}
.shopCard--online{
    background-color: var(--color-accent2);
}
.shopCard__figure{
    position: relative;
    margin: 0;
    width: 100%;
    background-color: inherit;
    overflow:hidden;
}

.shopCard__frameEdge{
    position: absolute;
    pointer-events: none;
    overflow: hidden;
    background-repeat: no-repeat;
}
.shopCard__frameEdge--top,
.shopCard__frameEdge--bottom{
        left: 0;
        width:100%;
        height:4px;
        background-size:auto 100%;
}
.shopCard__frameEdge--left,
.shopCard__frameEdge--right{
        top: 0;
        width:4px;
        height:100%;
        background-size:100% auto;
}
.shopCard--museum .shopCard__frameEdge--top {top: 0; background-image: url(../images/common/card_frame_orange_top.svg);}
.shopCard--online .shopCard__frameEdge--top {top: 0; background-image: url(../images/common/card_frame_pink_top.svg);}

.shopCard--museum .shopCard__frameEdge--bottom{bottom: 0; background-image: url(../images/common/card_frame_orange_bottom.svg);}
.shopCard--online .shopCard__frameEdge--bottom{bottom: 0; background-image: url(../images/common/card_frame_pink_bottom.svg);}

.shopCard--museum .shopCard__frameEdge--left{left: 0; background-image: url(../images/common/card_frame_orange_left.svg);}
.shopCard--online .shopCard__frameEdge--left{left: 0; background-image: url(../images/common/card_frame_pink_left.svg);}

.shopCard--museum .shopCard__frameEdge--right{right: 0; background-image: url(../images/common/card_frame_orange_right.svg);}
.shopCard--online .shopCard__frameEdge--right{right: 0; background-image: url(../images/common/card_frame_pink_right.svg);}

.shopCard__figure img{
    position: relative;
    width: 100%;
    aspect-ratio: 512 / 296;
    object-fit: cover;
}
.shopCard__heading{
    margin: 0;
}
.shopCard__heading img{
    height: 2.7rem;
    width: auto;
}
.shopCard__text{
    text-align: left;
    color: var(--color-ink-secondary);
    font-size: 1.4rem;
    line-height: 1.8;
}
@media print, screen and (min-width: 768px){
    .shopCard__text{
        font-size: 1.6rem;
    }
}
.shopCard__links{
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    text-align: left;
}
.shopCard__linkOperator{
    display: inline-flex;
    margin-bottom: 0.4rem;
    padding: 0.2rem 1.2rem 0.4rem;
    border-radius: var(--radius-btn);
    background-color: #fff;
    color: var(--color-ink-secondary);
    font-size: 1.4rem;
    font-weight: 500;
}
.shopCard__linkTitle{
    margin-bottom: 0.4rem;
    color: var(--color-ink-secondary);
    font-size: 1.6rem;
    font-weight: 500;
}
.shopCard__linkUrl{
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    color: var(--color-ink-secondary);
    font-size: 1.6rem;
    text-decoration: underline;
}
@media (hover: hover) and (pointer: fine){
    .shopCard__linkUrl:hover{
        text-decoration: none;
    }
}
.shopCard__linkUrl img{
    width: 2.4rem;
    height: 2.4rem;
}

/* ######################################################################################

　SNSでシェアする（Figma node 5255:6005）

###################################################################################### */

.snsShare{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.6rem;
    padding-block: 4.8rem;
}
@media print, screen and (min-width: 768px){
    .snsShare{
        gap: 2.4rem;
        padding-block: 9.6rem;
    }
}
.snsShare__label{
    margin: 0;
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-ink-secondary);
}
.snsShare__list{
    display: flex;
    align-items: center;
    gap: 2.4rem;
}
@media print, screen and (min-width: 768px){
    .snsShare__list{
        gap: 3.2rem;
    }
}
.snsShare__list a,
.snsShare__list button{
    display: flex;
}
.snsShare__list img{
    width: 2.4rem;
    height: 2.4rem;
}
.snsShare__copyBtn{
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
}

.clip-modal{
    position: fixed;
    z-index: 200;
    left: 50%;
    bottom: -4em;
    min-width: 28rem;
    padding: 1.2rem 2rem;
    border-radius: var(--radius-btn);
    background-color: rgba(74, 66, 58, .9);
    color: #fff;
    font-size: 1.4rem;
    text-align: center;
    opacity: 0;
    transform: translateX(-50%);
    transition: bottom .5s ease-out, opacity .5s linear;
    pointer-events: none;
}
.clip-modal.show{
    bottom: 4em;
    opacity: 1;
}
.clip-modal-text{
    margin: 0;
}

/* ######################################################################################

　カレンダー日程詳細モーダル
　本番Figma：PC＝node 5149:2150「pc_モーダル」内、実際のモーダル本体5149:3843
　　　　　　SP＝node 5216:18423「sp_モーダル」内、実際のモーダル本体5216:18911

###################################################################################### */

.scheduleModal{
    position: fixed;
    inset: 0;
    z-index: 300;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    height: 100vh;
    height: 100dvh;
    padding-top: calc(var(--sp-px) * 26);
    background-color: rgba(0, 0, 0, .75);
}
.scheduleModal[hidden]{
    display: none;
}
.scheduleModal__overlay{
    position: absolute;
    inset: 0;
}

.scheduleModal__box{
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    overflow: hidden;
    --schedule-modal-radius: calc(var(--sp-px) * 24);
    border-radius: var(--schedule-modal-radius);
    background-color: #fff;
}
.scheduleModal__scroll{
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--sp-px) * 24);
    padding-top: calc(var(--sp-px) * 26);
    padding-inline: calc(var(--sp-px) * 16);
}
@media print, screen and (min-width: 768px){
    .scheduleModal{
        padding-block: 4.8rem;
    }
    .scheduleModal__box{
        flex: 1 1 auto;
        width: 73.6rem;
        max-height: 100%;
        --schedule-modal-radius: 2.4rem;
    }
    .scheduleModal__scroll{
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior-y: contain;
        scrollbar-gutter: stable;
        gap: 2.4rem;
        padding: 4.8rem 4.8rem calc(4.8rem + 14.6rem);
    }
}

.scheduleModal__close{
    position: absolute;
    z-index: 2;
    top: calc(var(--sp-px) * 30);
    right: calc(var(--sp-px) * 16);
    display: block;
    width: calc(var(--sp-px) * 40);
    height: calc(var(--sp-px) * 40);
    padding: 0;
    border: none;
    background: none;
    -webkit-tap-highlight-color: transparent;
}
@media print, screen and (min-width: 768px){
    .scheduleModal__close{
        top: 4.8rem;
        right: 4.8rem;
        width: 4rem;
        height: 4rem;
    }
}

.scheduleModal__close:focus:not(:focus-visible){
    outline: none;
}
.scheduleModal__close:focus-visible{
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}
.scheduleModal__close img{
    display: block;
    width: 100%;
    height: 100%;
}

.scheduleModal__content{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--sp-px) * 24);
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
}
@media print, screen and (min-width: 768px){
    .scheduleModal__content{
        gap: 2.4rem;
        flex: none;
        min-height: auto;
    }
}

/* ----- ヘッダー（アイコン＋タイトル、下罫線） ----- */
.scheduleModal__header{
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: none;
    gap: calc(var(--sp-px) * 16);
    width: 100%;
    padding-bottom: calc(var(--sp-px) * 24);
    border-bottom: 1px solid var(--color-ink-secondary);
}
@media print, screen and (min-width: 768px){
    .scheduleModal__header{
        gap: 1.6rem;
        width: 64rem;
        padding-bottom: 2.4rem;
    }
}
.scheduleModal__icon{
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: calc(var(--sp-px) * 53);
    height: calc(var(--sp-px) * 48);
    border-radius: calc(var(--sp-px) * 2);
}
@media print, screen and (min-width: 768px){
    .scheduleModal__icon{
        width: 5.3rem;
        height: 4.8rem;
        border-radius: .2rem;
    }
}
.scheduleModal__icon_img{
    width: calc(var(--sp-px) * 41);
    height: calc(var(--sp-px) * 36);
    object-fit: contain;
}
.scheduleModal__title{
    margin: 0;
    width: 100%;
    font-size: calc(var(--sp-px) * 20);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: calc(var(--sp-px) * 0.2);
    text-align: center;
    color: var(--color-ink-secondary);
}
@media print, screen and (min-width: 768px){
    .scheduleModal__title{
        font-size: 2.4rem;
        letter-spacing: .024rem;
    }
}

/* ----- 本文（日付＋登場時間／登場場所／イベント詳細） ----- */

.scheduleModal__body{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--sp-px) * 16);
    width: 100%;
    flex: 1 1 0%;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
}
@media print, screen and (min-width: 768px){
    .scheduleModal__body{
        width: 64rem;
        gap: 1.6rem;
        flex: none;
        min-height: auto;
        overflow: visible;
        overscroll-behavior-y: auto;
        scrollbar-gutter: auto;
        padding-bottom: 0;
    }
}

.scheduleModal__bodySpacer{
    flex: 0 0 auto;
    flex-shrink: 0;
    width: 100%;
    height: calc(var(--sp-px) * (117 + 48) + var(--schedule-modal-radius));
    min-height: calc(var(--sp-px) * (117 + 48) + var(--schedule-modal-radius));
}
@media print, screen and (min-width: 768px){
    .scheduleModal__bodySpacer{
        display: none;
    }
}
.scheduleModal__date{
    margin: 0;
    width: 100%;
    font-size: calc(var(--sp-px) * 18);
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-ink-secondary);
}
@media print, screen and (min-width: 768px){
    .scheduleModal__date{
        font-size: 2rem;
        letter-spacing: .02rem;
    }
}
.scheduleModal__section{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--sp-px) * 8);
    width: 100%;
}
.scheduleModal__sectionHead{
    display: flex;
    align-items: center;
    gap: calc(var(--sp-px) * 8);
    width: 100%;
    margin: 0;
    padding: calc(var(--sp-px) * 8) calc(var(--sp-px) * 16);
    background-color: var(--color-bg-primary);
}
@media print, screen and (min-width: 768px){
    .scheduleModal__sectionHead{
        gap: .8rem;
        margin-bottom:1em;
        padding: .8rem 1.6rem;
    }
}
.scheduleModal__paw{
    flex: none;
    width: calc(var(--sp-px) * 14);
    height: calc(var(--sp-px) * 17);
}
@media print, screen and (min-width: 768px){
    .scheduleModal__paw{
        width: 1.4rem;
        height: 1.7rem;
    }
}
.scheduleModal__sectionLabel{
    flex: 1;
    min-width: 0;
    font-size: calc(var(--sp-px) * 16);
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: calc(var(--sp-px) * 0.16);
    color: var(--color-ink-secondary);
}
@media print, screen and (min-width: 768px){
    .scheduleModal__sectionLabel{
        font-size: 1.6rem;
        letter-spacing: .016rem;
    }
}
.scheduleModal__sectionBody{
    margin: 0;
    width: 100%;
    font-size: calc(var(--sp-px) * 16);
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: calc(var(--sp-px) * 0.16);
    color: var(--color-ink-secondary);
    overflow-wrap: anywhere;
}
@media print, screen and (min-width: 768px){
    .scheduleModal__sectionBody{
        font-size: 1.6rem;
        letter-spacing: .016rem;
    }
}
.scheduleModal__linkRow{
    display: flex;
    align-items: center;
    gap: calc(var(--sp-px) * 8);
    width: 100%;
}
@media print, screen and (min-width: 768px){
    .scheduleModal__linkRow{
        width: auto;
        gap: .8rem;
    }
}
.scheduleModal__link{
    min-width: 0;
    text-decoration: underline;
    text-underline-position: from-font;
    text-decoration-skip-ink: none;
    word-break: break-all;
}

.scheduleModal__linkIcon{
    display: inline-block;
    width: calc(var(--sp-px) * 24);
    height: calc(var(--sp-px) * 24);
    margin-left: calc(var(--sp-px) * 8);
    vertical-align: middle;
}
@media print, screen and (min-width: 768px){
    .scheduleModal__linkIcon{
        width: 2.4rem;
        height: 2.4rem;
        margin-left: .8rem;
    }
}

/* ----- 下部トラりん装飾（ダイアログ下端からはみ出す） ----- */
.scheduleModal__torarin{
    position: absolute;
    z-index: 2;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: calc(var(--sp-px) * 192);
    height: calc(var(--sp-px) * 117);
    pointer-events: none;
}
.scheduleModal__torarin img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
@media print, screen and (min-width: 768px){
    .scheduleModal__torarin{
        width: 24rem;
        height: 14.6rem;
    }
}

/* ######################################################################################

　SP専用調整（Figma sp_top、node 5213:10282を正とする）

###################################################################################### */

.spDeco{
    display: none;
}
@media screen and (max-width: 767px){
    :root{
        --sp-px: calc(100vw / 375);
    }
    .schedule__content,
    .shopInner{
        padding-inline: calc(var(--sp-px) * 16);
    }
    .schedule__content{
        flex-direction: column;
        gap: calc(var(--sp-px) * 32);
    }
    .scheduleInfo{
        position: relative;
        isolation: isolate;
        padding-top: 0;
    }
    .scheduleInfo__legendRow{
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--sp-px) * 12);
    }
    .calendar_icon__wrap,
    .calendarLegend__note{
        display: none;
    }
    .scheduleInfo__heading{
        position: relative;
        z-index: 1;
    }
    .spDeco--scheduleHeadingTail{
        left: calc(var(--sp-px) * 300.86);
        top: calc(var(--sp-px) * -25.03);
        width: calc(var(--sp-px) * 32);
        height: calc(var(--sp-px) * 41.3);
        z-index: 0;
        transform-origin: 50% 100%;
        animation: calendarSideDecoFuriFuri 6.42s ease-in-out infinite;
    }
    .calendarContents{
        width: calc(var(--sp-px) * 343);
    }
    .calendarContents th{
        height: calc(var(--sp-px) * 22);
        padding-block: 0;
        background-color: var(--color-bg-primary);
    }
    .calendarContents th,
    .calendarContents td{
        border-color: var(--color-ink-secondary);
    }
    .calender__inner{
        height:auto;
        min-height: calc(var(--sp-px) * 98);
        background-color: var(--color-bg-cell-empty);
    }
    .calender__inner:has(.day){
        background-color: var(--color-bg-cell);
    }
    /* スケジュールタイトル（Figma 5216:4960、257×94） */
    .schedule__headingArt{
        width: calc(var(--sp-px) * 257);
        height: calc(var(--sp-px) * 94);
    }
    /* 「トラりん登場時のお願い」ボタン（Figma 5216:5100、幅220px、テキストとの間16px） */
    .scheduleInfo__btn{
        width: calc(var(--sp-px) * 220);
        margin-top: calc(var(--sp-px) * 16);
    }
    .schedule__heading{
        margin-bottom: calc(var(--sp-px) * 24);
    }
    .calendarNav{
        margin-bottom: calc(var(--sp-px) * 8);
    }
    .scheduleInfo__heading{
        padding-block: calc(var(--sp-px) * 12);
        margin-bottom: calc(var(--sp-px) * 16);
    }
    .scheduleInfo__legend{
        padding-bottom: calc(var(--sp-px) * 16);
        margin-bottom: calc(var(--sp-px) * 16);
    }
    .scheduleInfo__legendRow{
        gap: calc(var(--sp-px) * 16);
        margin-bottom: calc(var(--sp-px) * 16);
    }
    .scheduleInfo__place,
    .scheduleInfo__note{
        margin-top: calc(var(--sp-px) * 8);
    }
    .calendarNav__btn{
        width: calc(var(--sp-px) * 56);
        height: calc(var(--sp-px) * 32);
        border-color: var(--color-line-primary);
        background-color: #fff;
        box-shadow: 0 5px 0 rgba(74,66,58,.3);
    }
    .calendarNav__btnIcon{
        width: calc(var(--sp-px) * 18);
        height: calc(var(--sp-px) * 28.056);
    }
    .toraIcon{
        width: calc(var(--sp-px) * 33);
        height: calc(var(--sp-px) * 29);
    }
    .museam{
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
        font-size: calc(var(--sp-px) * 8);
        line-height: 1.25;
    }
    .shopCard__text{
        font-size: calc(var(--sp-px) * 16);
    }
    .schedule__bg{
        padding-top: calc(var(--sp-px) * 186);
        padding-bottom: calc(var(--sp-px) * 208);
    }
    .schedule__decoTopLeft{
        position: absolute;
        left: calc(var(--sp-px) * 91);
        top: calc(var(--sp-px) * 43.44);
        width: calc(var(--sp-px) * 193.13);
        height: calc(var(--sp-px) * 188.43);
        z-index: 1;
        pointer-events: none;
    }
    .schedule__decoTopLeft__bubble{
        position: absolute;
        left: 0;
        top: calc(var(--sp-px) * 26.26);
        width: calc(var(--sp-px) * 79.34);
        height: calc(var(--sp-px) * 95);
        transform-origin: calc(var(--sp-px) * 63.29) calc(var(--sp-px) * 81.35);
        animation: scheduleSpeechFloat 3s ease-in-out infinite;
    }
    .schedule__decoTopLeft__tora{
        position: absolute;
        left: calc(var(--sp-px) * 66.81);
        top: 0;
        width: calc(var(--sp-px) * 126.318);
        height: calc(var(--sp-px) * 188.43);
        object-fit: contain;
    }
    .schedule__decoBottomRight{
        position: absolute;
        left: calc(var(--sp-px) * 89.32);
        bottom: calc(var(--sp-px) * 64);
        width: calc(var(--sp-px) * 196.35);
        height: calc(var(--sp-px) * 152);
        z-index: 1;
        pointer-events: none;
    }
    .schedule__decoBottomRight__tora{
        position: absolute;
        left: 0;
        top: calc(var(--sp-px) * 29);
        width: calc(var(--sp-px) * 193);
        height: calc(var(--sp-px) * 123);
        object-fit: contain;
    }
    .schedule__decoBottomRight__bubbleWrap{
        position: absolute;
        left: calc(var(--sp-px) * 92.77);
        top: 11%;
        width: calc(var(--sp-px) * 103.586);
        height: calc(var(--sp-px) * 83.809);
        display: flex;
        align-items: center;
        justify-content: center;
        pointer-events: none;
    }
    .schedule__decoBottomRight__bubble{
        width: calc(var(--sp-px) * 89.655);
        height: calc(var(--sp-px) * 57.525);
        transform-origin: calc(var(--sp-px) * -0.045) calc(var(--sp-px) * 29.33);
        animation: scheduleSpeechFloat 3.4s ease-in-out infinite;
    }
    /* ショップ見出し画像・カード間gap（Figma sp_top、node 5216:6088配下の実測値） */
    .shop__heading img{
        width: calc(var(--sp-px) * 195);
    }
    .shop__heading{
        margin-bottom: calc(var(--sp-px) * 32);
    }
    .shopCards{
        gap: calc(var(--sp-px) * 16);
    }
    .hero,
    .schedule,
    .shop{
        overflow-x: clip;
    }
    .shop{
        z-index: 3;
    }
    .hero__container{
        padding-inline: 0;
    }
    .hero{
        padding-top: 0;
    }
    .hero__inner{
        gap: calc(var(--sp-px) * 32);
    }
    /* ----- プロフィールカード（Figma 5213:10300、295×584、左右余白40px） ----- */
    .heroIntro{
        width: calc(var(--sp-px) * 295);
        margin-top: calc(var(--sp-px) * 40);
        margin-inline: auto;
        padding: calc(var(--sp-px) * 40) calc(var(--sp-px) * 24);
        border-block: 3px solid var(--color-ink-secondary);
    }
    /* 画像エリア（Figma 5236:20623、247×347、overflow-clip） */
    .heroIntro__bubbleStack{
        width: calc(var(--sp-px) * 247);
        height: calc(var(--sp-px) * 347);
        overflow: hidden;
    }
    /* 吹き出し＋文字のまとまり（Figma 5236:20624 Group 7、247×347枠内でleft:52px/width:166.14/height:136.05） */
    .heroIntro__bubble{
        left: calc(var(--sp-px) * 52);
        top: 0;
        width: calc(var(--sp-px) * 166.14);
        height: calc(var(--sp-px) * 136.05);
    }
    /* 文字（Figma 5236:20627、Group 7内でleft:37.09px/top:32.62px/width:98.21px/height:58.15px） */
    .heroIntro__heading{
        left: calc(var(--sp-px) * 37.09);
        top: calc(var(--sp-px) * 32.62);
        width: calc(var(--sp-px) * 98.21);
        height: calc(var(--sp-px) * 58.15);
    }
    /* トラりんイラスト（Figma 5236:20636、247×347枠内でleft:29.5px/top:116px/189×231） */
    .heroIntro__illust{
        left: calc(var(--sp-px) * 29.5);
        top: calc(var(--sp-px) * 116);
        width: calc(var(--sp-px) * 189);
        height: calc(var(--sp-px) * 231);
        aspect-ratio: auto;
    }
    .heroIntro__lead{
        width: 100%;
        margin-top: calc(var(--sp-px) * 16);
    }
    /* プロフィールボタン（Figma 5213:10313、幅220px、中央寄せ） */
    .heroIntro__btn{
        width: calc(var(--sp-px) * 220);
        max-width: calc(var(--sp-px) * 220);
        margin-top: calc(var(--sp-px) * 16);
        margin-inline: auto;
    }
    /* ----- 虎ブログカード（Figma 5216:3869、343×894、左右余白16px、カード間16px） ----- */
    .heroBlog{
        width: calc(var(--sp-px) * 343);
        margin-inline: auto;
    }
    .blogCards{
        gap: calc(var(--sp-px) * 16);
        /* Figma 5216:3702：カード群（高さ894px）とボタン（y:926px）の間は32px */
        margin-bottom: calc(var(--sp-px) * 32);
    }
    .blogCard__figure img{
        aspect-ratio: 343 / 199;
    }
    .heroBlog__btnWrap > .btn--block{
        width: calc(var(--sp-px) * 220);
        max-width: calc(var(--sp-px) * 220);
        margin-inline: auto;
    }
    .blogCard__body{
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }
    .blogCard__tags{
        order: 1;
        flex: 1 1 auto;
        margin-bottom: 0;
        gap: calc(var(--sp-px) * 4);
    }
    .blogCard__tag{
        padding: 0 calc(var(--sp-px) * 8) calc(var(--sp-px) * 2);
        font-size: calc(var(--sp-px) * 13);
        letter-spacing: calc(var(--sp-px) * 0.13);
    }
    .blogCard__date{
        order: 2;
        margin-left: auto;
        font-size: calc(var(--sp-px) * 12);
        letter-spacing: calc(var(--sp-px) * 0.12);
    }
    .blogCard__title{
        order: 3;
        flex-basis: 100%;
        margin-top: calc(var(--sp-px) * 8);
        margin-bottom: 0;
        font-size: calc(var(--sp-px) * 16);
    }
    .shop{
        padding-top: calc(var(--sp-px) * 60);
        padding-bottom: calc(var(--sp-px) * 40);
    }
    /* ----- SP専用背景装飾（雲・竹・足跡）。Figma sp_top実測値。PC用.heroDecoとは
       別クラス（.spDeco）で管理し、PC側の表示・位置には一切影響しない。 ----- */
    .spDeco{
        display: block;
        position: absolute;
        pointer-events: none;
    }
    .schedule{
        z-index: 2;
        padding-top: calc(var(--sp-px) * 31);
    }
    .shopCard__heading img{
        height: calc(var(--sp-px) * 21);
    }
    .spDeco--heroBambooTopA{
        left: calc(var(--sp-px) * 40.8);
        top: calc(var(--sp-px) * 8);
        width: calc(var(--sp-px) * 44.28);
        height: calc(var(--sp-px) * 108.24);
        object-fit: contain;
        scale: -1 1;
        transform-origin: 50% 100%;
        animation: bambooSway 3.4s ease-in-out infinite;
    }
    .spDeco--heroBambooTopB{
        left: calc(var(--sp-px) * -5);
        top: calc(var(--sp-px) * 38.03);
        width: calc(var(--sp-px) * 44.58);
        height: calc(var(--sp-px) * 108.97);
        object-fit: contain;
        transform-origin: 50% 100%;
        animation: bambooSway 3.4s ease-in-out infinite;
    }
    .spDeco--heroCloudA{
        left: calc(var(--sp-px) * -64);
        top: calc(100% + var(--sp-px) * 34);
        width: calc(var(--sp-px) * 169);
        height: calc(var(--sp-px) * 40);
        --cloud-to-center: calc(var(--sp-px) * 56);
        animation: cloudMoveToCenter 25s ease-in-out infinite;
    }
    .spDeco--heroCloudB{
        left: calc(var(--sp-px) * -20);
        top: calc(var(--sp-px) * 202);
        width: calc(var(--sp-px) * 169);
        height: calc(var(--sp-px) * 40);
        --cloud-rotate: 180deg;
        --cloud-to-center: calc(var(--sp-px) * -56);
        animation: cloudMoveToCenter 30s ease-in-out infinite;
    }
    .spDeco--heroCloudC{
        left: calc(var(--sp-px) * 273);
        top: calc(var(--sp-px) * 478);
        width: calc(var(--sp-px) * 169);
        height: calc(var(--sp-px) * 40);
        --cloud-to-center: calc(var(--sp-px) * -56);
        animation: cloudMoveToCenter 25s ease-in-out infinite;
    }
    .spDeco--profilePawA{
        left: calc(var(--sp-px) * 349.5395);
        top: calc(var(--sp-px) * 635.0515);
        width: calc(var(--sp-px) * 16.575);
        height: calc(var(--sp-px) * 20.605);
        transform: rotate(124.21deg);
        animation: footprintSecond 5s linear infinite;
    }
    .spDeco--profilePawB{
        left: calc(var(--sp-px) * 343.1495);
        top: calc(var(--sp-px) * 586.3415);
        width: calc(var(--sp-px) * 16.575);
        height: calc(var(--sp-px) * 20.605);
        transform: rotate(124.21deg);
        animation: footprintFirst 5s linear infinite;
    }
    .heroBlog__btnWrap{
        position: relative;
    }
    .boundaryBambooGroup{
        position: absolute;
        left: calc(var(--sp-px) * 245);
        top: calc(100% + var(--sp-px) * 4);
        width: calc(var(--sp-px) * 116.24);
        height: calc(var(--sp-px) * 180);
    }
    .spDeco--boundaryBambooA,
    .spDeco--boundaryBambooB,
    .spDeco--boundaryBambooC{
        transform-origin: 50% 100%;
        animation: bambooSway 3.8s ease-in-out infinite;
    }
    .spDeco--boundaryBambooA{
        left: 0;
        top: calc(var(--sp-px) * 55);
        width: calc(var(--sp-px) * 44.28);
        height: calc(var(--sp-px) * 108.24);
        object-fit: contain;
        scale: -1 1;
    }
    .spDeco--boundaryBambooB{
        left: calc(var(--sp-px) * 39.72);
        top: calc(var(--sp-px) * 71);
        width: calc(var(--sp-px) * 44.58);
        height: calc(var(--sp-px) * 108.97);
        object-fit: contain;
    }
    .spDeco--boundaryBambooC{
        left: calc(var(--sp-px) * 71.75);
        top: 0;
        width: calc(var(--sp-px) * 44.58);
        height: calc(var(--sp-px) * 108.97);
        object-fit: contain;
    }
    /* ----- ショップ紹介SP専用装飾（Figma 5216:6088基準。.shop自身の原点を基準にする） ----- */
    .spDeco--shopBambooTopA{
        display: none;
    }
    .spDeco--shopBambooTopB,
    .spDeco--shopBambooTopC{
        transform-origin: 50% 100%;
        animation: bambooSway 3s ease-in-out infinite;
    }
    .spDeco--shopBambooTopB{
        left: calc(var(--sp-px) * -11);
        top: calc(var(--sp-px) * 99.44);
        width: calc(var(--sp-px) * 44.58);
        height: calc(var(--sp-px) * 108.97);
        object-fit: contain;
    }
    .spDeco--shopBambooTopC{
        left: calc(var(--sp-px) * 21);
        top: calc(var(--sp-px) * 28.42);
        width: calc(var(--sp-px) * 44.58);
        height: calc(var(--sp-px) * 108.97);
        object-fit: contain;
    }
    .shopCard--online{
        position: relative;
    }
    .spDeco--shopBambooBottomA,
    .spDeco--shopBambooBottomB,
    .spDeco--shopBambooBottomC{
        transform-origin: 50% 100%;
        animation: bambooSway 3.6s ease-in-out infinite;
        z-index: -1;
    }
    .spDeco--shopBambooBottomA{
        left: calc(var(--sp-px) * 331.3);
        top: calc(100% + var(--sp-px) * 13);
        width: calc(var(--sp-px) * 44.28);
        height: calc(var(--sp-px) * 108.24);
        object-fit: contain;
    }
    .spDeco--shopBambooBottomB{
        left: calc(var(--sp-px) * 287);
        top: calc(100% + var(--sp-px) * 29.03);
        width: calc(var(--sp-px) * 44.58);
        height: calc(var(--sp-px) * 108.97);
        object-fit: contain;
        scale: -1 1;
    }
    .spDeco--shopBambooBottomC{
        left: calc(var(--sp-px) * 255);
        top: calc(100% - var(--sp-px) * 42);
        width: calc(var(--sp-px) * 44.58);
        height: calc(var(--sp-px) * 108.97);
        object-fit: contain;
        scale: -1 1;
    }
    .spDeco--shopPawA{
        left: calc(var(--sp-px) * 117.0565);
        top: calc(var(--sp-px) * 7.0305);
        width: calc(var(--sp-px) * 16.575);
        height: calc(var(--sp-px) * 20.605);
        transform: rotate(-145.79deg);
        animation: footprintSecond 5s linear infinite;
    }
    .spDeco--shopPawB{
        left: calc(var(--sp-px) * 158.7765);
        top: calc(var(--sp-px) * -12.3555);
        width: calc(var(--sp-px) * 16.575);
        height: calc(var(--sp-px) * 20.605);
        animation: footprintFirst 5s linear infinite;
        transform: rotate(-145.79deg);
    }
    .spDeco--shopCloudA{
        left: calc(var(--sp-px) * -79);
        bottom: calc(var(--sp-px) * -27.42);
        width: calc(var(--sp-px) * 169);
        height: calc(var(--sp-px) * 40);
        z-index: -1;
        --cloud-to-center: calc(var(--sp-px) * 56);
        animation: cloudMoveToCenter 30s ease-in-out infinite;
    }
    .spDeco--shopCloudB{
        left: calc(var(--sp-px) * 263);
        top: calc(var(--sp-px) * 126);
        width: calc(var(--sp-px) * 169);
        height: calc(var(--sp-px) * 40);
        z-index: 1;
        --cloud-rotate: 180deg;
        --cloud-to-center: calc(var(--sp-px) * -56);
        animation: cloudMoveToCenter 25s ease-in-out infinite;
    }
    /* ----- SP文字サイズの比例スケール化（2026-09-05）----- */
    /* トラりんの登場時間と場所：見出し（Figma 5216:5046、18px/0.18px） */
    .scheduleInfo__heading{
        font-size: calc(var(--sp-px) * 18);
        letter-spacing: calc(var(--sp-px) * 0.18);
    }
    /* 凡例（京都国立博物館／京都国立博物館外での出演予定、Figma 5216:5074/5092、14px/0.14px） */
    .scheduleInfo__legendItem{
        font-size: calc(var(--sp-px) * 14);
        letter-spacing: calc(var(--sp-px) * 0.14);
    }
    .scheduleInfo__legendItem img{
        width: calc(var(--sp-px) * 51);
    }
    .scheduleInfo__legendTripIcon--l{
        width: calc(var(--sp-px) * 53);
        height: calc(var(--sp-px) * 48);
        padding: calc(var(--sp-px) * 6);
    }
    .scheduleInfo__legendTripIcon--s{
        width: calc(var(--sp-px) * 53);
        height: calc(var(--sp-px) * 26);
        padding: calc(var(--sp-px) * 3) calc(var(--sp-px) * 6);
    }
    /* 凡例注記（Figma 5216:5093、12px/0.12px） */
    .scheduleInfo__legendNote{
        font-size: calc(var(--sp-px) * 12);
        letter-spacing: calc(var(--sp-px) * 0.12);
    }
    /* 登場時間・場所本文（Figma 5216:5097/5098、16px/0.16px） */
    .scheduleInfo__times,
    .scheduleInfo__place{
        font-size: calc(var(--sp-px) * 16);
        letter-spacing: calc(var(--sp-px) * 0.16);
    }
    /* 注記（Figma 5216:5099、12px/0.12px） */
    .scheduleInfo__note{
        font-size: calc(var(--sp-px) * 12);
        letter-spacing: calc(var(--sp-px) * 0.12);
    }
    .calendarNav__year{
        font-size: calc(var(--sp-px) * 24);
        line-height: 1.4;
        letter-spacing: calc(var(--sp-px) * 0.24);
    }
    .calendarNav__month{
        font-size: calc(var(--sp-px) * 28);
        line-height: 1.4;
        letter-spacing: calc(var(--sp-px) * 0.28);
    }
    .calendarContents .week,
    .day{
        font-size: calc(var(--sp-px) * 12);
        letter-spacing: calc(var(--sp-px) * 0.12);
    }
    .calendarLink{
        font-size: calc(var(--sp-px) * 13);
        letter-spacing: calc(var(--sp-px) * 0.13);
    }
    .shopCard__text{
        letter-spacing: calc(var(--sp-px) * 0.16);
    }
    /* オンラインショップの運営者バッジ（Figma 5247:23117、14px/0.14px） */
    .shopCard__linkOperator{
        font-size: calc(var(--sp-px) * 14);
        letter-spacing: calc(var(--sp-px) * 0.14);
    }
    /* オンラインショップ名・URL（Figma 5247:23119/I5247:23120、16px/0.16px） */
    .shopCard__linkTitle,
    .shopCard__linkUrl{
        font-size: calc(var(--sp-px) * 16);
        letter-spacing: calc(var(--sp-px) * 0.16);
    }
    /* SNSでシェアする ラベル（Figma I5255:6027;5255:5607、16px/0.16px） */
    .snsShare__label{
        font-size: calc(var(--sp-px) * 16);
        letter-spacing: calc(var(--sp-px) * 0.16);
    }
    .snsShare__list img{
        width: calc(var(--sp-px) * 24);
        height: calc(var(--sp-px) * 24);
    }
    .snsShare__copyBtn img{
        width: calc(var(--sp-px) * 22);
        height: calc(var(--sp-px) * 22);
    }
    .popup_description__title{
        font-size: calc(var(--sp-px) * 18);
        letter-spacing: calc(var(--sp-px) * 0.18);
    }
    .popup_description__body{
        font-size: calc(var(--sp-px) * 14);
        letter-spacing: calc(var(--sp-px) * 0.14);
    }
}

/* ======================================================================================

　prefers-reduced-motion：継続アニメーションの停止（このファイル末尾に集約）

====================================================================================== */
@media (prefers-reduced-motion: reduce){
    .heroDeco--cloudA,
    .heroDeco--cloudB,
    .heroDeco--cloudC,
    .heroDeco--shopCloudLeft,
    .heroDeco--shopCloudRight,
    .spDeco--heroCloudA,
    .spDeco--heroCloudB,
    .spDeco--heroCloudC,
    .spDeco--shopCloudA,
    .spDeco--shopCloudB{
        animation: none;
    }
    .heroDeco--bambooTopLeftA,
    .heroDeco--bambooTopLeftB,
    .schedule__bambooA,
    .schedule__bambooB,
    .schedule__bambooC,
    .heroDeco--shopBambooA,
    .heroDeco--shopBambooB,
    .heroDeco--shopBambooC,
    .heroDeco--pageBottomBambooA,
    .heroDeco--pageBottomBambooB,
    .heroDeco--pageBottomBambooC,
    .spDeco--heroBambooTopA,
    .spDeco--heroBambooTopB,
    .spDeco--boundaryBambooA,
    .spDeco--boundaryBambooB,
    .spDeco--boundaryBambooC,
    .spDeco--shopBambooTopB,
    .spDeco--shopBambooTopC,
    .spDeco--shopBambooBottomA,
    .spDeco--shopBambooBottomB,
    .spDeco--shopBambooBottomC{
        animation: none;
    }
    .heroDeco--pawA,
    .heroDeco--pawB,
    .heroDeco--shopPawA,
    .heroDeco--shopPawB,
    .spDeco--profilePawA,
    .spDeco--profilePawB,
    .spDeco--shopPawA,
    .spDeco--shopPawB{
        animation: none;
        opacity: 1;
    }
}

/* ======================================================================================

　スクロール連動再生：既定は一時停止、スクロール中のみ再生（このファイル末尾に集約）

====================================================================================== */
.heroDeco--cloudA,
.heroDeco--cloudB,
.heroDeco--cloudC,
.heroDeco--shopCloudLeft,
.heroDeco--shopCloudRight,
.spDeco--heroCloudA,
.spDeco--heroCloudB,
.spDeco--heroCloudC,
.spDeco--shopCloudA,
.spDeco--shopCloudB,
.heroDeco--bambooTopLeftA,
.heroDeco--bambooTopLeftB,
.schedule__bambooA,
.schedule__bambooB,
.schedule__bambooC,
.heroDeco--shopBambooA,
.heroDeco--shopBambooB,
.heroDeco--shopBambooC,
.heroDeco--pageBottomBambooA,
.heroDeco--pageBottomBambooB,
.heroDeco--pageBottomBambooC,
.spDeco--heroBambooTopA,
.spDeco--heroBambooTopB,
.spDeco--boundaryBambooA,
.spDeco--boundaryBambooB,
.spDeco--boundaryBambooC,
.spDeco--shopBambooTopB,
.spDeco--shopBambooTopC,
.spDeco--shopBambooBottomA,
.spDeco--shopBambooBottomB,
.spDeco--shopBambooBottomC,
.heroDeco--pawA,
.heroDeco--pawB,
.heroDeco--shopPawA,
.heroDeco--shopPawB,
.spDeco--profilePawA,
.spDeco--profilePawB,
.spDeco--shopPawA,
.spDeco--shopPawB,
.schedule__decoTopLeft__bubble,
.schedule__decoBottomRight__bubble,
.calendarSideDeco,
.spDeco--scheduleHeadingTail{
    animation-play-state: paused;
}
html.is-scrolling:not(.is-motion-paused) .heroDeco--cloudA,
html.is-scrolling:not(.is-motion-paused) .heroDeco--cloudB,
html.is-scrolling:not(.is-motion-paused) .heroDeco--cloudC,
html.is-scrolling:not(.is-motion-paused) .heroDeco--shopCloudLeft,
html.is-scrolling:not(.is-motion-paused) .heroDeco--shopCloudRight,
html.is-scrolling:not(.is-motion-paused) .spDeco--heroCloudA,
html.is-scrolling:not(.is-motion-paused) .spDeco--heroCloudB,
html.is-scrolling:not(.is-motion-paused) .spDeco--heroCloudC,
html.is-scrolling:not(.is-motion-paused) .spDeco--shopCloudA,
html.is-scrolling:not(.is-motion-paused) .spDeco--shopCloudB,
html.is-scrolling:not(.is-motion-paused) .heroDeco--bambooTopLeftA,
html.is-scrolling:not(.is-motion-paused) .heroDeco--bambooTopLeftB,
html.is-scrolling:not(.is-motion-paused) .schedule__bambooA,
html.is-scrolling:not(.is-motion-paused) .schedule__bambooB,
html.is-scrolling:not(.is-motion-paused) .schedule__bambooC,
html.is-scrolling:not(.is-motion-paused) .heroDeco--shopBambooA,
html.is-scrolling:not(.is-motion-paused) .heroDeco--shopBambooB,
html.is-scrolling:not(.is-motion-paused) .heroDeco--shopBambooC,
html.is-scrolling:not(.is-motion-paused) .heroDeco--pageBottomBambooA,
html.is-scrolling:not(.is-motion-paused) .heroDeco--pageBottomBambooB,
html.is-scrolling:not(.is-motion-paused) .heroDeco--pageBottomBambooC,
html.is-scrolling:not(.is-motion-paused) .spDeco--heroBambooTopA,
html.is-scrolling:not(.is-motion-paused) .spDeco--heroBambooTopB,
html.is-scrolling:not(.is-motion-paused) .spDeco--boundaryBambooA,
html.is-scrolling:not(.is-motion-paused) .spDeco--boundaryBambooB,
html.is-scrolling:not(.is-motion-paused) .spDeco--boundaryBambooC,
html.is-scrolling:not(.is-motion-paused) .spDeco--shopBambooTopB,
html.is-scrolling:not(.is-motion-paused) .spDeco--shopBambooTopC,
html.is-scrolling:not(.is-motion-paused) .spDeco--shopBambooBottomA,
html.is-scrolling:not(.is-motion-paused) .spDeco--shopBambooBottomB,
html.is-scrolling:not(.is-motion-paused) .spDeco--shopBambooBottomC,
html.is-scrolling:not(.is-motion-paused) .schedule__decoTopLeft__bubble,
html.is-scrolling:not(.is-motion-paused) .schedule__decoBottomRight__bubble{
    animation-play-state: running;
}
