@charset "UTF-8";
/* ====================================================
　common.css
　トラりんサイト共通CSS（トークン・リセット・ヘッダー・フッター・ボタン等）
==================================================== */

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

　デザイントークン（Figma "  Style Guide" node 18:570 より）

====================================================================================== */
:root{
    /* Corporate Color */
    --color-primary: #0043D3;
    --color-primary-soft: #8EACED;

    /* Text */
    --color-text: #000000;
    --color-text-gray: #515151;
    --color-ink-secondary: #4A423A;

    /* Background */
    --color-bg-primary: #F7F2E1;
    --color-bg-secondary: #A7A398;
    --color-bg-gray: #E9EDE7;
    --color-bg-cell-empty: #F2F1EF;
    --color-bg-cell: #FFFFFF;
    --color-border: #E1E5F0;
    --color-line-primary: #DADADA;

    /* Elements */
    --color-attention: #E60021;
    --color-accent1: #FAE191;
    --color-accent2: #F2D5DB;
    --color-tertiary: #E0DBCC;
    --color-object-secondary: #625A52;
    --color-trip: #07608C;
    --color-end: #CC440A;

    --radius-l: 24px;
    --radius-m: 12px;
    --radius-s: 4px;
    --radius-btn: 8px;

    --container-width: 120rem;

    --font-display: "A P-OTF Suzumushi StdN", "A-OTF Suzumushi Std", "Noto Serif JP", "Hiragino Mincho ProN", serif;
    --font-logo: "superclarendon", "Noto Serif JP", serif;
}

@media screen and (max-width: 767px){
    :root{
        --sp-px: calc(100vw / 375);
    }
}

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

　リセット・ベース

====================================================================================== */
*, *::before, *::after{
    box-sizing: border-box;
}

html{
    font-size: 10px;
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce){
    html{
        scroll-behavior: auto;
    }
}

