/* Sakreaが独自にカスタムしたスタイル */

@font-face {
    font-family: "Libre Baskerville";
    src: url("../fonts/Libre_Baskerville/LibreBaskerville-VariableFont_wght.ttf") format("woff2");
    font-weight: 400;
    font-display: swap;
}


/* ========================================
   FVカルーセルの調整
======================================== */
.sakrea-slick-img {
    aspect-ratio: 3 / 2;
    object-fit: cover;
}


/* ========================================
   商品一覧画像の調整
======================================== */
.sakrea-product-list-img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}


/* ========================================
   ページ上部張り付きメッセージスタイル
======================================== */
.valentine-countdown {
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 25.5px;
    color: #4A2311;
    font-size: .75em;
    font-weight: 500;
    text-align: center;
    background: #D4AF37;
    z-index: 9999;
    /* transition: transform 0.3s ease; */
}

.valentine-countdown .countdown-days {
    font-size: 1.25em;
    margin: 0 0 0 2px;
}

/* .valentine-countdown.is-hidden {
  transform: translateY(-100%);
} */

/* ========================================
   商品詳細ページの調整
======================================== */
/* --------------- 既存スタイル打消し --------------- */
#page_product_detail .ec-layoutRole .ec-layoutRole__contents {
    max-width: initial;
}

#page_product_detail .ec-productRole {
    padding-right: 0;
    padding-left: 0;
    max-width: initial;
}

#page_product_detail .ec-productRole .ec-productRole__category {
    max-width: 1130px;
    padding-inline: 20px;
    margin-inline: auto;
}

#page_product_detail .ec-grid2 {
    max-width: 1130px;
    padding: 0 20px;
    margin-inline: auto;
}

#page_product_detail .ec-layoutRole .ec-layoutRole__main {
    padding-bottom: 0;
}

#page_product_detail .ec-footerRole {
    margin-top: 0;
}


/* --------------- 既存PDPトップ画像調整 --------------- */
@media screen and (max-width: 767px) {
    #page_product_detail .ec-productRole .slide-item img {
        aspect-ratio: 1;
    }
}


/* --------------- 商品詳細ページスタイル --------------- */
:where(section, [id]) {
    scroll-margin-top: 168px;
}

.p-detail_upper-sakrea,
.chocolabo-concept-sakrea,
.p-detail_lower-sakrea {
    --brand-color: #7c0022;
    --black-color: #222222;
    --white-color: #FFFFFF;
    --radius: 10px;
    --box-shadow: 1px 2px 6px 0 rgba(51, 51, 51, 0.08);
    line-height: 170%;
    counter-reset: step;
}

:is(.p-detail_upper-sakrea, .chocolabo-concept-sakrea, .p-detail_lower-sakrea) .inner-small {
    width: 686px;
    margin-inline: auto;
}

:is(.p-detail_upper-sakrea, .chocolabo-concept-sakrea, .p-detail_lower-sakrea) .inner-medium {
    width: 800px;
    margin-inline: auto;
}

:is(.p-detail_upper-sakrea, .chocolabo-concept-sakrea, .p-detail_lower-sakrea) .inner-large {
    width: 1024px;
    margin-inline: auto;
}

.p-detail_upper-sakrea h3 {
    margin-bottom: 34px;
}

.p-detail_upper-sakrea .p-top-detail {
    margin: 0 0 100px 0;
}

.p-detail_upper-sakrea .p-top-detail .wrapper {
    display: flex;
    justify-content: center;
    gap: 0 64px;
    margin: 0 0 65px 0;
}

.p-detail_upper-sakrea .p-top-detail .wrapper .left {
    flex: 5.5;
}

.p-detail_upper-sakrea .p-top-detail .wrapper .left p::first-letter {
    color: var(--brand-color);
    font-size: 2em;
    letter-spacing: -.05em;
}

.p-detail_upper-sakrea .p-top-detail .wrapper .right {
    flex: 4.5;
}

.p-detail_upper-sakrea .p-top-detail .wrapper .right .badges {
    display: flex;
    flex-direction: column;
    gap: 14px 0;
    padding-left: 0;
}

