@charset 'utf-8';
@import url("https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@700;800&display=swap");

:root {
    --space-sss: 10px;
    --space-s: 40px;
    --space-m: 60px;
    --space-l: 80px;
    --space-ll: 100px;
    --space-lll: 160px;
}

html,
body,
#wrap,
#footerLink ul {
    width: 100%;
    min-width: 1000px;
}

.headerTab,
.headerTop {
    min-width: 1000px;
}

#headerTop {
    width: 780px;
}

.flierPage_title,
#flier,
#flier *,
.container,
.container * {
    font-family: "LINE Seed JP", "YuGothic", "Yu Gothic", sans-serif !important;
}

.container {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.container * {
    box-sizing: border-box;
    line-height: 1.6;
}

.container img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 100%;
    margin: 0 auto;
}

.html-body .html-block-inner {
    width: 100%;
}

.html-body > .html-block:nth-child(1) {
    margin-top: 0 !important;
}

.container .html-body .html-block:has(h2) {
    margin-top: var(--space-lll) !important;
}

.font-size-l {
    font-size: 62px;
}

.font-size-m {
    font-size: 52px;
}

.font-size-s {
    font-size: 42px;
}

.font-size-ss {
    font-size: 32px;
}

.font-size-sss {
    font-size: 22px;
}

.container .w916 {
    max-width: 916px;
    margin-inline: auto;
}

/************************************************************************************
*  ヘルパー
************************************************************************************/
.d-block {
    display: block !important;
}

.d-flex {
    display: flex !important;
}

.d-inline {
    display: inline !important;
}

.ta-left {
    text-align: left !important;
}

.ta-center {
    text-align: center !important;
}

.ta-right {
    text-align: right !important;
}

.td-none {
    text-decoration: none !important;
}

.td-underline {
    text-decoration: underline !important;
}

.fw-700 {
    font-weight: 700 !important;
}

.fw-800 {
    font-weight: 800 !important;
}

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

.mt-sss {
    margin-top: var(--space-sss) !important;
}

.mt-s {
    margin-top: var(--space-s) !important;
}

.mt-m {
    margin-top: var(--space-m) !important;
}

.mt-l {
    margin-top: var(--space-l) !important;
}

.mt-ll {
    margin-top: var(--space-ll) !important;
}

.mt-lll {
    margin-top: var(--space-lll) !important;
}

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

.mb-sss {
    margin-bottom: var(--space-sss) !important;
}

.mb-s {
    margin-bottom: var(--space-s) !important;
}

.mb-m {
    margin-bottom: var(--space-m) !important;
}

.mb-l {
    margin-bottom: var(--space-l) !important;
}

.mb-ll {
    margin-bottom: var(--space-ll) !important;
}

.mb-lll {
    margin-bottom: var(--space-lll) !important;
}

.-sp {
    display: none !important;
}

/************************************************************************************
*  見出し
************************************************************************************/
.html-body .html-block[data-content-type="heading"] {
    margin-top: var(--space-l);
}

.html-body .html-block[data-content-type="heading"][data-component-id="heading-medama"] {
    margin-top: var(--space-ll);
}

.heading-base {
    white-space: unset;
}

.html-content-heading .heading-item {
    width: 100%;
    margin: 0;
    padding: 0.1em 0.3em;
    font-size: 50px;
}

/* 稲妻マーク付き */
.html-content-heading .heading-item.heading-layout-symbol {
    padding-right: 73px;
    padding-left: 73px;
    line-height: 1.3;
    paint-order: stroke fill;
    text-shadow: none;
}

.html-content-heading .heading-layout-symbol::before,
.html-content-heading .heading-layout-symbol::after {
    top: calc(50% - 35px);
    width: 70px;
    height: 70px;
    margin: 0;
}

/* 赤 */
.heading-layout-symbol.heading-color-red {
    -webkit-text-stroke: 10px rgb(230, 0, 18);
}

/* 青 */
.heading-layout-symbol.heading-color-blue {
    -webkit-text-stroke: 10px rgb(0, 55, 145);
}

/* 黒 */
.heading-layout-symbol.heading-color-black {
    -webkit-text-stroke: 10px rgb(0, 0, 0);
}

/* 緑 */
.heading-layout-symbol.heading-color-green {
    -webkit-text-stroke: 10px rgb(20, 112, 15);
}

/* 黄緑 */
.heading-layout-symbol.heading-color-yellow-green {
    -webkit-text-stroke: 10px #8cbf21;
}

