/* ===================================================================
   Base（ベーススタイル）
   ================================================================== */

html {
    scrollbar-gutter: stable;
}

a:hover,
a:focus-visible {
    text-decoration: none;
}


/* ====================================================================
   Anchor offset: 固定ヘッダー用アンカー調整
======================================================================= */

.anchor-point {
    scroll-margin-top: var(--header-h);
    margin-top: calc(-1 * var(--header-h));
    padding-top: var(--header-h);
}

@media (max-width: 991px) {
    .anchor-point {
        scroll-margin-top: var(--header-h-sp);
        margin-top: calc(-1 * var(--header-h-sp));
        padding-top: var(--header-h-sp);
    }
}


/* ===================================================================
   Utilities（厳選：よく使う間隔だけ）
   0 / 8 / 12 / 16 / 24 / 32 / 48 / 64
   ※必要なら80も追加
===================================================================== */

/* margin-top */
.u-mt-0 {
    margin-top: 0 !important;
}

.u-mt-8 {
    margin-top: 8px !important;
}

.u-mt-12 {
    margin-top: 12px !important;
}

.u-mt-16 {
    margin-top: 16px !important;
}

.u-mt-24 {
    margin-top: 24px !important;
}

.u-mt-32 {
    margin-top: 32px !important;
}

.u-mt-48 {
    margin-top: 48px !important;
}

.u-mt-64 {
    margin-top: 64px !important;
}

/* margin-bottom */
.u-mb-0 {
    margin-bottom: 0 !important;
}

.u-mb-8 {
    margin-bottom: 8px !important;
}

.u-mb-12 {
    margin-bottom: 12px !important;
}

.u-mb-16 {
    margin-bottom: 16px !important;
}

.u-mb-24 {
    margin-bottom: 24px !important;
}

.u-mb-32 {
    margin-bottom: 32px !important;
}

.u-mb-48 {
    margin-bottom: 48px !important;
}

.u-mb-64 {
    margin-bottom: 64px !important;
}

/* padding-top */
.u-pt-0 {
    padding-top: 0 !important;
}

.u-pt-8 {
    padding-top: 8px !important;
}

.u-pt-12 {
    padding-top: 12px !important;
}

.u-pt-16 {
    padding-top: 16px !important;
}

.u-pt-24 {
    padding-top: 24px !important;
}

.u-pt-32 {
    padding-top: 32px !important;
}

.u-pt-48 {
    padding-top: 48px !important;
}

.u-pt-64 {
    padding-top: 64px !important;
}

/* padding-bottom */
.u-pb-0 {
    padding-bottom: 0 !important;
}

.u-pb-8 {
    padding-bottom: 8px !important;
}

.u-pb-12 {
    padding-bottom: 12px !important;
}

.u-pb-16 {
    padding-bottom: 16px !important;
}

.u-pb-24 {
    padding-bottom: 24px !important;
}

.u-pb-32 {
    padding-bottom: 32px !important;
}

.u-pb-48 {
    padding-bottom: 48px !important;
}

.u-pb-64 {
    padding-bottom: 64px !important;
}

/* SPだけ少し足したい時（必要最低限） */
@media (max-width: 767px) {
    .u-sp-mt-16 {
        margin-top: 16px !important;
    }

    .u-sp-mb-16 {
        margin-bottom: 16px !important;
    }

    .u-sp-pt-16 {
        padding-top: 16px !important;
    }

    .u-sp-pb-16 {
        padding-bottom: 16px !important;
    }
}