.p-detail_upper-sakrea .p-top-detail .wrapper .right .badges .badge-icon.badge--cool {
    --badge-border-color: #E3E8EE;
    --badge-text-color: #243447;
}
.p-detail_upper-sakrea .p-top-detail .wrapper .right .badges .badge-icon.badge--noshi {
    --badge-border-color: #F1E6E9;
    --badge-text-color: #7C0022;
}
.p-detail_upper-sakrea .p-top-detail .wrapper .right .badges .badge-icon.badge--bag {
    --badge-border-color: #E1EEE8;
    --badge-text-color: #2F5D4E;
}

.p-detail_upper-sakrea .p-top-detail .wrapper .right .badges .badge-icon {
    display: flex;
    align-items: center;
    gap: 0 16px;
    color: var(--badge-text-color);
    background: var(--white-color);
    border-radius: var(--radius);
    /* border: 2px solid var(--badge-border-color); */
    box-shadow: var(--box-shadow);
    padding: 18px 24px;
    list-style: none;
}

.p-detail_upper-sakrea .p-top-detail .wrapper .right .badges .badge-icon .icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    background: var(--badge-border-color);
    border-radius: 50%;
}

.p-detail_upper-sakrea .p-top-detail .info {
    background: var(--white-color);
    border-radius: var(--radius);
    padding: 26px 50px;
}

.p-detail_upper-sakrea .p-top-detail .info dl {
    display: flex;
    flex-direction: column;
    gap: 4px 0;
    font-size: .875em;
    margin-bottom: 0;
}

.p-detail_upper-sakrea .p-top-detail .info dl div {
    display: flex;
}

.p-detail_upper-sakrea .p-top-detail .info dl div dt {
    flex-shrink: 0;
    width: 8em;
    font-weight: initial;
}

.p-detail_upper-sakrea .p-top-detail .info dl dd {
    margin-bottom: 0;
}

.p-detail_upper-sakrea .p-top-nav {
    margin: 0 0 100px 0;
}

.p-detail_upper-sakrea .p-top-nav ul {
    display: flex;
    justify-content: center;
    list-style: none;
    padding-left: 0;
}

.p-detail_upper-sakrea .p-top-nav ul li {
    flex: 1;
}

.p-detail_upper-sakrea .p-top-nav ul .nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.p-detail_upper-sakrea .p-top-nav ul .nav-btn .icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--brand-color);
    margin: 0 0 3px 0;
}

.p-detail_upper-sakrea .p-top-nav ul .nav-btn .text {
    margin: 0 0 14px 0;
}

:is(.p-detail_upper-sakrea, .p-detail_lower-sakrea) .p-detail-sec h4 {
    color: var(--black-color);
    font-size: 1.125em;
    margin: 0 0 25px 0;
}

:is(.p-detail_upper-sakrea, .p-detail_lower-sakrea) .p-detail-sec:nth-of-type(2n+1) h4 {
    text-align: center;
    padding: 0 0 64px 0;
    background: var(--h4-deco-illust);
}

:is(.p-detail_upper-sakrea, .p-detail_lower-sakrea) .p-detail-sec:nth-of-type(2n) h4 {
    padding: 0 0 0 50px;
    background: var(--h4-deco-illust);
}

.p-detail_upper-sakrea .p-detail-sec h4 span {
    color: var(--brand-color);
    font-size: 1.125em;
    font-weight: 500;
}

.p-detail_upper-sakrea .p-detail-sec .number-deco {
    position: relative;
    z-index: 0;
    counter-increment: step;
}

.p-detail_upper-sakrea .p-detail-sec:nth-of-type(2n+1) .number-deco::before,
.p-detail_upper-sakrea .p-detail-sec:nth-of-type(2n) .number-deco::before {
    content: counter(step, decimal-leading-zero);
    position: absolute;
    color: rgba(36, 52, 71, .05);
    font-size: 6em;
    font-family: "Libre Baskerville", Georgia, serif;
    font-variant-numeric: lining-nums;
    letter-spacing: -.04em;
    z-index: -1;
}

.p-detail_upper-sakrea .p-detail-sec:nth-of-type(2n+1) .number-deco::before {
    left: -86px;
    top: -20px;
}

.p-detail_upper-sakrea .p-detail-sec:nth-of-type(2n) .number-deco::before {
    right: -50px;
    top: 24px;
}