body{
    display: flow-root;
    min-width: 320px;
    margin: 0;
    background-color: var(--color-bg-primary);
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    font-weight: 400;
    line-height: 1.8;
    color: var(--color-text);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
@media print, screen and (min-width: 768px){
    body{
        min-width: 1200px;
    }
}

@media print, screen and (min-width: 768px){
    .footer___include{
        overflow-x: clip;
    }
}

img:where(:not(.group_footer, .group_footer *)){
    display: block;
    max-width: 100%;
    height: auto;
}

a:where(:not(.group_footer, .group_footer *)){
    color: inherit;
}

ul, ol{
    margin: 0;
    padding: 0;
    list-style: none;
}

h1, h2, h3, h4, h5, h6{
    margin: 0;
}
h1:where(:not(.group_footer, .group_footer *)), h2:where(:not(.group_footer, .group_footer *)), h3:where(:not(.group_footer, .group_footer *)),
h4:where(:not(.group_footer, .group_footer *)), h5:where(:not(.group_footer, .group_footer *)), h6:where(:not(.group_footer, .group_footer *)){
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
    font-weight: 700;
    line-height: 1.4;
}

p:where(:not(.group_footer, .group_footer *)), dl:where(:not(.group_footer, .group_footer *)), dd:where(:not(.group_footer, .group_footer *)){
    margin: 0;
}

button:where(:not(.group_footer, .group_footer *)){
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    cursor: pointer;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
[tabindex]:focus-visible{
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

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

　ユーティリティ

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

.sr-only{
    position: absolute;
    overflow: hidden;
    clip: rect(0,0,0,0);
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    white-space: nowrap;
    border: 0;
}

.u-visually-hidden{
    border: 0!important;
    clip: rect(0,0,0,0)!important;
    height: 1px!important;
    margin: -1px!important;
    overflow: hidden!important;
    padding: 0!important;
    position: absolute!important;
    white-space: nowrap!important;
    width: 1px!important;
}

.skipLink{
    position: absolute;
    z-index: 200;
    top: -100px;
    left: 0;
    padding: 1em 1.6em;
    background-color: var(--color-primary);
    color: #fff;
    font-weight: 700;
    transition: top .2s ease;
}
.skipLink:focus{
    top: 0;
}

.pc{ display: none; }
.sp{ display: block; }
@media print, screen and (min-width: 768px){
    .pc{ display: block; }
    .sp{ display: none; }
}

.container{
    max-width: var(--container-width);
    margin-inline: auto;
    padding-inline: 2.4rem;
}
@media print, screen and (min-width: 768px){
    .container{
        padding-inline: 0;
    }
}

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

　ボタン（button.css 相当・簡易版）

====================================================================================== */
.btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6em;
    width: auto;
    padding-block: 1.2rem 1.6rem;
    padding-inline: 1.6rem;
    border: 1px solid var(--color-ink-secondary);
    border-radius: 999px;
    background-color: var(--color-ink-secondary);
    color: #fff;
    font-weight: 700;
    font-size: 1.6rem;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 5px 0 rgba(74,66,58,.3);
}
@media screen and (max-width: 767px){
    .btn{
        padding-block: calc(var(--sp-px) * 12) calc(var(--sp-px) * 16);
        padding-inline: calc(var(--sp-px) * 16);
        font-size: calc(var(--sp-px) * 16);
        letter-spacing: calc(var(--sp-px) * 0.16);
    }
}
.btn:focus-visible{
    box-shadow: none;
    transform: translateY(0.5rem);
}
.btn--block{
    display: flex;
    width: 100%;
    max-width: 32rem;
}
.btn--outline{
    background-color: transparent;
    color: var(--color-text);
    border-color: var(--color-text);
}
.btn--pill{
    border-radius: 999px;
}
.btn--center{
    margin-inline: auto;
}

/* Figma「hover時に厚み部分が押される」立体ボタン共通挙動（.btn／.calendarNav__btn／Pagenation前後ボタン／.blog__entryNav__linkで共有） */
.btn,
.calendarNav__btn,
.pager__item--prev > a,
.pager__item--prev > span:not(.sr-only),
.pager__item--next > a,
.pager__item--next > span:not(.sr-only),
.blog__entryNav__link{
    transition: opacity .2s ease, box-shadow .15s ease, transform .15s ease;
}
@media (hover: hover) and (pointer: fine){
    .btn:hover,
    .calendarNav__btn:not(:disabled):hover,
    .pager__item--prev > a:hover,
    .pager__item--next > a:hover,
    .blog__entryNav__link:hover{
        box-shadow: none;
        transform: translateY(0.5rem);
    }
}

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

　下層ページ共通：パンくず・ページタイトル（プロフィール node 5034:1228／5052:1476、
　虎ブログでも同じコンポーネントを使用）

====================================================================================== */
.breadcrumbs{
    display: block;
    padding-block: 2.4rem;
}
.breadcrumbs__list{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4em;
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1.8;
    color: var(--color-text);
}
.breadcrumbs__list li::after{
    content: "／";
    margin-inline: 0.4em;
}
.breadcrumbs__list li:last-child::after{
    content: none;
}
.breadcrumbs__list a{
    color: inherit;
    text-decoration: underline;
}
.breadcrumbs__list [aria-current="page"]{
    text-decoration: none;
}

@media screen and (max-width: 767px){
    .breadcrumbs{
        padding-inline: calc(var(--sp-px) * 16);
        padding-block: calc(var(--sp-px) * 16);
    }
    .breadcrumbs__list{
        gap: calc(var(--sp-px) * 8);
        font-size: calc(var(--sp-px) * 13);
    }
}

@media print, screen and (min-width: 768px){
    .profileTopBar{
        position: relative;
        min-height: 7.2rem;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .profileTopBar__crumbs{
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        padding-block: 0;
    }
    .profileTopBar__crumbs .breadcrumbs__list{
        padding-left: 4.8rem;
    }
    .profileTopBar .langSwitch__list{
        padding-block: 0;
    }
}

.pageTitle{
    margin: 0;
    padding-block: 3.2rem 2.4rem;
    font-family: var(--font-display);
    font-size: 4rem;
    line-height: 1;
    text-align: center;
}
@media print, screen and (min-width: 768px){
    .pageTitle{
        max-width: var(--container-width);
        margin-inline: auto;
        padding-block: 8rem 8rem;
        font-size: 7rem;
        letter-spacing: -0.14rem;
        text-align: left;
    }
}

.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;
}

.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;
    line-height: 1.8;
    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-text{
    margin: 0;
}

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

　ヘッダー（Figma Component node 5079:923 PC / 5216:14232 SP閉 / 5242:21210 SP開）

====================================================================================== */
.siteHeader{
    position: relative;
    z-index: 100;
    background-color: var(--color-bg-primary);
}

.siteHeader__top{
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.6rem;
    padding-inline: 2rem;
    padding-block: 1.6rem 0;
}
@media print, screen and (min-width: 768px){
    .siteHeader__top{
        position: relative;
        display: block;
        height: 11.2rem;
        padding-inline: 0;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__top{
        position: relative;
        display: block;
        padding: calc(100vw * 8 / 375) 0 calc(100vw * 20 / 375);
    }
    .siteHeader__topInner{
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: calc(100vw * 8 / 375);
        padding-inline: calc(100vw * 16 / 375);
        padding-bottom: calc(100vw * 16 / 375);
        margin-bottom: calc(100vw * -3 / 375);
    }
    .siteHeader__top::before{
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: calc(100vw * 20 / 375);
        background-color: var(--color-bg-primary);
    }
    .siteHeader__top::after{
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: calc(100vw * 20 / 375);
        background-color: var(--color-tertiary);
        -webkit-mask-image: url(../images/common/sp_header_crimp_mask.png);
        mask-image: url(../images/common/sp_header_crimp_mask.png);
        -webkit-mask-repeat: repeat-x;
        mask-repeat: repeat-x;
        -webkit-mask-size: auto 100%;
        mask-size: auto 100%;
        -webkit-mask-position: top left;
        mask-position: top left;
    }
}

.siteHeader__greeting{
    display: flex;
    align-items: flex-end;
    gap: 0.8rem;
    min-width: 0;
}
@media print, screen and (min-width: 768px){
    .siteHeader__greeting{
        position: absolute;
        left: 4.8rem;
        top: 2.3rem;
        align-items: flex-start;
        gap: 0;
    }
}
.siteHeader__greetingIconWrap{
    display: block;
    flex: none;
    width: 9rem;
    height: 5.85rem;
    aspect-ratio: 140 / 91;
    overflow: hidden;
    position: relative;
}
@media print, screen and (min-width: 768px){
    .siteHeader__greetingIconWrap{
        width: 14rem;
        height: 9.1rem;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__greeting{
        display: contents;
    }
    .siteHeader__greetingIconWrap{
        position: absolute;
        left: calc(100vw * 15 / 375);
        bottom: 0.1em;
        width: calc(100vw * 89 / 375);
        height: calc(100vw * 58 / 375);
        z-index: 0;
    }
}
.siteHeader__greetingIcon{
    position: absolute;
    top: 4.4%;
    left: -0.24%;
    width: 100.5%;
    height: 141.23%;
    max-width: none;
}
.siteHeader__bubbleWrap{
    flex: none;
    margin-bottom: 1.6rem;
}
@media print, screen and (min-width: 768px){
    .siteHeader__bubbleWrap{
        position: absolute;
        left: 14.8rem;
        top: 1.9rem;
        margin-bottom: 0;
        width: max-content;
        max-width: 40rem;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__bubbleWrap{
        margin-bottom: 0;
        width: max-content;
        align-self: flex-start;
        margin-left: calc(100vw * 63.5 / 375);
    }
}
.siteHeader__bubble{
    position: relative;
    display: inline-block;
    max-width: 22rem;
    padding: 0.8em 1.2em;
    border-radius: var(--radius-btn);
    background-color: var(--color-accent1);
    color: var(--color-ink-secondary);
    font-size: 1.2rem;
    line-height: 1.8;
}
@media print, screen and (min-width: 768px){
    .siteHeader__bubble{
        max-width: 40rem;
        width: auto;
        padding: 0.8rem 1.6rem;
        font-size: 1.4rem;
        font-weight:500;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__bubble{
        max-width: none;
        width: auto;
        /*min-width: calc(100vw * 216 / 375);*/
        padding: calc(100vw * 4 / 375) calc(100vw * 8 / 375);
        border-radius: calc(100vw * 8 / 375);
        font-size: calc(100vw * 10 / 375);
        line-height: 1.8;
    }
}
.siteHeader__bubbleTail{
    display: block;
    width: 3.6rem;
    height: auto;
}
@media screen and (max-width: 767px){
    .siteHeader__bubbleTail{
        width: calc(100vw * 29 / 375);
    }
}

.siteHeader__logo{
    margin: 0;
    flex: none;
    padding-bottom: 1.6rem;
}
@media print, screen and (min-width: 768px){
    .siteHeader__logo{
        position: absolute;
        left: 50%;
        top: 2.7rem;
        transform: translateX(-50%);
        padding-bottom: 0;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__logo{
        padding-bottom: 0;
    }
}
.siteHeader__logo a{
    display: block;
}
.siteHeader__logo img{
    display: block;
    width: auto;
    height: 3.2rem;
    aspect-ratio: 1201 / 322;
}
@media print, screen and (min-width: 768px){
    .siteHeader__logo img{
        height: 5.8rem;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__logo img{
        height: calc(100vw * 37 / 375);
    }
}

.siteHeader__links{
    display: none;
}
@media print, screen and (min-width: 768px){
    .siteHeader__links{
        display: flex;
        position: absolute;
        right: 4.8rem;
        top: 4.8rem;
        align-items: center;
        gap: 2.4rem;
    }
    .siteHeader__linkList{
        display: flex;
        align-items: center;
        gap: 2.4rem;
        font-size: 1.6rem;
        font-weight: 500;
    }
    .siteHeader__linkList a{
        text-decoration: none;
    }
    .siteHeader__sns{
        display: flex;
        align-items: center;
        gap: 0.8rem;
    }
    .siteHeader__sns a{
        display: flex;
        align-items: center;
        justify-content: center;
        width: 3.2rem;
        height: 3.2rem;
        border-radius: 50%;
        border: 1px solid var(--color-ink-secondary);
        background-color: #fff;
    }
    .siteHeader__sns img{
        width: 1.6rem;
        height: 1.6rem;
    }
}
@media screen and (min-width: 768px) and (hover: hover) and (pointer: fine){
    .siteHeader__linkList a:hover{
        text-decoration: underline;
    }
}

.siteHeader__toggle{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 4.4rem;
    height: 4.4rem;
    gap: 0.4rem;
}
@media print, screen and (min-width: 768px){
    .siteHeader__toggle{
        display: none;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__toggle{
        position: absolute;
        right: calc(100vw * 16 / 375);
        top: calc(50% + 100vw * 6.5 / 375);
        transform: translateY(-50%);
        width: calc(100vw * 44 / 375);
        height: calc(100vw * 50 / 375);
        gap: 0;
        z-index: 1;
    }
}
.siteHeader__toggleIcon{
    display: block;
    position: relative;
    flex-shrink: 0;
    width: 1.9rem;
    height: 2.4rem;
    background-image: url(../images/common/ashiato_onaka.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
@media screen and (max-width: 767px){
    .siteHeader__toggleIcon{
        width: calc(100vw * 19 / 375);
        height: calc(100vw * 40 / 375);
        background-size: calc(100vw * 19 / 375) calc(100vw * 24 / 375);
    }
}
.siteHeader__toggleLabel{
    font-family: var(--font-logo);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1;
    flex-shrink: 0;
}
@media screen and (max-width: 767px){
    .siteHeader__toggleLabel{
        font-size: calc(100vw * 10 / 375);
    }
}
.siteHeader__toggle[aria-expanded="true"] .siteHeader__toggleIcon{
    background-image: url(../images/common/icon_close.svg);
    background-size: contain;
    background-position: center;
    width: 2.4rem;
    height: 2.4rem;
}
@media screen and (max-width: 767px){
    .siteHeader__toggle[aria-expanded="true"] .siteHeader__toggleIcon{
        width: calc(100vw * 40 / 375);
        height: calc(100vw * 40 / 375);
    }
}

@media print, screen and (min-width: 768px){
    .siteHeader__navBand{
        position: relative;
    }
}

.siteHeader__tigerPaws{
    display: none;
}
@media print, screen and (min-width: 768px){
    .siteHeader__tigerPaws{
        display: block;
        position: absolute;
        left: 3.3rem;
        top: 9.9rem;
        width: 15.9rem;
        height: 6.5rem;
        pointer-events: none;
        z-index: 1;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__tigerPawsWrap{
        display: block;
        position: absolute;
        left: calc(100vw * 6 / 375);
        top: calc(100vw * 95 / 375);
        width: calc(100vw * 101 / 375);
        height: calc(100vw * 20 / 375);
        overflow: hidden;
        pointer-events: none;
        z-index: 1;
    }
    .siteHeader__tigerPaws{
        display: block;
        position: absolute;
        top: -0.87%;
        left: 3.77%;
        width: 92.46%;
        height: 193.25%;
        max-width: none;
    }
}

/* グローバルナビ */
.gnav{
    position: relative;
    background-color: var(--color-tertiary);
}
@media print, screen and (min-width: 768px){
    .gnav{
        background-color: transparent;
    }
    .gnav::before{
        content: "";
        position: absolute;
        inset: 0;
        background-color: var(--color-tertiary);
        -webkit-mask-image: url(../images/common/navband_mask.png);
        mask-image: url(../images/common/navband_mask.png);
        -webkit-mask-repeat: repeat-x;
        mask-repeat: repeat-x;
        -webkit-mask-size: auto 100%;
        mask-size: auto 100%;
        -webkit-mask-position: top left;
        mask-position: top left;
        pointer-events: none;
        z-index: 0;
    }
}
.gnav__pawIcon{
    display: block;
    width: 1.3rem;
    height: 1.6rem;
    visibility: hidden;
}
.gnav__list li.is-current .gnav__pawIcon,
.gnav__list a:focus-visible .gnav__pawIcon{
    visibility: visible;
}
@media (hover: hover) and (pointer: fine){
    .gnav__list a:hover .gnav__pawIcon{
        visibility: visible;
    }
}
@media screen and (max-width: 767px){
    .gnav__list .gnav__pawIcon{
        visibility: visible;
    }
}
@media print, screen and (min-width: 768px){
    .gnav{
        padding-block: 1rem;
    }
    .gnav__list{
        position: relative;
        z-index: 1;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 4.2rem;
        gap: 3.2rem;
        font-size: 1.6rem;
        font-weight: 700;
        color: var(--color-ink-secondary);
    }
    .gnav__list a{
        display: flex;
        align-items: center;
        gap: 0.4rem;
        text-decoration: none;
    }
}
@media screen and (max-width: 767px){
    .siteHeader__navBand{
        position: relative;
        top: -0.7vw;
    }
    .siteHeader.is-open{
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        min-height: 100dvh;
    }
    .siteHeader.is-open .siteHeader__top{
        flex-shrink: 0;
    }
    .siteHeader.is-open .siteHeader__navBand{
        flex: 1 1 auto;
        min-height: 0;
    }
    .gnav{
        display: flex;
        flex-direction: column;
        align-items: center;
        position: absolute;
        inset: 100% 0 auto 0;
        max-height: calc(100vh - 100%);
        overflow-y: auto;
        overflow-x: hidden;
        border-radius: 0 0 var(--radius-l) var(--radius-l);
        padding-block: calc(100vw * 48 / 375);
        gap: calc(100vw * 32 / 375);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .3s, visibility 0s linear .3s;
    }
    .siteHeader.is-open .gnav{
        inset: 0;
        max-height: 100%;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition: opacity .3s;
    }
    .gnav__list{
        width: calc(100vw * 240 / 375);
        font-weight: 700;
    }
    .gnav__list li{
        padding-bottom: calc(100vw * 24 / 375);
        border-bottom: 1px dashed var(--color-ink-secondary);
    }
    .gnav__list li + li{
        margin-top: calc(100vw * 24 / 375);
    }
    .gnav__list a{
        display: flex;
        align-items: center;
        gap: calc(100vw * 4 / 375);
        padding-inline: calc(100vw * 16 / 375);
        font-size: calc(100vw * 16 / 375);
        text-decoration: none;
    }
    .gnav__pawIcon{
        width: calc(100vw * 13 / 375);
        height: calc(100vw * 16 / 375);
    }
    .gnav__extra{
        display: flex;
        flex-direction: column;
        align-items: center;
        width: calc(100vw * 240 / 375);
        gap: calc(100vw * 24 / 375);
    }
    .gnav__spLinks{
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: calc(100vw * 16 / 375);
        font-size: calc(100vw * 16 / 375);
        font-weight: 500;
        line-height: 1.8;
    }
    .gnav__spLinks a{
        text-decoration: none;
    }
    .gnav__sns{
        display: flex;
        gap: calc(100vw * 32 / 375);
    }
    .gnav__sns a{
        display: flex;
        align-items: center;
        justify-content: center;
        width: calc(100vw * 32 / 375);
        height: calc(100vw * 32 / 375);
        border-radius: 50%;
        border: 1px solid var(--color-ink-secondary);
        background-color: #fff;
        color: var(--color-ink-secondary);
    }
    .gnav__sns svg{
        width: calc(100vw * 16 / 375);
        height: calc(100vw * 16 / 375);
        fill: currentColor;
    }
    .gnav__decoCloud--top{
        display: none;
    }
    .siteHeader.is-open .gnav__decoCloud--top{
        display: block;
        position: absolute;
        left: calc(100vw * 218 / 375);
        top: calc(100vw * 20 / 375);
        width: calc(100vw * 169 / 375);
        height: calc(100vw * 40 / 375);
        pointer-events: none;
        z-index: 1;
    }
    .gnav__decoCloud--right{
        display: none;
    }
    .siteHeader.is-open .gnav__decoCloud--right{
        display: block;
        position: absolute;
        left: calc(100vw * (267 - 67.5) / 375);
        top: calc(100vw * 36 / 375);
        width: calc(100vw * 108 / 375);
        height: calc(100vw * 40 / 375);
        pointer-events: none;
        z-index: 1;
    }
    .gnav__decoBottomLeft{
        display: none;
    }
    .siteHeader.is-open .gnav__decoBottomLeft{
        display: block;
        position: absolute;
        left: calc(100vw * (0 - 67.5) / 375);
        top: calc(100% + 100vw * (530 - 536) / 375);
        width: calc(100vw * 120 / 375);
        height: auto;
        z-index: 1;
    }
    .gnav__decoTorarinBack{
        display: none;
    }
    .siteHeader.is-open .gnav__decoTorarinBack{
        display: block;
        position: absolute;
        left: calc(100vw * (141 - 67.5) / 375);
        top: calc(100% + 100vw * (568 - 536) / 375);
        width: calc(100vw * 93 / 375);
        height: auto;
        z-index: 1;
    }
    .gnav__decoBamboo--right{
        display: none;
    }
    .siteHeader.is-open .gnav__decoBamboo--right{
        display: block;
        position: absolute;
        left: calc(100vw * (291 - 67.5) / 375);
        top: calc(100% + 100vw * (597 - 536) / 375);
        width: calc(100vw * 84 / 375);
        height: auto;
        z-index: 1;
    }
    .gnav{
        padding-bottom: calc(100vw * 180 / 375);
    }
    .gnav__list,
    .gnav__extra{
        position: relative;
        z-index: 1;
    }
}

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

　TOPへ戻るボタン（Figma node 5206:6433「Frame 5」component: PageTop/PageDown × PC/SP）

====================================================================================== */
.pageTop{
    position: fixed;
    z-index: 150;
    right: 1.6rem;
    bottom: 1.6rem;
    display: block;
    width: 7.8rem;
    height: 15.3rem;
    text-decoration: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(30px);
    transition: opacity .35s ease, transform .35s ease, visibility .35s ease;
}
@media print, screen and (min-width: 768px){
    .pageTop{
        right: 4.8rem;
        bottom: 3.2rem;
        width: 12.8rem;
        height: 27.9rem;
    }
}
.pageTop[data-state="normal"],
.pageTop[data-state="bottom"],
.pageTop[data-state="scrolling-top"]{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.pageTop[data-state="scrolling-top-hide"]{
    opacity: 0;
    visibility: visible;
    pointer-events: none;
    transform: translateY(0);
    transition: opacity .3s ease;
}
.pageTop[data-state="scrolling-top-hide"] .pageTop__normal{
    opacity: 0;
    transform: translateY(120%);
    pointer-events: none;
    transition: none;
}
.pageTop[data-state="scrolling-top-hide"] .pageTop__bottom{
    opacity: 1;
    transform: translateY(0);
    transition: none;
}

/* ---- 通常時：下向き?上向きの縦回転（rotateX） ---- */
.pageTop__normal{
    position: absolute;
    inset: 0;
    perspective: 100rem;
    transition: opacity .25s ease, transform .25s ease;
}
.pageTop__flip{
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: transform .4s ease;
}
.pageTop[data-facing="up"] .pageTop__flip{
    transform: rotateX(180deg);
}
.pageTop__face{
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
}
.pageTop__face--up{
    transform: rotateX(180deg);
}
.pageTop__charDown{
    position: absolute;
    top: 2.2rem;
    left: 1.4rem;
    width: 5rem;
    height: 8.4rem;
    transform: scaleX(-1);
    pointer-events: none;
}
@media print, screen and (min-width: 768px){
    .pageTop__charDown{
        top: 2.35rem;
        left: 1.4rem;
        width: 10rem;
        height: 16.8rem;
    }
}

.pageTop__charUp{
    position: absolute;
    left: 17.95%;
    right: 17.95%;
    top: 1.3rem;
    width: auto;
    height: auto;
    transform: scaleX(-1);
    pointer-events: none;
}
.pageTop__badge{
    position: absolute;
    top: 64.05%;
    right: 17.95%;
    bottom: 3.27%;
    left: 17.95%;
    width: auto;
    height: auto;
    pointer-events: none;
}
@media print, screen and (min-width: 768px){
    .pageTop__charUp{
        left: 10.94%;
        right: 10.94%;
        top: 1.4rem;
    }
    .pageTop__badge{
        top: 63.08%;
        right: 15.63%;
        bottom: 5.02%;
        left: 14.84%;
    }
}

/* ---- 最下部／TOPへスクロール中：上向きトラりん＋PAGE TOPバッジ ---- */
.pageTop__bottom{
    position: absolute;
    inset: 0;
    display: block;
    opacity: 0;
    transform: translateY(120%);
    transition: opacity .25s ease, transform .25s ease;
}

/* ---- 通常グループ?最下部グループの切り替え ---- */
.pageTop[data-state="normal"] .pageTop__normal{
    opacity: 1;
    transform: translateY(0);
    transition-delay: .25s;
}
.pageTop[data-state="bottom"] .pageTop__normal,
.pageTop[data-state="scrolling-top"] .pageTop__normal{
    opacity: 0;
    transform: translateY(120%);
    pointer-events: none;
}
.pageTop[data-state="bottom"] .pageTop__bottom,
.pageTop[data-state="scrolling-top"] .pageTop__bottom{
    opacity: 1;
    transform: translateY(0);
    transition-delay: .25s;
}

@media (prefers-reduced-motion: reduce){
    .pageTop,
    .pageTop__normal,
    .pageTop__flip,
    .pageTop__bottom{
        transition: none !important;
    }
}

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

　共通アニメーションキーフレーム（トップページ index.css で実装済みのものをそのまま流用）

====================================================================================== */
@keyframes scheduleSpeechFloat{
    0%, 100%{ transform: rotate(-20deg); }
    50%{ transform: rotate(-14deg); }
}
@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); }
}
@keyframes cloudMoveToCenter{
    0%{ transform: translateX(0) rotate(var(--cloud-rotate, 0deg)); }
    50%{ transform: translateX(var(--cloud-to-center)) rotate(var(--cloud-rotate, 0deg)); }
    100%{ transform: translateX(0) rotate(var(--cloud-rotate, 0deg)); }
}
@media (prefers-reduced-motion: reduce){
    .heroDeco--cloudA,
    .heroDeco--cloudB,
    .heroDeco--cloudC,
    .heroDeco--shopCloudLeft,
    .heroDeco--shopCloudRight,
    .profileMain__cloud--tl,
    .profileMain__cloud--tr,
    .profileMain__cloud--bl,
    .profileMain__cloud--br,
    .profileIntro__cloudBack,
    .blogMain__cloud--tl,
    .blogMain__cloud--tr,
    .blogMain__cloud--bl,
    .blogMain__cloud--br,
    .blogEntry__cloud--left,
    .blogEntry__cloud--right,
    .spDeco--heroCloudA,
    .spDeco--heroCloudB,
    .spDeco--heroCloudC,
    .spDeco--shopCloudA,
    .spDeco--shopCloudB,
    .profileIntro__cloud--a,
    .profileIntro__cloud--b,
    .profileIntro__cloud--c,
    .profileLinks__cloud--a,
    .profileLinks__cloud--b{
        animation: none;
    }
}
html.is-motion-paused .heroDeco--cloudA,
html.is-motion-paused .heroDeco--cloudB,
html.is-motion-paused .heroDeco--cloudC,
html.is-motion-paused .heroDeco--shopCloudLeft,
html.is-motion-paused .heroDeco--shopCloudRight,
html.is-motion-paused .profileMain__cloud--tl,
html.is-motion-paused .profileMain__cloud--tr,
html.is-motion-paused .profileMain__cloud--bl,
html.is-motion-paused .profileMain__cloud--br,
html.is-motion-paused .profileIntro__cloudBack,
html.is-motion-paused .blogMain__cloud--tl,
html.is-motion-paused .blogMain__cloud--tr,
html.is-motion-paused .blogMain__cloud--bl,
html.is-motion-paused .blogMain__cloud--br,
html.is-motion-paused .blogEntry__cloud--left,
html.is-motion-paused .blogEntry__cloud--right,
html.is-motion-paused .spDeco--heroCloudA,
html.is-motion-paused .spDeco--heroCloudB,
html.is-motion-paused .spDeco--heroCloudC,
html.is-motion-paused .spDeco--shopCloudA,
html.is-motion-paused .spDeco--shopCloudB,
html.is-motion-paused .profileIntro__cloud--a,
html.is-motion-paused .profileIntro__cloud--b,
html.is-motion-paused .profileIntro__cloud--c,
html.is-motion-paused .profileLinks__cloud--a,
html.is-motion-paused .profileLinks__cloud--b{
    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) .profileMain__cloud--tl,
html.is-scrolling:not(.is-motion-paused) .profileMain__cloud--tr,
html.is-scrolling:not(.is-motion-paused) .profileMain__cloud--bl,
html.is-scrolling:not(.is-motion-paused) .profileMain__cloud--br,
html.is-scrolling:not(.is-motion-paused) .profileIntro__cloudBack,
html.is-scrolling:not(.is-motion-paused) .blogMain__cloud--tl,
html.is-scrolling:not(.is-motion-paused) .blogMain__cloud--tr,
html.is-scrolling:not(.is-motion-paused) .blogMain__cloud--bl,
html.is-scrolling:not(.is-motion-paused) .blogMain__cloud--br,
html.is-scrolling:not(.is-motion-paused) .blogEntry__cloud--left,
html.is-scrolling:not(.is-motion-paused) .blogEntry__cloud--right,
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) .profileIntro__cloud--a,
html.is-scrolling:not(.is-motion-paused) .profileIntro__cloud--b,
html.is-scrolling:not(.is-motion-paused) .profileIntro__cloud--c,
html.is-scrolling:not(.is-motion-paused) .profileLinks__cloud--a,
html.is-scrolling:not(.is-motion-paused) .profileLinks__cloud--b{
    animation-play-state: running;
}

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

　フッター

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

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

　自動装飾アニメーション 一括停止／再開ボタン（JIS X 8341-3:2016 AA 2.2.2 対応）

====================================================================================== */
.motionToggle{
    position: fixed;
    z-index: 150;
    left: 1.2rem;
    bottom: 1.2rem;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.9em 1.4em;
    border-radius: 999px;
    background-color: var(--color-ink-secondary);
    color: #fff;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.4;
    text-align: left;
    box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
@media print, screen and (min-width: 768px){
    .motionToggle{
        left: 2.4rem;
        bottom: 2.4rem;
        font-size: 1.4rem;
    }
}
.siteHeader.is-open ~ .motionToggle{
    visibility: hidden;
    pointer-events: none;
}
