@layer components {
.btn {
    /* 共通定義 */
    height: 48px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 0 10px;
    border-radius: 4px;
    line-height: normal;
    font-weight: var(--font-weight-regular);
    font-size: var(--font-size-16);
    cursor: pointer;
    outline: none;
    text-decoration: none;

    /* 変数の初期値設定 */
    background-color: var(--btn-bg);
    color: var(--btn-color);
    border: 1px solid var(--btn-border);
}

/* Primary Button */
.btn-primary {
    --btn-bg: var(--semantic-relux-brand-primary);
    --btn-color: var(--semantic-base-background);
    --btn-border: var(--semantic-relux-brand-primary);
}
.btn-primary:hover,
.btn-primary-hover {
    --btn-bg: var(--semantic-brand-hover);
    --btn-border: var(--semantic-brand-hover);
    --btn-color: var(--semantic-base-background);
}
.btn-primary-inactive {
    --btn-bg: var(--semantic-brand-inactive);
    --btn-border: var(--semantic-brand-inactive);
    --btn-color: var(--semantic-base-background);
}

/* Secondary Button */
.btn-secondary {
    --btn-bg: var(--semantic-base-background);
    --btn-color: var(--semantic-relux-brand-primary);
    --btn-border: var(--semantic-relux-brand-primary);
}
.btn-secondary:hover,
.btn-secondary-hover {
    --btn-bg: var(--semantic-base-background);
    --btn-color: var(--semantic-brand-hover);
    --btn-border: var(--semantic-brand-hover);
}
.btn-secondary-inactive {
    --btn-bg: var(--semantic-base-background);
    --btn-color: var(--semantic-brand-inactive);
    --btn-border: var(--semantic-brand-inactive);
}

/* Tertiary Button */
.btn-tertiary {
    --btn-bg: var(--semantic-base-background);
    --btn-color: var(--semantic-relux-brand-primary);
    --btn-border: var(--semantic-primary-background);
}
.btn-tertiary:hover,
.btn-tertiary-hover {
    --btn-bg: var(--semantic-base-background);
    --btn-color: var(--semantic-brand-hover);
    --btn-border: var(--semantic-primary-background);
}
.btn-tertiary-inactive {
    --btn-bg: var(--semantic-base-background);
    --btn-color: var(--semantic-brand-inactive);
    --btn-border: var(--semantic-brand-inactive);
}

/* Disabled Button */
button:disabled,
.btn-disabled {
    --btn-bg: var(--semantic-sub-background);
    --btn-color: var(--semantic-disabled-text);
    --btn-border: var(--semantic-sub-background);
    cursor: pointer;
}

/* Size */
.btn-large {
    width: 89px;
    height: 56px;
}
.btn-medium {
    width: 81px;
    height: 48px;
    padding: 12px;
}
.btn-small {
    width: 73px;
    height: 40px;
    padding: 8px;
}

@media screen and (max-width: 767px) {
    .btn-large {
        width: 81px;
        height: 48px;
    }
    .btn-medium {
        width: 73px;
        height: 40px;
        padding: 8px;
    }
    .btn-small {
        width: 73px;
        height: 32px;
        padding: 4px 8px;
    }
}

/* Pattern Alone */
.btn.btn-pattern-alone {
    width: 56px;
    height: 56px;
}
.btn.btn-pattern-alone::before {
    content: "";
    mask: url(/stcontents/img/lp-components/icon/arrow-left.svg) no-repeat center center / contain;
    -webkit-mask: url(/stcontents/img/lp-components/icon/arrow-left.svg) no-repeat center center / contain;
    display: inline-block;
    background: var(--btn-color);
    width: 24px;
    height: 24px;
}

/* Pattern Left / Right */
.btn.btn-pattern-left,
.btn.btn-pattern-right {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 105px;
}
.btn.btn-pattern-left::before {
    content: "";
    mask: url(/stcontents/img/lp-components/icon/arrow-left.svg) no-repeat center center / contain;
    -webkit-mask: url(/stcontents/img/lp-components/icon/arrow-left.svg) no-repeat center center / contain;
    display: inline-block;
    background: var(--btn-color);
    width: 24px;
    height: 24px;
}
.btn.btn-pattern-right::after {
    content: "";
    mask: url(/stcontents/img/lp-components/icon/arrow-right.svg) no-repeat center center / contain;
    -webkit-mask: url(/stcontents/img/lp-components/icon/arrow-right.svg) no-repeat center center / contain;
    display: inline-block;
    background: var(--btn-color);
    width: 24px;
    height: 24px;
}
}