.p-detail_upper-sakrea .p-material {
    --h4-deco-illust: url(../img/branding/product-detail-deco-icon-1.webp) no-repeat center bottom / 28px 42px;
    background: var(--white-color);
    padding: 65px 0 65px 0;
}

.p-detail_upper-sakrea .p-material .number-deco {
    margin: 0 0 25px 0;
    position: relative;
}

.p-detail_upper-sakrea .p-material figure {
    text-align: center;
    margin: 0;
}

.p-detail_upper-sakrea .p-material figure img {
    box-shadow: var(--box-shadow);
    border-radius: var(--radius);
}

.p-detail_upper-sakrea .p-process {
    --h4-deco-illust: url(../img/branding/product-detail-deco-icon-2.webp) no-repeat left center / 25px 23px;
    background: #F2F4F7;
    padding: 65px 0 65px 0;
}

.p-detail_upper-sakrea .p-process .wrapper {
    display: flex;
    justify-content: center;
    gap: 0 80px;
}

.p-detail_upper-sakrea .p-process .wrapper .left {
    flex: 1;
}

.p-detail_upper-sakrea .p-process .wrapper .right {
    flex: 1;
    padding: 54px 0 0 0;
}

.p-detail_upper-sakrea .p-process .wrapper .right img {
    border-radius: var(--radius);
    box-shadow: var(--box-shadow);
}

.p-detail_upper-sakrea .p-package {
    --h4-deco-illust: url(../img/branding/product-detail-deco-icon-3.webp) no-repeat center bottom / 27.9px 36.49px;
    padding: 65px 0 65px 0;
}

.p-detail_upper-sakrea .p-package .number-deco {
    margin: 0 0 60px 0;
}

.p-detail_upper-sakrea .p-package .package-images {
    display: flex;
    justify-content: center;
    gap: 0 50px;
    margin: 0;
}

.p-detail_upper-sakrea .p-package .package-images img {
    flex-grow: 1;
    width: calc((100% - 50px * 2) / 3);
    aspect-ratio: 1.15 / 1;
    border-radius: var(--radius);
    box-shadow: var(--box-shadow);
    object-fit: cover;
}

.p-detail_upper-sakrea .p-staff {
    --h4-deco-illust: url(../img/branding/product-detail-deco-icon-4.webp) no-repeat left center / 38px 37px;
    background: var(--white-color);
    padding: 65px 0 65px 0;
}

.p-detail_upper-sakrea .p-staff h4 {
    padding: 5px 0 5px 50px !important;
}

.p-detail_upper-sakrea .p-staff .wrapper {
    display: flex;
    justify-content: center;
    gap: 0 80px;
}

.p-detail_upper-sakrea .p-staff .wrapper .left {
    flex: 1;
}

.p-detail_upper-sakrea .p-staff .wrapper .left .name {
    color: var(--black-color);
    background: url(../img/branding/underline-decoration-illust.webp) no-repeat center bottom / contain;
    padding: 0 0 5px 0;
    margin: 0 0 20px 0;
}

.p-detail_upper-sakrea .p-staff .wrapper .left .name span:first-child {
    margin: 0 1em 0 0;
}

.p-detail_upper-sakrea .p-staff .wrapper .right {
    flex: 1;
    padding: 54px 0 0 0;
}

.p-detail_upper-sakrea .p-staff .wrapper .right img {
    border-radius: var(--radius);
    box-shadow: var(--box-shadow);
    object-fit: cover;
}

.p-separator-sakrea {
    margin: 0;
    width: 100%;
    height: 300px;
}

.p-separator-sakrea img {
    height: 100%;
    object-fit: cover;
}

.p-detail_lower-sakrea {
    --h4-deco-illust: url(../img/branding/product-detail-deco-icon-5.webp) no-repeat center bottom / 17px 26px;
    background: var(--white-color);
    padding: 100px 0 150px 0;
}

.p-detail_lower-sakrea h4 {
    margin: 0 0 50px 0;
}

.p-detail_lower-sakrea dl {
    display: flex;
    flex-direction: column;
    gap: 40px 0;
    font-size: .875em;
}

.p-detail_lower-sakrea dt {
    font-weight: 700;
    margin: 0 0 5px 0;
}

.p-detail_lower-sakrea dd {
    line-height: 170%;
    margin-bottom: 0;
}

