@charset "utf-8";

:root {
    --block-margins-m: clamp(2rem, 3vw, 3rem);
    --block-margins-s: clamp(1rem, 2vw, 2rem);
    --block-margins-ss: clamp(0.4rem, 1vw, 0.7rem);
    --price-size: clamp(1.35rem, 1.6vw, 1.6rem);
    --option-border-color: #decfa6;
    --option-border-color-crystal: #b5ccee;
    --option-border:clamp(0.2rem, 1.2vw, 0.5rem);
    /* --blue-gradient: linear-gradient(to bottom, #4c8ccd 35%, #375bad 100%); */

}

body.subscribe .option .price span:nth-child(1) {
    font-size: clamp(1.22rem, calc(var(--option-width) * 0.05), 1.6rem);
    padding-right: 2%;
}

@media screen and (min-width: 768px) {
    .subscribe .wipe_box {
        width: fit-content;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
    .subscribe.step1 .option{
        border:none;
    }
     /* hover效果同選中的效果 */
      .subscribe.step1 .option:hover { 
        outline: var(--option-border) var(--option-border-color) solid;
    }
    .subscribe.step1 .option.crystal:hover {
        outline: var(--option-border) var(--option-border-color-crystal) solid;
    }
    
}

/*種類樣式設定*/

.subscribe.step1 .type_box {
    position: relative;
    display: flex;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: transform 0.3s ease;
    margin-bottom: 1rem;
}

.subscribe.step1 .type_box>dd {
    width: 100%;
    display: flex;
    font-size: var(--normal-btn-size);
    font-weight: 600;
    text-align: center;
    justify-content: center;
}

.subscribe.step1 .type_box .mobile {
    display: none;
}

.subscribe.step1 .type_box .subscription {
    color: #b49353;
}

.subscribe.step1 .type_box .monthly {
    color: #4f7dc1;
}

.subscribe.step1 .type_box .pc .subscription {
    width: 100%;
    /* max-width: 918px; */
}

.subscribe.step1 .type_box .pc .monthly {
    width: 23.5%;
}

.subscribe.step1 .type_box .mobile>div {
    width: 23.5%;
}

.subscribe.step1 .type_box .subscription::after {
    background-color: #b49353;
}

.subscribe.step1 .type_box .monthly::after {
    background-color: #4f7dc1;
}

.subscribe.step1 .type_box .subscription::after,
.subscribe.step1 .type_box .monthly::after {
    content: "";
    position: relative;
    display: block;
    margin-top: calc(var(--block-margins-ss) * 0.5);
    width: 100%;
    height: 4px;
}

.subscribe .option_box {
    width: 100%;
    max-width: 910px;
    display: flex;
    justify-content: flex-start;
    gap: 2%;
    width: 100%;
    margin-top: 0.5rem;
}

.subscribe.step1 .option {
    aspect-ratio: unset !important;
    width: 32%;
    max-width: 290px;
    height: auto;
    box-sizing: border-box;
}

/*水晶選項的類別以為元素撰寫*/
@media screen and (min-width: 768px) {
    /* :root {
        --option-bc: #b5ccee;
        --option-bw: 4px;
    } */

    .subscribe.step1 .option_box .option.crystal {
        position: relative;
        margin-top: 7rem;
    }

    .subscribe.step1 .option_box .option.crystal {
        overflow: visible;
    }

    .subscribe.step1 .option_box .option.crystal::before {
        width: 100%;
        border-bottom: 4px solid #4f7dc1;
        position: absolute;
        top: 0;
        padding-bottom: 4px;
        text-align: center;
        left: 0;
        z-index: 555;
        font-size: var(--normal-btn-size);
        font-weight: 600;
        font-family: "Noto Sans TC", 'Microsoft JhengHei', Helvetica, 'Maven Pro', 'Droid Sans', 'Myriad Pro', Verdana, Geneva, sans-serif;
        color: #4f7dc1;
        /* transform: translateY(-180%); */
        transform: translateY(-4.5rem);


    }

    .subscribe.step1 .option_box .option.crystal::before {
        content: "單次制";
    }

    .subscribe.step1 .option,
    .subscribe.step2 .left_block .option {
        border: none;
        outline: var(--border-wt-style);
        outline-offset: -5px;
        /* 微調負值做「內縮」 */
        position: relative;
        overflow: visible;
        filter: drop-shadow(var(--box-shadow-light));
        transition: all 0.3s ease;
    }
  .subscribe.step1 .option.selected {
        outline: var(--option-border) var(--option-border-color) solid;
    }
    .subscribe.step1 .option.crystal.selected {
        outline: var(--option-border) var(--option-border-color-crystal) solid;
    }
}


.subscribe.step2 .left_block .option {
    justify-content: center;
}

.subscribe.step2 .left_block {
    aspect-ratio: unset !important;
    width: 28%;
}

.subscribe .option .plan {
    width: 100%;
    width: clamp(130px, 15vw, 190px);
    aspect-ratio: 325/318;
    margin: calc(var(--block-margins-s) * 0.8) calc(var(--block-margins-s) * 0.8) calc(var(--block-margins-s) * 0.7);
}

.subscribe .option .plan img {
    width: 100%;
}

.subscribe .banner_box {
    width: 80%;
    display: flex;
    justify-content: center;
    gap: 4%;
    margin: var(--block-margins-s) auto 0;
}

.subscribe .banner_box div {
    margin-top: var(--block-margins-s);
}

.subscribe .banner_box img {
    width: 100%;
}

.subscribe .option .price {
    margin: 4% auto 4%;
    display: flex;
    justify-content: center;
    gap: calc(var(--block-margins-ss)*0.8);
    flex-wrap: wrap;
    min-height: 3rem;
    line-height: 1;
}

.subscribe .option .price.crystal {
    margin: 0 auto 0;
    min-height: unset;
}

.subscribe .option.crystal .price {
   line-height: 1.1;
   flex-wrap: wrap;
}
.subscribe .option.crystal .bottom_box .price .title {
    width: 100%;
}

/* .subscribe .option .price .original{
  padding-right: calc( var(--block-margins-ss)*0.6);
} */
.subscribe .option .price>.original span {
    text-decoration: line-through;
    color: var(--gray02);
    font-weight: 400;
    font-size: calc(var(--price-size) * 0.8);
}

.subscribe .option .price>.sale span,
.subscribe .option .price {
    color: var(--gray01);
    font-weight: 700;
    font-size: var(--price-size);
}

.subscribe.step1 .option.crystal .price .crystal::before {
    content: "";
    display: inline-block;
    width: clamp(0.9rem, 1.25vw, 1.25rem);
    aspect-ratio: 155/200;
    background: url("../store/images/common/crystal.png") no-repeat center / contain;
    margin-right: 5px;
    vertical-align: middle;
    transform: translateY(-0.15rem);
}

body.crystal.subscribe .option .price span:nth-child(1) {
    padding: 0;
}

/* 選中方案 */
.subscribe .option.selected {
    border-color: #decfa6;
}

/* 水晶方案 + 選中 */
.subscribe .option.crystal.selected {
    border-color: #b5ccee;
}

/*按鈕設定*/

.subscribe .btn_box {
    gap: var(--block-margins-s);
}

.subscribe main .all .content .btn_box .btn.crystal {
    background: var(--blue-gradient);
    display: none;
}

/*推薦碼區塊*/
.subscribe .code_block .content {
    width: auto;
    padding: 2.5% 3%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin: 0 auto;
}

.subscribe .code_block .content input[type="text"] {
    width: 45%;
    text-align: left;
    /* min-width: 250px; */
    font-size: var(--normal-option-size);
    margin: 0;
    padding: 0.5rem;
    color: #333;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.subscribe .code_block .button.s {
    width: fit-content;
    margin: 0 0 0 .5rem;
    padding: .2rem .4rem;
    background: linear-gradient(to bottom, #f1f1f1 1%, #d7d7d7 100%);
    font-size: clamp(15px, 1.5vw, 17px);
    font-weight: initial;
    color: var(--basic-gray);
    text-align: center;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: pointer;
    white-space: nowrap;
}

.code_block .info {
    width: fit-content;
    margin-left: .5rem;
    padding-top: .25rem;
    white-space: nowrap;
    display: flex;
    line-height: 1.2;
}

.code_block .error {
    color: #af3939;
}

.code_block .ok {
    color: #1272d1;
}

@media (max-width: 900px) {
    .subscribe .option .price {
        flex-wrap: wrap;
        gap: 0;
        min-height: 3.4rem;
        justify-content: center;
        align-items: center;
    }

    .subscribe .option .price>div {
        width: 100%;
        line-height: 1.3;
    }
}

@media (max-width: 850px) {
    .subscribe.step1 .left_block>.option {
        margin: 0.5%;
    }

    .crystal.step2 .left_block>.option {
        width: 100%;
        max-width: 200px;
    }

    .subscribe.step1 .option {
        margin: 0;
    }
}

/*啟動操作區模式*/

@media (max-width: 767px) {
    
:root {
        --price-size: clamp(1.1rem, 1.6vw, 1.6rem);
    }

    .subscribe .banner_box {
        width: 80%;
    }

    .subscribe .option .plan {
        width: clamp(140px, 21vw, 200px);
        margin: var(--block-margins-s) auto 0;
    }

    .subscribe.step1 .option {
        /* width: clamp(180px, 30vw, 230px); */
        /* min-width: 100px; */
        margin-bottom: calc(var(--block-margins-s) * 0.8);
    }

    .subscribe .banner_box {
        flex-wrap: wrap;
    }

    .subscribe .option{
        border: var(--border-wt-style);
    }
    .subscribe .option:hover {
          border-color: #decfa6;
    }
    .subscribe .option.crystal:hover {
          border-color: #b5ccee;
    }

    .subscribe.step1 .option {
        margin: 0;
    }

    .subscribe .option .plan {
        width: 150px;
    }

    /*類別標示*/
    body.subscribe {
        overflow-x: hidden;
    }

    .subscribe.step1 .type_box .pc {
        display: none;
    }

    .subscribe.step1 .type_box .mobile {
        width: auto;
        display: inline-flex;
        gap: 1rem;
    }

    .subscribe.step1 .option_box {
        gap: 1rem;
    }

    .subscribe.step1 .option_box {
        flex-wrap: nowrap;
    }

    .subscribe.step1 .wipe_box {
        width: 100%;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding: 0.5rem;
        -webkit-overflow-scrolling: touch;
        padding-right: 20px;
        /* 留出陰影顯示空間 */
        box-sizing: content-box;
        /* 確保 padding 不壓縮內部寬度 */
    }

    .subscribe.step1 .option_box::after {
        content: "";
        position: relative;
        height: 100px;
        display: block;
        flex: 0 0 20px;
        /* 空出20px緩衝 */
    }

    .subscribe.step1 .type_box .mobile>div,
    .subscribe.step1 .option_box .option {
        min-width: 200px;
    }

    /* 隱藏滾動條 */
    .subscribe.step1 .wipe_box::-webkit-scrollbar {
        display: none;
    }

    /*重設文字尺寸*/
    body.subscribe .option .price span:nth-child(1) {
        font-size: 1.2rem;
    }

    /*操作區*/
    .subscribe .product_operation {
        width: 100%;
        margin-bottom: var(--block-margins-s);
        padding: 1rem;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        left: 0;
        z-index: 99;
    }

    .page_nav {
        width: 60%;
        display: flex;
        justify-content: center;
    }

    .page_nav li {
        width: clamp(14px, 2vw, 16px);
        aspect-ratio: 1/1.3;
        margin: 0 2.3vw;
        background: #ccc;
        cursor: pointer;
        position: relative;
        z-index: 3;
        transform: scaleX(1);
        clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%);
    }

    .page_nav li i {
        width: 100%;
        height: 100%;
        display: block;
        background: linear-gradient(145deg, #d5ad40 10%, #997208 100%);
        opacity: 0;
        transition: 0.2s ease;
    }

    .page_nav li:nth-last-child(-n+2) i {
        background: linear-gradient(145deg, #408bd5 10%, #084599 100%);
    }

    .page_nav li.active i {
        opacity: 1;
    }

    .page_control {
        width: 90%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        /* height: 32px; */
        position: absolute;
        top: 50%;
        left: 50%;
        z-index: 1;
        transform: translateY(-50%) translateX(-50%);
    }

    .page_control li.disable {
        opacity: 0.2;
        pointer-events: none;
    }

    .page_control li {
        width: clamp(30px, 9vw, 46px);
        aspect-ratio: 1/1;
        display: flex;
        justify-content: center;
        align-items: center;
        cursor: pointer;
    }

    .page_control li i {
        width: 100%;
        height: 100%;
        background-color: var(--gray02);
        mask-image: url(../images/pre_order/arrow.svg);
        mask-size: 100% 100%;
        font-size: 0;
        line-height: 0;
        transition: all 0.3s ease;
    }

    .page_control li.prev i {
        transform: scale(-1);
    }
}

@media (max-width: 480px) {

    .subscribe .option .bottom_box {
        padding: 0;
    }
}

@media (max-width: 430px) {
    .subscribe .code_block .content input[type="text"] {
        flex: 1 1 auto;
    }

    .code_block .info {
        width: 100%;
        display: flex;
        text-align: left;
    }

    .code_block .info span {
        width: fit-content;
    }
}

@media (max-width: 300px) {
    .subscribe .banner_box {
        width: 100%;
    }

    .subscribe .banner_box div {
        margin-top: 0
    }

    .subscribe .banner_box div:first-child {
        margin-top: var(--block-margins-s);
    }
    .subscribe .option .plan {
        width: clamp(80px, 48vw, 170px);
    }

    .subscribe.step1 .option {
        width: clamp(120px, 70vw, 200px);
    }

}