/* 水 */
.heading-layout-symbol.heading-color-light-blue {
    -webkit-text-stroke: 10px #00acca;
}

/* 橙 */
.heading-layout-symbol.heading-color-orange {
    -webkit-text-stroke: 10px #ff6c00;
}

.html-content-heading .heading-item.font-size-l {
    font-size: 60px;
}

.html-content-heading .heading-item.font-size-m {
    font-size: 50px;
}

.html-content-heading .heading-item.font-size-s {
    font-size: 45px;
}

.html-content-heading .heading-item.font-size-ss {
    font-size: 35px;
}

.html-content-heading .heading-item.font-size-sss {
    font-size: 30px;
}

/************************************************************************************
*  商品
************************************************************************************/
.html-body .html-block[data-content-type="product"] {
    margin-top: var(--space-ll);
}

.html-body .html-block[data-component-id="heading-medama"] + .html-block[data-content-type="product"] {
    margin-top: var(--space-s);
}

.html-content-entity.html-content-product {
    padding-bottom: 0;
}

/* 左右分割
-----------------------------------------------------------*/
.product-item-left .product-item-block,
.product-item-right .product-item-block {
    width: 92%;
}

.product-item-left .product-item-block .product-item-image,
.product-item-right .product-item-block .product-item-image {
    padding: 0 20px;
}

.product-item-left .product-item-block .product-item-image img,
.product-item-right .product-item-block .product-item-image img {
    max-height: 360px;
}

.product-item-left .product-item-image,
.product-item-right .product-item-image {
    width: 45%;
    padding: 0 10px;
}

.product-item-left .product-item-detail,
.product-item-right .product-item-detail {
    width: 55%;
    padding: 0 10px;
}

/* 1カラム
-----------------------------------------------------------*/
.html-block-columns.full-size .product-item-detail {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0 10px;
}

.html-block-columns.full-size .product-item-detail .item-title {
    flex-grow: 1;
    width: 100%;
    text-align: left;
}

/* 2カラム
-----------------------------------------------------------*/
.product-item-half .product-item-detail {
    width: 85%;
    min-height: 0;
}

/* 画像 */
.product-item-half .product-item-image {
    display: block;
    width: 100%;
    height: 400px;
    padding: 20px 0;
}

/* 商品詳細
-----------------------------------------------------------*/
.product-item-block .item-title {
    white-space: unset;
}

/* ラベル */
.product-item-detail .item-type {
    font-size: 22px;
}

.product-item-detail .item-type span {
    font-weight: bold;
}

/* 商品名 */
.product-item-block .item-title {
    overflow: hidden;
    margin-bottom: 10px;
}

.product-item-block .item-title span {
    overflow: hidden;
    height: auto;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: -0.02em;
}

.product-item-block .item-title .font-size-l {
    font-size: 45px;
}

.product-item-block .item-title .font-size-m {
    font-size: 34px;
}

.product-item-block .item-title .font-size-s {
    font-size: 30px;
    line-height: 1.2;
}

/* 価格
-----------------------------------------------------------*/
/* 割引前価格 */
.product-item-block .sale-price-wrapper,
.product-item-block .sale-price-wrapper span,
.product-item-block .sale-price-wrapper .sale-number {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.6;
}

.product-item-block .sale-label-wrapper,
.product-item-block .sale-label-wrapper span {
    padding: 0 0.2em;
    font-size: 18px;
    line-height: 1.4;
}

.product-item-block .sale-label-wrapper span + span {
    margin-top: 0.2em;
}

.product-item-block .sale-label-wrapper span.first-line {
    font-size: 35px;
}

.product-item-block .sale-label-wrapper span.second-line {
    font-size: 40px;
}

.product-item-block .sale-price-wrapper,
.product-item-block .sale-label-wrapper {
    margin-bottom: 5px;
}