/* responsive */
@media screen and (max-width: 767px) {
    :where(section, [id]) {
        scroll-margin-top: 88px;
    }
}
@media screen and (max-width: 1023px) {
    .p-detail_upper-sakrea, .chocolabo-concept-sakrea, .p-detail_lower-sakrea {
        line-height: 180%;
    }
    .p-detail_upper-sakrea h3 {
        margin-top: 64px;
    }
    :is(.p-detail_upper-sakrea, .chocolabo-concept-sakrea, .p-detail_lower-sakrea) .inner-large {
        width: 92%;
    }
    :is(.p-detail_upper-sakrea, .chocolabo-concept-sakrea, .p-detail_lower-sakrea) .inner-medium {
        width: 92%;
    }
    :is(.p-detail_upper-sakrea, .chocolabo-concept-sakrea, .p-detail_lower-sakrea) .inner-small {
        width: 92%;
    }
    .p-detail_upper-sakrea .p-top-detail {
        margin: 0 0 80px 0;
    }
    .p-detail_upper-sakrea .p-top-detail .wrapper {
        gap: 40px 0;
        flex-direction: column;
        margin: 0 0 50px 0;
    }
    .p-detail_upper-sakrea .p-top-detail .wrapper .right .badges .badge-icon {
        font-size: .875em;
    }
    .p-detail_upper-sakrea .p-top-detail .info.inner-small {
        width: 100%;
        padding: 22px 30px;
    }
    .p-detail_upper-sakrea .p-top-detail .info dl {
        gap: 18px 0;
    }
    .p-detail_upper-sakrea .p-top-detail .info dl div {
        flex-direction: column;
        gap: 3px 0;
    }
    .p-detail_upper-sakrea .p-top-detail .info dl div dt {
        font-weight: 700;
    }
    .p-detail_upper-sakrea .p-top-nav {
        margin: 0 0 80px 0;
    }
    .p-detail_upper-sakrea .p-top-nav ul {
        gap: 20px 0;
        flex-direction: column;
        width: 85%;
        margin-inline: auto;
        position: relative;
    }
    .p-detail_upper-sakrea .p-top-nav ul li:not(:last-child) {
        flex: initial;
        border-bottom: 2px solid #F1E6E9;
        padding: 0 5px 18px 0;
    }
    .p-detail_upper-sakrea .p-top-nav ul .nav-btn {
        justify-content: flex-start;
        gap: 0 6px;
        flex-direction: row;
    }
    .p-detail_upper-sakrea .p-top-nav ul .nav-btn .icon {
        width: 30px;
        height: 30px;
        margin: 0;
    }
    .p-detail_upper-sakrea .p-top-nav ul .nav-btn .icon svg {
        width: 16px;
    }
    .p-detail_upper-sakrea .p-top-nav ul .nav-btn .text {
        margin: 0;
    }
    .p-detail_upper-sakrea .p-top-nav ul .nav-btn > svg {
        position: absolute;
        right: 4%;
        width: 14px;
    }
    .p-detail_upper-sakrea .p-material,
    .p-detail_upper-sakrea .p-package,
    .p-detail_upper-sakrea .p-process,
    .p-detail_upper-sakrea .p-staff {
        padding: 48px 0 48px 0;
    }
    .p-detail_upper-sakrea .p-detail-sec:nth-of-type(2n+1) .number-deco::before {
        left: 0;
        top: -20px;
    }
    .p-detail_upper-sakrea .p-process .wrapper,
    .p-detail_upper-sakrea .p-staff .wrapper {
        flex-direction: column;
    }
    .p-detail_upper-sakrea .p-process .wrapper .left,
    .p-detail_upper-sakrea .p-staff .wrapper .left {
        display: contents;
    }
    :is(.p-detail_upper-sakrea, .p-detail_lower-sakrea) .p-detail-sec:nth-of-type(2n) h4 {
        order: 1;
    }
    :is(.p-detail_upper-sakrea, .p-detail_lower-sakrea) .p-detail-sec:nth-of-type(2n) p {
        order: 3;
    }
    .p-detail_upper-sakrea .p-staff .wrapper .right,
    .p-detail_upper-sakrea .p-process .wrapper .right {
        order: 2;
        padding: 0 0 25px 0;
    }
    .p-detail_upper-sakrea .p-detail-sec:nth-of-type(2n) .number-deco::before {
        right: 0;
        top: initial;
        bottom: -32px;
    }
    .p-detail_upper-sakrea .p-package .number-deco {
        margin: 0 0 25px 0;
    }
    .p-detail_upper-sakrea .p-package .package-images {
        gap: 25px 0;
        flex-wrap: wrap;
    }
    .p-detail_upper-sakrea .p-package .package-images img {
        width: 80%;
    }
    .p-detail_upper-sakrea .p-staff .wrapper .left .name {
        order: 3;
        padding: 10px 0 5px 0;
    }
    .p-detail_upper-sakrea .p-staff.p-detail-sec p {
        order: 4;
    }
    .p-detail_upper-sakrea .p-staff.p-detail-sec .number-deco::before {
        bottom: -92px;
    }
    .p-separator-sakrea {
        height: 350px;
    }
    .p-detail_lower-sakrea {
        padding: 65px 0 100px 0;
    }
    .p-detail_lower-sakrea dl {
        width: 85%;
        margin-inline: auto;
    }
    .p-detail_lower-sakrea dd {
        line-height: 180%;
    }
}


/* --------------- 商品詳細ページ内のブランディングエリアスタイル --------------- */
.chocolabo-concept-sakrea {
    background: url(../img/branding/branding-area-bg.webp) repeat-y center / contain;
    padding: 100px 0 150px 0;    
}

.chocolabo-concept-sakrea figure {
    margin: 0;
}

.chocolabo-concept-sakrea .catch-copy-area {
    margin: 0 auto 65px auto;
}

.chocolabo-concept-sakrea .concept-card {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 85px;
    background: var(--white-color);
    border-radius: var(--radius);
    border: 2px solid #F1E6E9;
    box-shadow: var(--box-shadow);
    padding: 68px 112px;
}

.chocolabo-concept-sakrea .concept-card:nth-of-type(2n) {
    flex-direction: row-reverse;
}

.chocolabo-concept-sakrea .concept-card:not(:last-child) {
    margin: 0 0 65px 0;
}

.chocolabo-concept-sakrea .concept-card .left {
    flex: 2.2;
}

.chocolabo-concept-sakrea .concept-card .left hgroup {
    margin: 0 0 35px 0;
}

.chocolabo-concept-sakrea .concept-card .left hgroup h4 {
    display: inline-block;
    color: var(--white-color);
    font-size: .875em;
    background: var(--brand-color);
    border-radius: var(--radius);
    padding: 7px 22px;
    margin: 0 0 10px 0;
}

.chocolabo-concept-sakrea .concept-card .left hgroup p {
    color: var(--brand-color);
    font-size: 1.125em;
}

.chocolabo-concept-sakrea .concept-card .left .description:not(:last-child) {
    margin: 0 0 1.5em 0;
}

.chocolabo-concept-sakrea .concept-card .right {
    flex: 1;
    aspect-ratio: 1;
    border-radius: 50%;
    overflow: hidden;
}

.chocolabo-concept-sakrea .concept-card .right img {
    height: 100%;
    object-fit: cover;
}

/* responsive */
@media screen and (max-width: 1023px) {
    .chocolabo-concept-sakrea {
        padding: 50px 0 50px 0;
    }
    .chocolabo-concept-sakrea .catch-copy-area {
        width: 100%;
        margin: 0 auto 50px auto;
    }
    .chocolabo-concept-sakrea .concept-card {
        gap: 0;
        flex-direction: column;
        padding: 40px 24px;
    }
    .chocolabo-concept-sakrea .concept-card .left hgroup {
        order: 1;
        margin: 0 0 15px 0;
    }
    .chocolabo-concept-sakrea .concept-card .left .description:first-of-type {
        order: 3;
    }
    .chocolabo-concept-sakrea .concept-card .left .description:not(:last-child) {
        order: 4;
        margin: 0 0 1em 0;
    }
    .chocolabo-concept-sakrea .concept-card .left .description:last-of-type {
        order: 5;
    }
    .chocolabo-concept-sakrea .concept-card:nth-of-type(2n) {
        flex-direction: column;
    }
    .chocolabo-concept-sakrea .concept-card .left {
        display: contents;
    }
    .chocolabo-concept-sakrea .concept-card .right {
        order: 2;
        width: 63%;
        margin: 0 0 15px 0;
    }
}