/* セール価格 */
.product-item-block .item-price {
    position: relative;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.product-item-detail .item-price {
    width: 100%;
}

.product-item-block .price-wrapper .price {
    line-height: 1;
}

.product-item-block .price-wrapper .number.intax,
.product-item-half .product-item-block .price-wrapper .number.intax {
    margin-top: 0.4em;
}

/* 価格（サイズ別）
-----------------------------------------------------------*/
/*
    価格まわりの文字サイズは「カラム幅(full/half) × サイズ(L/M/S)」の表でしかないので、
    数値はこの6ルールに集約し、適用は下の共通ルールだけが持つ。
    サイズを変えたいときはここの数値だけを触る。

        --price       販売価格(.price)。税込(.number.intax)は常にこの半分
        --price-unit  「各」(.each)と「円」(.yen)。この2つは常に同じ大きさ
        --outtax-*    「税抜」(.outtax)のサイズと浮き上がり量。half-sizeは一律なので持たない
*/
.full-size .price-wrapper .font-size-l {
    --price: 118px;
    --price-unit: 55px;
    --outtax-size: 33px;
    --outtax-top: -0.4em;
}

.full-size .price-wrapper .font-size-m {
    --price: 100px;
    --price-unit: 50px;
    --outtax-size: 30px;
    --outtax-top: -0.3em;
}

.full-size .price-wrapper .font-size-s {
    --price: 95px;
    --price-unit: 40px;
    --outtax-size: 23px;
    --outtax-top: -0.4em;
}

.half-size .price-wrapper .font-size-l {
    --price: 100px;
    --price-unit: 45px;
}

.half-size .price-wrapper .font-size-m {
    --price: 80px;
    --price-unit: 38px;
}

.half-size .price-wrapper .font-size-s {
    --price: 75px;
    --price-unit: 35px;
}

/* サイズによらない配置
-----------------------------------------------------------*/
.product-item-block .price-wrapper .each {
    top: -4px;
    margin-left: 0.1em;
}

.half-size .product-item-block .price-wrapper .yen {
    top: -4px;
}

.product-item-block .price-wrapper .price {
    margin-left: 0.1em;
}

.product-item-block .price-wrapper .each + .price {
    margin-left: 0;
}

.full-size .product-item-block .price-wrapper .number.intax,
.half-size .product-item-block .price-wrapper .number.intax {
    margin-top: 0.2em;
    font-size: 28px;
}

.full-size .product-item-block .price-wrapper .number.intax span,
.half-size .product-item-block .price-wrapper .number.intax span {
    font-size: 0.6em;
    font-weight: bold;
}

/* 適用
-----------------------------------------------------------*/
/*
    セレクタにサイズ名(.font-size-l/m/s)を残しているのは、サイズ指定のない .number に
    変数が無いまま当たって font-size が壊れるのを避けるため。
    .product-item-block を残しているのは sale_lp_base.css 側の指定に競り勝つため。
*/
/* 販売価格 */
.product-item-block .price-wrapper .font-size-l .price,
.product-item-block .price-wrapper .font-size-m .price,
.product-item-block .price-wrapper .font-size-s .price {
    font-size: var(--price);
}

/* 税込 */
.product-item-block .price-wrapper .font-size-l .number.intax,
.product-item-block .price-wrapper .font-size-m .number.intax,
.product-item-block .price-wrapper .font-size-s .number.intax {
    font-size: calc(var(--price) / 2);
}

/* 「各」「円」 */
.product-item-block .price-wrapper .font-size-l span.each,
.product-item-block .price-wrapper .font-size-m span.each,
.product-item-block .price-wrapper .font-size-s span.each {
    font-size: var(--price-unit);
}

.product-item-block .price-wrapper .font-size-l .yen,
.product-item-block .price-wrapper .font-size-m .yen,
.product-item-block .price-wrapper .font-size-s .yen {
    font-size: var(--price-unit);
}

/* full-size Lの「円」だけ浮き上がる（元からの例外） */
.full-size .product-item-block .price-wrapper .font-size-l .yen {
    top: -0.1em;
}

/* 「税抜」 */
.full-size .product-item-block .price-wrapper .outtax {
    /* フォールバックは sale_lp_base.css の .number .outtax に合わせた値 */
    top: var(--outtax-top, -0.4vw);
    padding: 0.3em 0.1em;
    font-size: var(--outtax-size, 0.4em);
}

.half-size .product-item-block .price-wrapper .outtax {
    top: -0.3em;
    padding: 0.3em 0.1em;
    font-size: 23px;
}

/* 注釈
-----------------------------------------------------------*/
.item-description,
.item-description-link {
    white-space: unset;
}

.product-item .item-description {
    margin-top: 1em;
}

.product-item .item-description span {
    font-size: 20px;
}

/* リンク（詳しくはこちら） */
.product-item .item-description-link {
    margin-top: 1em;
}

.product-item .item-description + .item-description-link {
    margin-top: 0;
}

.product-item .item-description-link a {
    font-size: 20px;
}

/************************************************************************************
*  画像
************************************************************************************/
.html-body .html-block[data-content-type="image"] {
    margin-top: var(--space-m);
}

/************************************************************************************
*  テキスト
************************************************************************************/
.text-item {
    font-weight: bold;
    white-space: unset;
}

.text-item.font-size-l {
    font-size: 50px;
}

.text-item.font-size-m {
    font-size: 38px;
}

.text-item.font-size-s {
    font-size: 25px;
}

.text-item.font-size-sss {
    font-size: 22px;
}

.html-body .html-block[data-content-type="text"]:has(.font-size-sss) {
    margin-top: var(--space-sss);
}

/************************************************************************************
*  ボタン
************************************************************************************/
.html-body .html-block[data-content-type="button"] {
    margin-top: var(--space-s);
}

.button-url {
    display: block;
    width: fit-content;
    margin-inline: auto;
    text-decoration: none;
}

.html-content-button .button-item {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 916px;
    height: auto;
    min-height: 80px;
    margin: 0;
    padding: 16px 0;
    cursor: pointer;
}

.html-content-button .font-size-m {
    font-size: 42px;
}

.html-content-button .font-size-s {
    font-size: 38px;
}

.html-content-button .font-size-ss {
    font-size: 34px;
}

.html-content-button .font-size-sss {
    font-size: 22px;
}

/* ゲームLP向け デバイスごとのボタン */
.gameBtn {
    height: 140px;
    background-position: center;
    background-repeat: no-repeat;
}

.gameBtn a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    font-size: 38px;
    font-weight: bold;
    text-decoration: none;
    line-height: 1.12;
    color: white;
}

.gameBtn.-switch2 {
    background-image: url(/v2/cmn/img/store_info/sale/common/btn_switch2.png);
}

.gameBtn.-switch {
    background-image: url(/v2/cmn/img/store_info/sale/common/btn_switch.png);
}

.gameBtn.-ps5 {
    background-image: url(/v2/cmn/img/store_info/sale/common/btn_ps5.png);
}

.gameBtn.-ps5 a {
    color: black;
}

.gameBtn.-ps4 {
    background-image: url(/v2/cmn/img/store_info/sale/common/btn_ps4.png);
}

.gameBtn.-other {
    background-image: url(/v2/cmn/img/store_info/sale/common/btn_other.png);
}

/************************************************************************************
*  アンカーリンク
************************************************************************************/
.html-body .html-block[data-content-type="anchor"] {
    margin-top: var(--space-s);
}

/************************************************************************************
*  キャンペーン
************************************************************************************/
.html-body .html-block[data-content-type="campaign"] {
    margin-top: var(--space-l);
}

/************************************************************************************
*  罫線
************************************************************************************/
.line-layout-straight {
    margin: 20px 0;
    border-style: solid;
}

.line-layout-straight.line-size-l {
    border-width: 5px;
}

.line-layout-straight.line-size-m {
    border-width: 3px;
}

.line-layout-straight.line-size-s {
    border-width: 1.5px;
}

/************************************************************************************
*  コンポーネント
************************************************************************************/
.lp_section {
    width: 1000px;
    margin: 0 auto;
}

.lp_list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lp_list > li:first-child {
    margin-top: 0;
}

.lp_item {
    position: relative;
    width: 916px;
    margin: 0 auto;
}

.lp_item.-lg {
    margin-top: 0;
}

.lp_item + .lp_item {
    margin-top: 0;
}

/************************************************************************************
*  WEBチラシ連携
************************************************************************************/
header {
    width: 100%;
    margin-bottom: 15px;
    background: #192b5b;
}

#contents.singlePage {
    width: 1000px;
}

#flier {
    margin: 20px 0;
}

.flierPage_title {
    margin-bottom: 20px;
    padding-top: 14px;
    border-top: 1px solid #192b5b;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    color: #192b5b;
}

.flierTab {
    display: flex;
    width: 100%;
    margin: 0;
}

.flierTab::before,
.flierTab::after {
    content: "";
    display: block;
    width: 70px;
    height: 60px;
    border-bottom: 1px solid #dddddd;
}

.flierTab a {
    display: block;
    width: 430px;
    height: 60px;
    padding: 0;
    background-color: #eeeeee;
    border: 1px solid #dddddd;
    font-size: 16px;
    text-align: center;
    text-decoration: none;
    line-height: 60px;
    color: #666666;
    cursor: pointer;
}

.flierTab a:nth-child(2) {
    border-left: none;
}

.flierTab a.is-active {
    background-color: white;
    border-bottom: none;
    color: #192b5b;
    pointer-events: none;
}

/************************************************************************************
*  恒久化
************************************************************************************/
.finishedText {
    background: #fffaeb;
    font-size: 16px;
    padding: 20px 50px;
    text-align: center;
}
