/* カラー
・ロゴ、キーカラー：#e8003a
#5B8ECB
・キーカラーのhover：#FF4D4D
・キーカラー（50％）：#F89186
#8bb3d9
・キーカラー（10％）：#FEE9E6
#DCE8F4
・キーカラー（ 5％）：#FEF4F3
・グレー（濃）、濃いグレー文字：#3B464A
・グレー（中）、薄い文字：#808080
・グレー（薄）、ボーダー：#ddd
・暖色グレー（特濃）：#CAC0B5
・暖色グレー（濃）：#EBE6E2
・暖色グレー（中）：#f0f4f8
・暖色グレー（薄）：#FAF9F8
・テキスト：#282828
・リンク：#2161A5
・リンク（hover）：#0C3358
*/

/* フォント */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700&display=swap');

body {
    overflow-x: hidden;
}

body * {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

/* デバックモードの赤い帯を非表示 */
.ec-debugModeAlert {
    display: none;
}

.ec-debugModeAlert+* {
    margin-top: 0px !important;
}

/* スマホ */
.ec-drawerRole {
    background-color: #3B464A;
}

.ec-drawerRole .ec-headerLinkArea {
    background-color: #3B464A;
}

.ec-drawerRole .input-group-append button {
    background-color: #e8003a !important;
}

.ec-drawerRole .ec-headerLink__list i {
    color: #EBE6E2 !important;
}

.ec-drawerRole .ec-headerCategoryArea * {
    color: #3B464A !important;
}

/* アコーディオン 共通 */
.accordion-content {
    display: none;
}

.accordion-toggle {
    cursor: pointer;
    display: inline-block;
}

/* 共通 */
.b {
    font-weight: bold;
}

.highlight {
    color: #e8003a;
}

.t-c {
    text-align: center;
}

.no-wrap {
    white-space: nowrap !important;
}

.m-t-0 {
    margin-top: 0px !important;
}

.m-t-1em {
    margin-top: 1em;
}

.f-w-n * {
    font-weight: normal !important;
}

.l-f-w-n li {
    font-weight: normal !important;
}

.bdc-dark {
    border-color: #3B464A;
}

.l-m-t-075 {
    margin-top: 0.75em !important;
}

.ec-errorMessage {
    color: #e8003a !important;
}

.ec-blockBtn--action {
    border-radius: 1000px !important;
}

@media only screen and (max-width: 768px) {
    .ec-blockBtn--action {
        margin-bottom: 3em !important;
    }
}

.ec-color-red {
    color: #e8003a !important;
}

/* ヘッダー */
.ec-headerNavSP {
    box-shadow: 0px 0px 15px -5px #ccc;
}

.koushin {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    color: #808080;
    font-size: 0.95em;
}

@media only screen and (max-width: 768px) {
    .koushin {
        margin-top: 4em;
        margin-bottom: 4em;
    }
}

@media only screen and (max-width: 768px) {
    .front_page .koushin {
        margin-top: 1.8em;
        margin-bottom: 1.8em;
        text-align: right;
    }
}

.block-header {
    background-color: #fff;
}

@media only screen and (max-width: 768px) {
    .block-header {
        padding-bottom: 1.5em;
    }
}

.block-header .py-5 {
    padding-top: 1em !important;
    padding-bottom: 1em !important;
}

.page-top-copy {
    margin-bottom: 1.5em;
    color: #808080;
}

.logo-desc {
    margin-bottom: 0.5em;
    color: #3B464A;
}

.block-heasder__logo img {
    filter: invert(8%) sepia(15%) saturate(8%) hue-rotate(332deg) brightness(94%) contrast(84%);
}

.input-group-append button {
    background-color: #3B464A !important;
}

.input-group-append button:hover {
    background-color: #e8003a !important;
    color: #fff;
}

.input-group-append button .feather-searc:hover {
    color: #3B464A !important;
}

.c-gray-b,
.feather-user,
.feather-shopping-cart,
.feather-heart {
    color: #3B464A;
}

.feather-user:hover,
.feather-shopping-cart:hover,
.feather-heart:hover {
    color: #e8003a;
}

.bgc-key {
    background-color: #e8003a;
}

/* グローバルメニュー */
nav.headnav a {
    color: #3B464A;
    font-weight: bold;
    font-size: 16px;
}

nav.headnav a:hover {
    color: #e8003a;
}

.bgc-dark-b {
    background-color: #fff;
}

.headnav a.py-4 {
    padding-top: 0.75em !important;
    padding-bottom: 1.25em !important;
}

/* パンくずリスト */
.breadcrumbs {
    margin-top: 1.5em;
}

.breadcrumbs,
.breadcrumbs li a {
    color: #808080;
}

.breadcrumbs li a:hover {
    text-decoration: underline;
}

/* サイドメニュー */
.section_header {
    border: none;
}

.section_header div {
    border-color: #808080 !important;
}

.side-menu-title {
    font-weight: bold;
    color: #3B464A;
}

.side-menu-list {
    border-color: #fff;
    border-radius: 8px;
}

.side-menu-list li a {
    font-size: 1.2em;
    color: #3B464A;
}

/* top-slider */
.top-slider .block-slide1 a {
    display: block;
    text-decoration: none;
    color: inherit;
}

.top-slider .block-slide1 img {
    display: block;
    width: 100%;
    height: auto;
}

.slick-dots li button:before {
    color: #8bb3d9;
    font-size: 40px !important;
}

.slick-dots li.slick-active button:before {
    color: #5B8ECB;
    font-size: 40px !important;
}

/* セクション共通スタイル */
.sec-common h1 {
    margin-bottom: 1.25em !important;
    text-align: left;
    font-weight: bold;
    font-size: 2em !important;
    color: #3B464A;
    line-height: 1.5em;
}

.sec-common h2 {
    padding-top: 1.5em;
    padding-bottom: 1em;
    text-align: left;
    font-weight: bold;
    font-size: 1.8em !important;
    color: #3B464A;
    line-height: 1.5em;
}

.sec-common h3 {
    margin-bottom: 1.25em !important;
    text-align: left;
    font-weight: bold;
    font-size: 1.6em !important;
    color: #3B464A;
    line-height: 1.5em;
}

.sec-common p {
    margin-bottom: 2em;
    font-size: 1.25em;
    line-height: 1.75em;
    color: #282828;
}

.sec-common .img-box {
    margin-top: 0px;
    margin-bottom: 0px;
    border-radius: 8px;
    text-align: center;
}

/* front_page */
#page_homepage .sec-common h1 {
    padding: 1em;
    background-color: #f0f4f8;
    border-radius: 8px;
}

#page_homepage .top-staff {
    padding: 1em;
    border-radius: 8px;
}

#page_homepage .top-desc-p {
    margin-bottom: 4em;
    border-radius: 8px;
    background-color: #fff;
}

#page_homepage .top-desc-p div {
    padding-top: 2em;
}

#page_homepage .top-desc-p img {
    width: 94%;
    border: 1px solid #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

#page_homepage .top-desc-p p {
    padding: 1.5em 1.75em 1.75em 1.75em;
}

@media screen and (max-width: 768px) {
    #page_homepage .top-desc-p p {
        padding: 1.5em 1em 1.5em 1em;
    }
}

#page_homepage .sec-common h2 {
    margin-bottom: 1.5em !important;
    padding: 1em;
    background-color: #f0f4f8;
    border-radius: 8px;
    color: #3B464A;
}

#page_homepage .slick-slide img {
    border-radius: 0px;
}

/* YouTube */
#page_homepage .video-wrapper {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    /* 16:9 aspect ratio */
    overflow: hidden;
    margin-bottom: 1.5rem;
}

#page_homepage .video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* top-desc-box */
.top-desc-box {
    color: #3B464A;
}

.top-desc-box span {
    display: inline-block;
    margin: 1em 0.5em 0px 0px;
    padding: 4px 8px;
    border-radius: 4px;
    background-color: #e8003a;
    font-size: 1em;
    color: #fff;
    font-weight: bold;
}

/* top-new-item */
.top-new-item .img-fluid {
    border: 1px solid #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.top-new-item .img-fluid:hover {
    border: 1px solid #e8003a;
}

.top-new-item .item-cate-list {
    margin-left: 0px !important;
    margin-bottom: 0.2em !important;
}

.top-new-item .item-cate-list a {
    border: 1px solid #3B464A;
    background-color: #3B464A;
    border-radius: 4px;
    font-size: 0.9em !important;
}

.top-new-item .item-cate-list a:hover {
    background-color: #fff;
    border: 1px solid #3B464A;
    color: #3B464A;
}

.top-new-item .item-tag {
    color: #3B464A;
}

.top-new-item .item-tag span {
    padding: 0px 4px 2px 4px;
    border: 1px solid #3B464A;
    border-radius: 4px;
    font-size: 0.9em;
    color: #3B464A;
}

.top-new-item .item-title {
    margin-top: 0.5em !important;
    font-size: 1.5em;
    font-weight: bold;
    line-height: 1.25em;
}

.top-new-item .item-title a {
    color: #282828;
}

.top-new-item .item-title a:hover {
    text-decoration: underline;
}

.top-new-item .item-price {
    margin-top: 0px !important;
    ;
    color: #e8003a;
    font-size: 1.5em;
    font-weight: bold;
}

.top-new-item .item-price-desc {
    margin-top: 0.1em;
    margin-bottom: 0.1em;
    color: #808080;
    font-size: 0.9em;
    line-height: 1.25em;
}

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

.top-new-item .konnakata {
    margin-bottom: 0.5em;
}

.top-new-item .konnakata span {
    display: inline-block;
    border: 1px solid #e8003a;
    padding: 3px 5px;
    border-radius: 4px;
    background-color: #FCFCFC;
    font-size: 0.9em;
    color: #e8003a;
    font-weight: bold;
}

.top-new-item .product-description-detail p,
.product-description-detail ul,
.product-description-detail a {
    color: #282828;
}

.top-new-item .product-description-detail ul {
    margin-left: -0.5em;
}

.top-new-item .product-description-detail ul li {
    margin-top: 0.25em;
}

.top-new-item .product-description-detail ul li::marker {
    color: #3B464A;
}

.top-new-item .product-description-detail ul li ul {
    margin-left: -0.5em;
}

.top-new-item .youryoutigai {
    margin-bottom: 0.5em;
}

.top-new-item .youryoutigai span {
    display: inline-block;
    border: 1px solid #e8003a;
    padding: 3px 5px;
    border-radius: 4px;
    background-color: #FCFCFC;
    font-size: 0.9em;
    color: #e8003a;
    font-weight: bold;
}

.top-new-item .youryoutigai-ul {
    margin-top: 0.5em;
}

.top-new-item .youryoutigai-ul a {
    text-decoration: underline;
}

.top-new-item .youryoutigai-ul a:hover {
    text-decoration: none;
}

/* top-yomimono */
.top-yomimono-wrapper {
    background: linear-gradient(135deg, rgba(139, 179, 217, 0.1) 0%, rgba(178, 164, 214, 0.1) 100%);
    padding: 40px 0;
    margin-bottom: 32px;
}

/* カテゴリ一覧ページのみ上マージン追加 */
.product_page .top-yomimono-wrapper {
    margin-top: 50px;
}

.top-yomimono {
    margin-bottom: 0 !important;
}

.top-yomimono .img-fluid {
    border: 3px solid transparent;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #999;
    background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
    background-origin: border-box;
    background-clip: padding-box, border-box;
    transition: all 0.2s;
}

.top-yomimono .img-fluid:hover {
    background-image: linear-gradient(#fff, #fff), linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);
}

.top-yomimono .title {
    width: fit-content !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 700;
    font-size: 20px;
    line-height: 200%;
    letter-spacing: 0.1em;
    background: var(--gradient-main-dark);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.top-yomimono .title a {
    color: #282828;
}

.top-yomimono .title a:hover {
    text-decoration: underline;
}

.top-yomimono .card_title {
    font-size: 15px;
    font-weight: 700;
    font-style: normal;
}

.top-yomimono .date {
    color: #808080;
    font-size: 1.1em;
}

.top-yomimono .topic_view_all {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 10px 24px;
    margin-top: 20px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 30px;
    transition: all .3s ease;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
    background: linear-gradient(135deg, #376189 0%, #7A67A9 100%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.top-yomimono .topic_view_all span {
    font-size: 15px;
    line-height: 1;
    letter-spacing: 1.5px;
}

.top-yomimono .topic_view_all::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 2px;
    border-radius: 30px;
    background: linear-gradient(135deg, #8BB3D9 0%, #B2A4D6 100%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    z-index: -1;
}

.top-yomimono .topic_view_all:hover {
    opacity: .8;
}

/* top-news */
.top-news .ec-role {
    padding: 0px;
}

.top-news .ec-newsRole {
    padding: 0px;
}

.top-news .ec-newsRole__news {
    border-radius: 8px;
    padding: 0px;
    border: none;
}

.top-news .ec-newsRole__newsDate {
    font-size: 14px;
    color: #777777;
    font-weight: 500;
    line-height: 1.5em;
}

.top-news .ec-newsRole__newsTitle {
    font-size: 15px;
    color: #282828;
    font-weight: 500;
    line-height: 1.5em;
}

.top-news .ec-newsRole__newsCloseBtn {
    background-color: #F89186;
}

.top-news .ec-newsRole__newsDescription {
    color: #282828;
}

.top-news .ec-newsRole__newsDescription a {
    color: #356FA7;
    text-decoration: none;
    font-size: 1.02857em;
}

.top-news .ec-newsRole__newsDescription a:hover {
    color: #0C3358;
    text-decoration: underline;
}

.top-news .ec-newsRole__newsDescription p,
.top-news .ec-newsRole__newsDescription li {
    font-size: 1.02857em;
}

.top-news .ec-newsRole__newsDescription p {
    margin-bottom: 1.5em;
}

.top-news .top-news__header {
    align-items: center;
    margin-bottom: 12px;
}

.top-news .top-news__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    background: linear-gradient(90deg, #376189 0%, #7A67A9 10%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.top-news .top-news__titleIcon svg {
    width: 28px;
    height: 28px;
}

.top-news .top-news__titleLine {
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, #8BB3D9 0%, #B2A4D6 100%);
    margin-top: 15px;
}

/* ショップガイド */
.shopguide {
    margin-top: 6em;
    color: #282828;
}

.shopguide .bd {
    border: 2px solid #f0f4f8;
    border-radius: 8px;
    background-color: #fff;
}

.shopguide .section_header div {
    border-color: #f0f4f8 !important;
    background-color: #f0f4f8;
}

.shopguide .title {
    color: #3B464A;
    font-size: 16px !important;
}

@media only screen and (max-width: 768px) {
    .shopguide .title {
        font-size: 16px !important;
    }
}

.shopguide .title-sub {
    font-weight: bold;
    color: #3B464A;
    border-radius: 8px;
    background-color: #f0f4f8;
    border: none;
    font-size: 15px !important;
}

@media only screen and (max-width: 768px) {
    .shopguide .title-sub {
        font-size: 15px !important;
    }
}

.shopguide .shopguide-in-box {
    padding-left: 1em;
    padding-right: 1em;
    font-size: 15px !important;
}

@media only screen and (max-width: 768px) {
    .shopguide .shopguide-in-box {
        font-size: 15px !important;
    }
}

.shopguide .fa-caret-right {
    color: #F89186;
}

.shopguide p {
    font-size: 1em;
}

.shopguide a {
    color: #282828;
    text-decoration: underline;
}

.shopguide a:hover {
    text-decoration: none;
}

.shopguide .shop-guide-n-list li {
    margin-bottom: 0.5em;
    font-size: 15px;
}

@media only screen and (max-width: 768px) {
    .shopguide .shop-guide-n-list li {
        font-size: 15px;
    }
}

.shopguide-bank a {
    margin-bottom: 1em;
    padding: 0.5em 2em;
    font-weight: bold;
    border: 2px solid transparent !important;
    border-radius: 1000px !important;
    background-image:
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%),
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: text, padding-box, border-box;
    -webkit-background-clip: text, padding-box, border-box;
    -webkit-text-fill-color: transparent;
    background-origin: border-box;
    background-color: #fff;
    color: #f7b36b;
    text-decoration: none;
    box-shadow: none !important;
    outline: none !important;
}

/* セカンダリーボタンはホバー効果なし */
.shopguide-bank a:hover,
.shopguide-bank a:active,
.shopguide-bank a:focus,
.shopguide-bank a:focus-visible {
    border: 2px solid transparent !important;
    background-image:
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%),
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: text, padding-box, border-box;
    -webkit-background-clip: text, padding-box, border-box;
    -webkit-text-fill-color: transparent;
    background-origin: border-box;
    background-color: #fff;
    color: #f7b36b;
    opacity: 1;
    box-shadow: none !important;
    outline: none !important;
}

.shopguide-bank .shopguide-bank-title {
    margin-top: 2em;
    margin-bottom: 0.5em;
    padding-bottom: 0.25em;
    width: fit-content;
    border-bottom: 2px solid #e8003a;
    line-height: 1.5em;
    font-weight: bold;
    color: #3B464A;
}

.shopguide-bank .shopguide-bank-title:first-child {
    margin-top: 1em;
}

.shopguide-bank .shopguide-bank-info p {
    margin-bottom: 1.5em;
    line-height: 1.5em;
}

.shopguide-bank .shopguide-bank-info ul {
    margin-top: 1.5em;
}

.shopguide-bank .shopguide-bank-info ul li {
    margin-bottom: 0.5em;
}

.shopguide-bank .shopguide-bank-info ul li.shopguide-bank-name {
    font-weight: bold;
    color: #3B464A;
}

/* footer */
.footer-box {
    background-color: #3B464A;
    border: none;
    text-align: center;
}

.footer-box .footer-logo-desc {
    padding-top: 1.5em;
    color: #fff;
}

.footer-box .footer-logo {
    padding-top: 1em;
}

.footer-box .footer-logo img {
    filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(301deg) brightness(104%) contrast(101%);
}

.footer-box .copyright {
    padding-top: 2em;
    padding-bottom: 1em;
    font-size: 1.5em;
    color: #fff;
}

/* ページトップへのボタン */
.ec-blockTopBtn {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 1px solid #b3a4d6;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20%);
    transition: opacity .3s, visibility .3s, transform .3s;
    z-index: 999;
    right: 1.25rem;
    bottom: 1.25rem;
    padding: 0;
    line-height: 1;
}

.ec-blockTopBtn.pagetop {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.ec-blockTopBtn__arrow {
    width: 12px;
    height: 12px;
    border-left: 3px solid #b3a4d6;
    border-bottom: 3px solid #b3a4d6;
    transform: translate(0%, 20%) rotate(135deg);
}

.ec-blockTopBtn:hover {
    background: #b3a4d6;
    border-color: #b3a4d6;
}

.ec-blockTopBtn:hover .ec-blockTopBtn__arrow {
    border-color: #fff;
}

/* グラデーション定数 */
--btn-gradient-pink-orange: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);

/* ボタン */
.ec-blockBtn--action {
    border: none !important;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border-radius: 1000px !important;
    line-height: 1em !important;
    height: 2.5em !important;
    padding-top: 0.75em !important;
    padding-bottom: 0.75em !important;
    box-shadow: none !important;
    color: #fff !important;
    outline: none !important;
}

.ec-blockBtn--action:hover {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    border-radius: 1000px !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
    filter: brightness(1.08);
}

.ec-blockBtn--action:active,
.ec-blockBtn--action:focus,
.ec-blockBtn--action:focus-visible {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    border-radius: 1000px !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

.ec-blockBtn--cancel,
.ec-inlineBtn--cancel {
    font-weight: normal;
    border: 2px solid transparent;
    height: 2.5em;
    line-height: 2.35em;
    background-image:
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);
    background-clip: padding-box, border-box;
    -webkit-background-clip: padding-box, border-box;
    background-origin: border-box;
    background-color: #fff;
    border-radius: 1000px;
    color: #d08860 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: all 0.2s ease;
}

.ec-blockBtn--cancel:hover,
.ec-inlineBtn--cancel:hover {
    border: 2px solid transparent;
    background-image:
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);
    background-clip: padding-box, border-box;
    -webkit-background-clip: padding-box, border-box;
    background-origin: border-box;
    border-radius: 1000px;
    color: #d08860 !important;
    opacity: 1;
    box-shadow: none !important;
    outline: none !important;
    filter: brightness(1.08);
}

.ec-blockBtn--cancel:active,
.ec-blockBtn--cancel:focus,
.ec-blockBtn--cancel:focus-visible,
.ec-inlineBtn--cancel:active,
.ec-inlineBtn--cancel:focus,
.ec-inlineBtn--cancel:focus-visible {
    border: 2px solid transparent;
    background-image:
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);
    background-clip: padding-box, border-box;
    -webkit-background-clip: padding-box, border-box;
    background-origin: border-box;
    background-color: #fff;
    border-radius: 1000px;
    color: #d08860 !important;
    opacity: 1;
    box-shadow: none !important;
    outline: none !important;
}

/* プライマリボタン（注文完了ページの「カートへ進む」など） */
.ec-blockBtn--primary {
    border: none !important;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border-radius: 1000px !important;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
}

.ec-blockBtn--primary:hover,
.ec-blockBtn--primary:active,
.ec-blockBtn--primary:focus,
.ec-blockBtn--primary:focus-visible {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    border-radius: 1000px !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

/* 登録ボタンをプライマリスタイルに */
.ec-RegisterRole__actions .ec-blockBtn--cancel {
    border: none !important;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: border-box !important;
    -webkit-background-clip: border-box !important;
    border-radius: 1000px !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
}

.ec-RegisterRole__actions .ec-blockBtn--cancel:hover {
    filter: brightness(1.08);
}

/* 戻るボタンはセカンダリスタイル（線ボタン）に */
.ec-RegisterRole__actions .ec-blockBtn--cancel[value="back"] {
    border: 2px solid transparent !important;
    background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) border-box !important;
    background-clip: padding-box, border-box !important;
    -webkit-background-clip: padding-box, border-box !important;
    color: #e8a4c6 !important;
    -webkit-text-fill-color: #e8a4c6 !important;
}

.ec-RegisterRole__actions .ec-blockBtn--cancel[value="back"]:hover {
    filter: brightness(1.08);
}

/* other_page */
.other_page h1 {
    font-size: 1.5em;
}

.other_page .ec-role {
    padding-left: 0px;
    padding-right: 0px;
}

.other_page h1 {
    border: none;
    text-align: center;
}

.other_page .common-page h2 {
    margin-top: 2.5em;
    margin-bottom: 1.5em;
    font-weight: bold;
}

.other_page .common-page h3 {
    margin-top: 2em;
    margin-bottom: 1.5em;
    font-weight: bold;
}

.other_page .common-page h4 {
    margin-top: 2em;
    margin-bottom: 1.5em;
    font-weight: bold;
}

.other_page .common-page {
    color: #282828;
}

.other_page .common-page a {
    color: #282828 !important;
    text-decoration: underline;
}

.other_page .common-page a:hover {
    color: #0C3358 !important;
    text-decoration: none;
}

.other_page .common-page p {
    margin-bottom: 1.5em;
    line-height: 1.75em;
}

.other_page .common-page ul,
.other_page .common-page ol {
    margin-bottom: 1.5em;
}

.other_page .common-page li {
    margin-bottom: 0.75em;
    line-height: 1.75em;
}

.other_page .common-page ul ul,
.other_page .common-page ul ol,
.other_page .common-page ol ul,
.other_page .common-page ol ol {
    margin-top: 1em;
}

.other_page .common-page table {
    border: 1px solid #ddd;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 8px;
    overflow: hidden;
}

.other_page .common-page table th,
.common-page table td {
    font-size: 0.9em;
    padding: 1em;
    border-bottom: 1px solid #ddd;
    line-height: 1.75em;
}

.other_page .common-page table th {
    width: 25%;
    background-color: #f0f4f8;
    border-left: 1px solid #ddd;
    color: #3B464A;
}

.other_page .common-page table th:first-child {
    border-left: none;
}

.other_page .common-page table td {
    border-left: 1px solid #D7DADD;
    background-color: #fff;
}

.other_page .common-page table tr td:first-child {
    border-left: 1px !important;
}

.other_page .common-page table td a {
    font-weight: normal;
    text-decoration: underline;
    color: #2160A0;
}

.other_page .common-page table td a:hover {
    text-decoration: none;
}

.other_page .common-page table tr:last-child th,
.common-page table tr:last-child td {
    border-bottom: none;
}

.other_page .common-page table p {
    margin-bottom: 1em;
}

.other_page .common-page table ul {
    margin: 0px;
}

.other_page .common-page table td p:last-child,
.common-page table ul li:last-child,
.common-page table ol li:last-child {
    margin-bottom: 0px;
}

.other_page .common-page .ec-required {
    color: #e8003a;
}

/* お問い合わせ */
.ec-zipInputHelp a span {
    color: #2161A5;
}

.ec-zipInputHelp a span:hover {
    color: #0C3358;
    text-decoration: underline;
}

.ec-borderedDefs {
    margin-top: 2em;
}

/* 商品一覧 page_product_list */
/* #page_product_list .ec-blockBtn--action { padding-top: 0px; } 削除 - 基本定義に統合 */

/* 商品詳細ページ */
#to-price-cart {
    color: #808080;
}

.product_page .ec-productRole {
    color: #282828;
}

@media only screen and (max-width: 768px) {
    .product_page .ec-productRole {
        padding-left: 5px;
        padding-right: 5px
    }
}

.product_page .ec-productRole .img-fluid {
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.product_page .ec-productRole .img-fluid:hover {
    border: 1px solid #e8003a;
}

.ec-productRole__title .ec-headingTitle {
    font-weight: bold;
    color: #282828;
}

@media only screen and (min-width: 768px) {
    .ec-productRole__title .ec-headingTitle {
        font-size: 1.7em !important;
    }
}

.reviewList {
    color: #3B464A;
}

.reviewList a {
    text-decoration: none !important;
    color: #2161A5 !important;
}

.reviewList a:hover {
    text-decoration: underline !important;
    color: #0C3358 !important;
}

.cate-box {
    font-size: 0.9em;
    margin-top: 1em;
}

.cate-box li {
    margin-bottom: 0.5em;
}

.cate-box li::marker {
    color: #CAC0B5;
}

.cate-box li a {
    color: #282828;
}

.cate-box li a:hover {
    text-decoration: underline;
}

.ec-productRole__tags {
    margin: none !important;
    padding: 0px !important;
    border: none !important;
}

.ec-productRole__tag {
    border: 1px #3B464A solid !important;
    color: #3B464A !important;
    background-color: #fff !important;
}

.ec-productRole__tag:hover {
    border: 1px #3B464A solid !important;
    color: #fff !important;
    background-color: #3B464A !important;
}

.pharmaceutical-company {
    border: none !important;
    padding-bottom: 4px !important;
}

.pharmaceutical-company a {
    text-decoration: none !important;
    color: #2161A5 !important;
}

.pharmaceutical-company a:hover {
    text-decoration: underline !important;
    color: #0C3358 !important;
}

.ec-productRole__price {
    border: none !important;
    padding: 0px !important;
    color: #e8003a !important;
}

@media screen and (max-width: 768px) {
    .ec-productRole__price .ec-price .ec-price__price {
        font-size: 1em;
    }
}

.ec-productRole__price .ec-price__price {
    padding: 0px;
}

.item_visual {
    margin-bottom: 0px;
}

.slick-active img {
    border-radius: 16px;
}

.slide-thumb {
    width: 20%;
    padding-top: 1em;
}

.package-desc {
    margin-top: 1.75em;
    padding: 2em;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
    font-size: 0.85em;
}

.package-desc-title {
    margin-bottom: 1.5em !important;
    font-weight: bold;
    color: #3B464A;
}

.package-desc p {
    margin-bottom: 1em;
}

.package-desc p:last-child {
    margin-bottom: 0px;
}

.ec-productRole__items {
    border: none !important;
    padding-bottom: 0px !important;
}

.ec-productRole__code {
    padding-bottom: 0px !important;
    border: none !important;
    font-size: 0.9em;
}

.ec-productRole__item table {
    margin-top: 1em;
    border: 1px solid #ddd;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.ec-productRole__item table th,
.ec-productRole__item table td {
    font-size: 0.8em;
    padding: 4px 10px;
    border-bottom: 1px solid #ddd;
}

.ec-productRole__item table th {
    background-color: #f0f4f8;
    text-align: center;
    color: #3B464A;
    border-left: 1px solid #ddd;
}

.ec-productRole__item table th:first-child {
    border-left: none;
}

.ec-productRole__item table td {
    border-left: 1px solid #ddd;
    background-color: #fff;
}

.ec-productRole__item table td:nth-child(3),
.ec-productRole__item table td:nth-child(4) {
    text-align: center;
}

.ec-productRole__item table tr:nth-child(2) td:nth-child(3) {
    font-size: 1.2em;
    color: #3B464A;
}

.ec-productRole__item table tr:nth-child(2) td:nth-child(4) {
    font-size: 1em;
    color: #3B464A;
}

.ec-productRole__item table tr td:first-child {
    border-left: 1px !important;
}

.ec-productRole__item table tr:last-child th,
.ec-productRole__item table tr:last-child td {
    border-bottom: none;
}

.ec-productRole__item table td .discount-rate {
    padding: 4px;
    border-radius: 4px;
    background-color: #e8003a;
    font-weight: bold;
    color: #fff;
    text-align: center;
    line-height: 1em;
}

.ec-productRole__item table td .tokka {
    font-weight: bold;
    color: #e8003a;
    font-size: 1.5em;
}

.ec-productRole__item table td .tokka-1 {
    margin-top: 0.2em;
    font-weight: bold;
    font-size: 1.25em;
}

.ec-productRole__item table td .discount-amount,
.ec-productRole__item table td .discount-amount2 {
    font-size: 0.9em;
    color: #808080;
}

.ec-numberInput input {
    margin-left: 0.5em;
    border: 1px solid #808080 !important;
    font-size: 0.9em;
    border-radius: 4px;
    font-weight: bold;
}

.add-cart {
    padding-top: 0px !important;
    padding-bottom: 1px !important;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border-radius: 1000px !important;
    border: none !important;
    color: #fff !important;
    font-weight: bold !important;
    line-height: 0px;
    box-shadow: none !important;
    outline: none !important;
}

@media screen and (max-width: 768px) {
    .add-cart {
        margin-bottom: 3em;
    }
}

.add-cart:hover,
.add-cart:active,
.add-cart:focus,
.add-cart:focus-visible {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
    filter: brightness(1.08);
}

.ec-productRole__item table td .yen {
    padding-left: 0.2em;
    font-size: 0.7em;
}

/* #page_product_detail .ec-blockBtn--action { padding-top: 0px; } 削除 - 基本定義に統合 */

.product_page .ec-productRole__description {
    margin-top: 2em;
    font-size: 16px;
    color: #282828;
}

.product_page .konnakata {
    margin-bottom: 0.5em;
}

.product_page .konnakata span {
    display: inline-block;
    border: 1px solid #e8003a;
    padding: 3px 5px;
    border-radius: 4px;
    background-color: #fff;
    color: #e8003a;
    font-weight: bold;
}

.product_page .ec-productRole__description ul:not(.wp-block-list) {
    margin-top: 1em;
    list-style-type: disc;
    padding-left: 1.5em;
}

.product_page .ec-productRole__description ul:not(.wp-block-list) li {
    margin-bottom: 0.75em;
    list-style-type: disc;
}

.product_page .ec-productRole__description ul:not(.wp-block-list) li::marker {
    color: #5B8ECB;
}

.product_page .product-description-detail p,
.product-description-detail ul,
.product-description-detail a {
    color: #282828;
}

.product_page .product-description-detail ul {
    margin-left: -0.5em;
}

.product_page .product-description-detail ul li {
    margin-top: 0.25em;
}

.product_page .product-description-detail ul li::marker {
    color: #3B464A;
}

.product_page .product-description-detail ul li ul {
    margin-left: -0.5em;
}

.product_page .youryoutigai {
    margin-bottom: 0.5em;
}

.product_page .youryoutigai span {
    display: inline-block;
    border: 1px solid #e8003a;
    padding: 3px 5px;
    border-radius: 4px;
    background-color: #fff;
    font-size: 0.9em;
    color: #e8003a;
    font-weight: bold;
}

.product_page .youryoutigai-ul {
    margin-top: 0.5em;
}

.product_page .youryoutigai-ul a:hover {
    color: #5ED2E3;
}

.product_page .youryoutigai-ul ul {
    margin-top: 0.5em;
}

.ec-productRole__description h1 {
    margin-top: 2em;
    margin-bottom: 1.5em;
    padding-top: 1em;
    font-weight: bold;
    line-height: 1.5em;
    color: #3B464A;
    line-height: 1.5em;
}

.ec-productRole__description h2:not(.wp-block-heading),
.product-free-area h2:not(.wp-block-heading) {
    padding-left: 0;
    padding-right: 0;
    font-size: 1.2em;
    margin-top: 2.5em;
    margin-bottom: 1.75em;
    padding-bottom: 0.5em;
    border-width: 0 0 4px 0;
    border-style: solid;
    border-image: linear-gradient(to right, #8bb3d9, #b3a4d6) 1;
    color: #3B464A;
    font-weight: bold;
    line-height: 1.5em;
}

@media (min-width: 600px) {
    .ec-productRole__description h2:not(.wp-block-heading),
    .product-free-area h2:not(.wp-block-heading) {
        font-size: 1.4em;
    }
}

.ec-productRole__description h3:not(.wp-block-heading):not(.faq_q) {
    background: linear-gradient(to right, #DCE8F4, #E8E4F3);
    color: #254E72;
    font-size: 1.15em;
    font-weight: bold;
    line-height: 1.5em;
    margin-top: 3em;
    margin-bottom: 1em;
    padding: 0.5em 0.75em;
    border-radius: 6px;
}

.ec-productRole__description h4 {
    margin-top: 2.5em;
    margin-bottom: 1.5em;
    padding-bottom: 0.25em;
    width: fit-content;
    border-bottom: 2px solid #e8003a;
    line-height: 1.5em;
    font-weight: bold;
    color: #3B464A;
}

.ec-productRole__description p {
    margin-bottom: 1.5em;
    font-size: 16px;
    line-height: 1.75em;
}

.ec-productRole__description .detail-images {
    margin-bottom: 2em;
}

.ec-productRole__description .detail-images img {
    border: 1px solid #fff;
    width: 500px;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.ec-productRole__description .stc-images {
    margin-bottom: 2em;
}

.ec-productRole__description .stc-images img {
    border: 1px solid #fff;
    width: 500px;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.ec-productRole__description a {
    color: #282828;
    text-decoration: underline;
}

.ec-productRole__description a:hover {
    text-decoration: none !important;
    color: #282828 !important;
}

.ec-productRole__description table {
    margin-top: 1em;
    margin-bottom: 2em;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 0 0 1px #ddd, 0px 0px 15px -5px #ccc;
}

.ec-productRole__description table:not(.price-table) th,
.ec-productRole__description table:not(.price-table) td {
    font-size: 14px;
    padding: 8px;
    border-bottom: 1px solid #ddd;
}

.ec-productRole__description table:not(.price-table) th {
    background-color: #f0f4f8;
    text-align: center;
    color: #3B464A;
    border-left: 1px solid #ddd;
}

.pd.ec-productRole__description table:not(.price-table) th {
    color: #fff !important;
}

.ec-productRole__description table:not(.price-table) th:first-child {
    border-left: none;
}

.ec-productRole__description table:not(.price-table) td {
    border-left: 1px solid #ddd;
    background-color: #fff;
}

.ec-productRole__description table:not(.price-table) tr td:first-child {
    border-left: none;
}

.ec-productRole__description table.l-first-td-th td:first-child {
    background-color: #FAF9F8;
    font-weight: bold;
    color: #3B464A;
    white-space: nowrap;
}

@media (max-width: 1023px) {
    .ec-productRole__description table.l-first-td-th td:first-child {
        white-space: normal;
    }
}

.to-top-cart {
    margin-top: 3em;
    text-align: center;
}

.to-top-cart a {
    background: linear-gradient(90deg, #e7a3c7 0%, #f7b36a 100%);
    border: 2px solid transparent;
    border-radius: 1000px;
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 12px 24px;
    color: #fff;
    line-height: 1.5em;
    text-decoration: none;
    min-width: 40%;
    font-weight: 700;
    text-align: center;
    box-shadow: 0 4px 12px rgba(232, 163, 199, 0.4);
    transition: opacity 0.2s;
}

.to-top-cart a:hover,
.to-top-cart a:active,
.to-top-cart a:focus,
.to-top-cart a:focus-visible {
    background: linear-gradient(90deg, #e7a3c7 0%, #f7b36a 100%) !important;
    border: 2px solid transparent !important;
    color: #fff !important;
    opacity: 0.8;
}

@media only screen and (min-width: 768px) {
    .product-free-area {
        width: 812px;
        margin: 0 auto;
    }
}

.product-free-area {
    margin-top: 4em !important;
}

.product-free-area h1 {
    margin-top: 3em !important;
    margin-bottom: 1em !important;
    padding: 0.5em 1em;
    border: none;
    background-color: #e8003a;
    color: #fff;
    border-radius: 8px;
    font-size: 1.75em !important;
    background-image: linear-gradient(90deg, rgba(139, 179, 217, 1), rgba(179, 164, 214, 1));
}

.product-free-area p {
    line-height: 1.8em !important;
}

.product-free-area ul {
    margin-left: 0px !important;
}

.product-free-area ul li {
    font-size: 16px;
}

.product-free-area ul li::marker {
    color: #5B8ECB !important;
}

.product-free-area .sbd-inner-block-init * {
    font-size: 16px !important;
    line-height: 1.8em !important;
}

.product-free-area .sbd-inner-block-init dt {
    font-size: 18px !important;
    color: #5B8ECB;
}

.product-free-area p a,
.product-free-area li a {
    color: #2161a5 !important;
    text-decoration: none;
}

.product-free-area p a:hover,
.product-free-area li a:hover {
    color: #2161a5 !important;
}

.product-free-area .swell-block-button.is-style-btn_shiny {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    border-radius: 80px;
    overflow: hidden;
    -webkit-tap-highlight-color: transparent;
}

.product-free-area .swell-block-button.is-style-btn_shiny .swell-block-button__link {
    background-image: linear-gradient(90deg, rgba(231, 163, 199, 1), rgba(247, 179, 106, 1)) !important;
    border-radius: 80px !important;
    overflow: hidden;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}

.product-free-area .is-style-btn_shiny a:hover {
    color: #fff !important;
}

@media (max-width: 1023px) {
    .product-free-area {
        margin-top: 2em !important;
    }

    .product-free-area h1 {
        margin-top: 2em !important;
        margin-bottom: 0.75em !important;
        padding: 0.4em 0.8em;
        font-size: 1.25em !important;
    }

    .product-free-area p,
    .product-free-area ul li,
    .product-free-area .sbd-inner-block-init * {
        font-size: 14px !important;
    }
}

.qa-box .qa-item {
    margin-bottom: 2em;
    background-color: #fff;
    padding: 1.5em 2em 1em 2em;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.qa-box .qa-item h3.faq_q {
    position: relative;
    margin-top: 0px;
    margin-bottom: 1em !important;
    padding-top: 0.5em;
    padding-left: 3em !important;
    border: none;
    display: flex;
    align-items: center;
}

@media screen and (max-width: 768px) {
    .qa-box .qa-item h3.faq_q {
        padding-top: 0.7em;
        padding-left: 2.9em !important;
    }
}

.qa-box .qa-item h3.faq_q::before {
    content: "Q";
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    font-size: 1.5em;
    font-weight: bold;
    line-height: 1.5em;
    left: 0;
    text-align: center;
    position: absolute;
    background-color: rgb(139, 179, 217);
    color: #fff;
    border-radius: 4px;
    margin-top: 0.1em;
}

@media screen and (max-width: 768px) {
    .qa-box .qa-item h3.faq_q::before {
        font-size: 1.4em;
        width: 1.5em;
        height: 1.5em;
        line-height: 1.5em;
    }
}

.qa-box .qa-item .faq_a {
    position: relative;
    margin-left: 2.575em;
}

.qa-box .qa-item .faq_a::before {
    content: "A";
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    font-size: 1.5em;
    font-weight: bold;
    line-height: 1.5em;
    left: -40px;
    text-align: center;
    position: absolute;
    background-color: #f89186;
    color: #fff;
    border-radius: 4px;
    margin-top: 0.1em;
}

@media screen and (max-width: 768px) {
    .qa-box .qa-item .faq_a::before {
        font-size: 1.4em;
        width: 1.5em;
        height: 1.5em;
        line-height: 1.5em;
    }
}

.qa-box .qa-item .faq_a p {
    margin-left: 1em;
}

.qa-box .qa-item .faq_a p:first-child {
    padding-top: 0.25em;
}

.qa-box .qa-item .faq_a ul {
    margin-left: 2.75em;
    padding: 0px;
    background-color: #fff;
    box-shadow: none;
}

.qa-box .qa-item .faq_a ul li::marker {
    color: #3B464A
}

/* 商品詳細_レビュー */
.review_detail_default {
    margin-top: 4em;
    color: #282828;
}

@media screen and (max-width: 768px) {
    .review_detail_default {
        padding-left: 5px !important;
        padding-right: 5px !important;
    }
}

.review_detail_default .review-sortLayout {
    margin-bottom: 2em;
    border: 1px solid #FAF9F8 !important;
    border-radius: 8px;
    background-color: #f0f4f8;
}

@media screen and (max-width: 768px) {
    .review_detail_default .review-sortLayout {
        padding-top: 1em;
        text-align: center;
    }
}

.review_detail_default .review-sortLayout .reviewSort {
    font-size: 1.2em;
    color: #3B464A;
}

.review_detail_default .review-sortLayout .ec-inlineBtn--action {
    border-radius: 0px 8px 8px 0px;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
}

.review_detail_default .review-sortLayout .ec-inlineBtn--action:hover,
.review_detail_default .review-sortLayout .ec-inlineBtn--action:active,
.review_detail_default .review-sortLayout .ec-inlineBtn--action:focus,
.review_detail_default .review-sortLayout .ec-inlineBtn--action:focus-visible {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

@media screen and (max-width: 768px) {
    .review_detail_default .review-sortLayout .ec-inlineBtn--action {
        width: 100%;
        border-radius: 0px 0px 8px 8px;
        font-size: 1.2em;
    }
}

.review_detail_default .review-commentLayout {
    margin-bottom: 2em;
    padding: 2em;
    border: 1px solid #ddd !important;
    border-radius: 8px;
    background-color: #fff;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.review_detail_default .review-commentLayout * {
    font-size: 15px !important;
}

.review_detail_default .reviewAuthor {
    margin-top: 0.5em !important;
    padding-bottom: 0.5em !important;
    border-bottom: 1px dotted #ddd !important;
}

.review_detail_default .reviewAuthor p {
    display: none;
}

.review_detail_default div:nth-of-type(2) span strong {
    display: block;
    margin-top: 1.25em !important;
    font-size: 1.2em;
}

.review_detail_default .reviewComment {
    padding-top: 0.5em;
    line-height: 1.75em !important;
}

@media screen and (max-width: 768px) {
    .review_detail_default .ec-off1Grid__cell {
        margin-top: 4em;
    }
}

#plg_customer_review_detail #review_show_all {
    font-size: 16px;
}

/* 商品詳細_関連商品 */
#RelatedProductPro-product_area {
    margin-top: 4em;
    color: #282828;
}

@media screen and (max-width: 768px) {
    #RelatedProductPro-product_area {
        padding-left: 5px !important;
        padding-right: 5px !important;
    }
}

#RelatedProductPro-product_area div.title {
    margin-bottom: 2em;
    padding: 1em;
    border-radius: 8px;
    background-color: #f0f4f8;
    color: #3B464A;
    font-size: 1.2em;
    line-height: 1em;
    font-weight: bold;
}

#RelatedProductPro-product_area .ec-shelfGrid__item-image img {
    border: 1px solid #fff;
    border-radius: 8px !important;
    box-shadow: 0px 0px 15px -5px #ccc !important;
}

#RelatedProductPro-product_area .ec-shelfGrid__item-image img:hover {
    border: 1px solid #CAC0B5;
}

#RelatedProductPro-product_area .item-cate-list {
    margin-left: 0px !important;
}

#RelatedProductPro-product_area .item-cate-list a {
    background-color: #3B464A;
    border-radius: 4px;
    font-size: 0.9em !important;
}

#RelatedProductPro-product_area .item-tag {
    color: #3B464A;
}

#RelatedProductPro-product_area .item-tag span {
    padding: 0px 4px 2px 4px;
    border: 1px solid #3B464A;
    border-radius: 4px;
    font-size: 0.9em;
    color: #3B464A;
}

#RelatedProductPro-product_area p.item-title {
    margin-top: 0.5em !important;
    font-size: 1.5em !important;
    font-weight: bold;
    line-height: 1.25em;
}

#RelatedProductPro-product_area .item-title a {
    color: #282828;
}

#RelatedProductPro-product_area .item-title a:hover {
    text-decoration: underline;
}

#RelatedProductPro-product_area .item-price {
    margin-top: 0px !important;
    ;
    color: #e8003a;
    font-size: 1.5em;
    font-weight: bold;
}

#RelatedProductPro-product_area .item-price-desc {
    margin-top: 0.1em;
    margin-bottom: 0.1em;
    color: #808080;
    font-size: 0.9em;
    line-height: 1.25em;
}

#RelatedProductPro-product_area .product-description-detail {
    margin-top: 1em;
}

#RelatedProductPro-product_area .konnakata {
    margin-bottom: 0.5em;
}

#RelatedProductPro-product_area .konnakata span {
    display: inline-block;
    border: 1px solid #e8003a;
    padding: 3px 5px;
    border-radius: 4px;
    background-color: #FCFCFC;
    font-size: 0.9em;
    color: #e8003a;
    font-weight: bold;
}

#RelatedProductPro-product_area .product-description-detail p,
.product-description-detail ul,
.product-description-detail a {
    color: #282828;
}

#RelatedProductPro-product_area .product-description-detail ul {
    margin-left: -0.5em;
}

#RelatedProductPro-product_area .product-description-detail ul li {
    margin-top: 0.25em;
}

#RelatedProductPro-product_area .product-description-detail ul li::marker {
    color: #3B464A;
}

#RelatedProductPro-product_area .product-description-detail ul li ul {
    margin-left: -0.5em;
}

#RelatedProductPro-product_area .youryoutigai {
    margin-bottom: 0.5em;
}

#RelatedProductPro-product_area .youryoutigai span {
    display: inline-block;
    border: 1px solid #e8003a;
    padding: 3px 5px;
    border-radius: 4px;
    background-color: #FCFCFC;
    font-size: 0.9em;
    color: #e8003a;
    font-weight: bold;
}

#RelatedProductPro-product_area .youryoutigai-ul {
    margin-top: 0.5em;
}

#RelatedProductPro-product_area .youryoutigai-ul a {
    text-decoration: underline;
}

#RelatedProductPro-product_area .youryoutigai-ul a:hover {
    text-decoration: none;
}

/* カートに入れる、モーダルボタン */
.ec-modal-wrap .ec-inlineBtn--action {
    padding-bottom: 0.75em;
    border: none !important;
    border-radius: 1000px !important;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    line-height: 1em;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
    transition: all 0.2s ease;
    min-width: 165px;
    margin-bottom: 8px;
}

.ec-modal-wrap .ec-inlineBtn--action:hover {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
    filter: brightness(1.08);
}

.ec-modal-wrap .ec-inlineBtn--action:active,
.ec-modal-wrap .ec-inlineBtn--action:focus,
.ec-modal-wrap .ec-inlineBtn--action:focus-visible {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

.ec-modal-wrap .ec-inlineBtn--cancel {
    padding-bottom: 0.75em;
    border: 2px solid transparent !important;
    border-radius: 1000px !important;
    background-image:
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: padding-box, border-box;
    -webkit-background-clip: padding-box, border-box;
    background-origin: border-box;
    background-color: #fff;
    line-height: 1em;
    color: #d08860;
    font-weight: normal;
    box-shadow: none !important;
    outline: none !important;
    transition: all 0.2s ease;
    min-width: 165px;
    margin-bottom: 8px;
}

.ec-modal-wrap .ec-inlineBtn--cancel:hover {
    border: 2px solid transparent !important;
    background-image:
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: padding-box, border-box;
    -webkit-background-clip: padding-box, border-box;
    background-origin: border-box;
    background-color: #fff;
    color: #d08860;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
    filter: brightness(1.08);
}

.ec-modal-wrap .ec-inlineBtn--cancel:active,
.ec-modal-wrap .ec-inlineBtn--cancel:focus,
.ec-modal-wrap .ec-inlineBtn--cancel:focus-visible {
    border: 2px solid transparent !important;
    background-image:
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: padding-box, border-box;
    -webkit-background-clip: padding-box, border-box;
    background-origin: border-box;
    background-color: #fff;
    color: #d08860;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

/* カート投入モーダル専用（縦並び時のmargin調整） */
.ec-modal:has(#ec-modal-header) .ec-role {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.ec-modal:has(#ec-modal-header) .ec-inlineBtn--cancel,
.ec-modal:has(#ec-modal-header) .ec-inlineBtn--action {
    margin-right: 0.5em;
    margin-left: 0.5em;
}

/* カート - お支払い合計 */
.ec-cartRole__totalAmount {
    color: #e8003a !important;
}

/* #page_shopping .ec-blockBtn--action { padding-top: 0px !important; } 削除 - 基本定義に統合 */
/* #page_shopping_confirm .ec-blockBtn--action { padding-top: 0px !important; } 削除 - 基本定義に統合 */

.is-complete .ec-progress__number {
    background-color: #e8003a !important;
}

.is-complete .ec-progress__label {
    color: #e8003a !important;
}

.ec-progress__item .ec-progress__number {
    background-color: #F89186;
}

.ec-progress .ec-progress__item:after {
    background-color: #F89186;
}

@media screen and (max-width: 768px) {
    .ec-progress .ec-progress__item:after {
        margin-top: -0.25em;
    }
}

.quantity_discount {
    color: #e8003a;
}

/* カートページでのボタン上書き */
.ec-blockBtn--action {
    border: none !important;
    border-radius: 1000px !important;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
}

.ec-blockBtn--action:hover,
.ec-blockBtn--action:active,
.ec-blockBtn--action:focus,
.ec-blockBtn--action:focus-visible {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

.ec-totalBox__total {
    font-weight: normal !important;
}

.ec-totalBox__total .ec-totalBox__price {
    font-size: 16px;
    font-weight: normal;
}

#page_shopping_shipping .ec-blockBtn--action {
    margin-bottom: 4em;
}

@media screen and (max-width: 768px) {
    .cart_page .ec-blockBtn--action {
        margin-bottom: 3em;
    }
}

.ec-alert-warning {
    padding-bottom: 0.9em;
    background-color: #e8003a;
    border-radius: 8px;
}

.ec-alert-warning .ec-alert-warning__icon {
    margin-top: -2px;
}

.ec-modal .ec-modal-wrap {
    padding-bottom: 30px;
    border-color: #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #666;
    line-height: 1em;
    font-size: 16px;
    color: #3B464A;
    font-weight: bold;
}

.ec-modal .ec-modal-wrap .ec-inlineBtn--cancel {
    margin-right: 0.75em;
}

.ec-cart-clear {
    color: #3B464A;
}

.ec-cartRole {
    padding-left: 10px;
    padding-right: 10px;
}






@media screen and (max-width: 768px) {
    #page_shopping .ec-orderRole {
        padding: 0px;
    }
}

@media only screen and (min-width: 768px) {
    #page_shopping .ec-orderRole {
        color: #3B464A;
    }
}

#page_shopping .ec-orderRole__detail h2 {
    margin-bottom: 0.5em !important;
    background-color: #f0f4f8;
    border-radius: 8px;
    font-size: 18px;
}

#page_shopping .ec-orderRole__detail p {
    margin: 0em 0.8em 0.25em 0.8em;
}


/* 注文完了画面 */
#page_shopping_complete {
    color: #282828 !important;
}

#page_shopping_complete .ec-cartCompleteRole {
    padding-left: 10px;
    padding-right: 10px;
}

#page_shopping_complete .ec-reportDescription {
    line-height: 1.5em;
}

.shopping-complete .order-number {
    margin-bottom: 1.5em;
    text-align: center;
    font-weight: bold;
    font-size: 20px;
    color: #3B464A;
}

.shopping-complete .order-txt {
    padding: 2em;
    border: 1px solid #ddd;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.shopping-complete .order-txt p {
    margin-bottom: 1em;
}

.shopping-complete .order-txt p:last-child {
    margin-bottom: 0px;
}

.shopping-complete table {
    width: 100%;
    margin-top: 1em;
    margin-bottom: 4em;
    border: 1px solid #ddd;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.shopping-complete table th,
.shopping-complete table td {
    font-size: 16px;
    padding: 8px 12px;
    border-bottom: 1px solid #ddd;
}

.shopping-complete table th {
    background-color: #f0f4f8;
    text-align: center;
    color: #3B464A;
    border-left: 1px solid #ddd;
}

.shopping-complete table th:first-child {
    border-left: none;
}

.shopping-complete table td {
    border-left: 1px solid #ddd;
    background-color: #fff;
}

.shopping-complete table td:first-child {
    border-left: 1px !important;
}

.shopping-complete table tr:last-child th,
.shopping-complete table tr:last-child td {
    border-bottom: none;
}

.order-deadline-important {
    margin-bottom: 0.5em;
    font-weight: bold;
    color: #e8003a;
}

.order-deadline {
    margin-bottom: 0.5em;
    font-weight: bold;
    font-size: 20px;
    color: #3B464A;
}

.order-deadline-txt {
    color: #e8003a;
    line-height: 1.5em;
}

.transfer-amount {
    font-weight: bold;
    font-size: 20px;
    color: #3B464A;
}

.transfer-destination p {
    line-height: 2em;
}

.transfer-name {
    font-weight: bold;
    font-size: 20px;
    color: #3B464A;
}

.transfer-destination .transfer-number {
    margin-top: 2em;
    padding: 1em 0px 0.5em 0px;
    border-top: 2px dotted #CAC0B5;
    font-weight: bold;
}

.transfer-destination ul {
    margin-top: 0.5em;
}

.transfer-destination ul li {
    margin-bottom: 0.5em;
}

.transfer-note {
    margin-top: 2em;
    margin-bottom: 1em;
}

.transfer-note p {
    margin-bottom: 1em;
    line-height: 1.25em;
}


#page_shopping_complete .ec-blockBtn--cancel {

    line-height: 2.8em !important;

    font-weight: bold;
    font-size: 1.25em;
    height: 3em;

}















/* ログイン */
.ec-login {
    padding-top: 4em;
    border-radius: 8px;
    background-color: #fff;
    box-shadow: 0px 0px 15px -5px #ccc;
}

@media screen and (max-width: 768px) {
    .ec-login {
        margin-top: 2em;
        padding-top: 2em;
    }
}

.ec-icon {
    display: none;
}

/* お気に入りページではアイコンを表示 */
#page_mypage_favorite .ec-icon {
    display: block;
}

@media screen and (max-width: 768px) {
    .ec-blockBtn--cancel {
        margin-top: -2em;
    }
}

.form-check-label {
    font-weight: normal !important;
}

#page_shopping_login .ec-login__actions .ec-blockBtn--cancel {
    background-image:
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%),
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: text, padding-box, border-box;
    -webkit-background-clip: text, padding-box, border-box;
    -webkit-text-fill-color: transparent;
    background-origin: border-box;
    background-color: #fff;
    border: 2px solid transparent !important;
    border-radius: 1000px !important;
    font-weight: bold;
    box-shadow: none !important;
    outline: none !important;
}

/* セカンダリーボタンはホバー効果なし */
#page_shopping_login .ec-login__actions .ec-blockBtn--cancel:hover,
#page_shopping_login .ec-login__actions .ec-blockBtn--cancel:active,
#page_shopping_login .ec-login__actions .ec-blockBtn--cancel:focus,
#page_shopping_login .ec-login__actions .ec-blockBtn--cancel:focus-visible {
    background-image:
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%),
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: text, padding-box, border-box;
    -webkit-background-clip: text, padding-box, border-box;
    -webkit-text-fill-color: transparent;
    background-origin: border-box;
    background-color: #fff;
    border: 2px solid transparent !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

@media screen and (max-width: 768px) {
    #page_shopping_login .ec-login__actions .ec-blockBtn--cancel {
        margin-bottom: 1.5em;
    }
}

.mypage .ec-blockBtn--cancel {
    background-image:
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%),
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: text, padding-box, border-box;
    -webkit-background-clip: text, padding-box, border-box;
    -webkit-text-fill-color: transparent;
    background-origin: border-box;
    background-color: #fff;
    border: 2px solid transparent !important;
    border-radius: 1000px !important;
    font-weight: bold;
    box-shadow: none !important;
    outline: none !important;
}

/* セカンダリーボタンはホバー効果なし */
.mypage .ec-blockBtn--cancel:hover,
.mypage .ec-blockBtn--cancel:active,
.mypage .ec-blockBtn--cancel:focus,
.mypage .ec-blockBtn--cancel:focus-visible {
    background-image:
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%),
        linear-gradient(#fff, #fff),
        linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    background-clip: text, padding-box, border-box;
    -webkit-background-clip: text, padding-box, border-box;
    -webkit-text-fill-color: transparent;
    background-origin: border-box;
    background-color: #fff;
    border: 2px solid transparent !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

.mypage .form-check-label {
    color: #3B464A;
}

.mypage .ec-link {
    color: #2161A5;
}

.mypage .ec-link:hover {
    color: #0C3358;
}

/* マイページ ナビゲーション */
.mypage .ec-mypageRole {
    padding: 0 !important;
}

.mypage .ec-navlistRole__navlist {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border: none;
    background: transparent;
}

.mypage .ec-navlistRole__navlist li {
    flex: 1;
    min-width: 120px;
    border: none !important;
}

.mypage .ec-navlistRole__navlist li a {
    display: block;
    padding: 12px 16px;
    text-align: center;
    text-decoration: none;
    color: #808080;
    background: #f0f4f8;
    border: 1px solid #ddd;
    transition: all 0.2s ease;
}

.mypage .ec-navlistRole__navlist li:first-child a {
    border-radius: 8px 0 0 8px;
}

.mypage .ec-navlistRole__navlist li:last-of-type a {
    border-radius: 0 8px 8px 0;
}

.mypage .ec-navlistRole__navlist li a:hover {
    filter: brightness(1.04);
}

.mypage .ec-navlistRole__navlist li.active a {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);
    color: #fff !important;
    border-color: transparent;
    font-weight: bold;
}

@media only screen and (max-width: 768px) {
    .mypage .ec-navlistRole__navlist {
        flex-direction: column;
    }

    .mypage .ec-navlistRole__navlist li {
        min-width: 100%;
    }

    .mypage .ec-navlistRole__navlist li:first-child a {
        border-radius: 8px 8px 0 0;
    }

    .mypage .ec-navlistRole__navlist li:last-of-type a {
        border-radius: 0 0 8px 8px;
    }
}


.mypage .ec-orderRole {
    padding: 0 !important;
}

.mypage .ec-orderRole__detail h2:first-child {
    margin-top: 0px;
}

.mypage .ec-blockBtn--action {
    margin-top: 1.5em;
}

.mypage .ec-totalBox__price {
    color: #e8003a !important;
}

#page_mypage_history .ec-totalBox__total .ec-totalBox__price {
    color: #282828 !important;
    font-size: 16px !important;
    font-weight: normal;
}

#page_mypage_history .ec-blockBtn--action {
    /* padding-top: 0px !important; 削除 - 基本定義に統合 */
}

.is_post_office_clasp {
    margin-bottom: 0.5em;
    color: #e8003a;
    font-weight: bold;
    font-size: 0.9em
}

#page_mypage_delivery_new .ec-borderedDefs dl {
    border: none;
}

#page_mypage_delivery_new .entry-post-office-clasp-txt-box {
    margin-top: -1em;
    margin-bottom: 1em;
    font-size: 0.9em;
    color: #282828;
    padding: 1em 2em;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

#page_mypage_delivery_new .entry-post-office-clasp-txt-box .entry-post-office-clasp-txt-box-title {
    font-weight: bold;
}

#page_mypage_delivery_new .entry-post-office-clasp-txt-box ul {}

#page_mypage_delivery_new .entry-post-office-clasp-txt-box ul li {
    margin-bottom: 1em;
    line-height: 1.75em;
}

#page_mypage_delivery_new .entry-post-office-clasp-txt-box ul li:last-child {
    margin-bottom: 0px;
}

#page_mypage_delivery_new .entry-post-office-clasp-txt-box ul li::marker {
    color: #3B464A;
}

#page_mypage_delivery_new .entry-post-office-clasp-txt-box ul li a {
    text-decoration: underline;
    color: #282828;
}

#page_mypage_delivery_new .entry-post-office-clasp-txt-box ul li a:hover {
    text-decoration: none;
}




/* パスワードの再発行 */
#page_forgot .ec-required {
    color: #e8003a;
}

#page_forgot .ec-blockBtn--action {
    /* padding-bottom: 0.05em; 削除 - 基本定義に統合 */
    /* border-radius: 1000px; 削除 - 基本定義に統合 */
}

#page_forgot_complete .ec-off3Grid__cell {
    color: #282828;
    padding: 2em;
    line-height: 1.5em !important;
}

#page_forgot_complete .ec-off3Grid__cell p.ec-reportDescription {
    margin-top: 3em !important;
    line-height: 1.75em !important;
}

/* レビュー投稿 */
#page_review_post .ec-imageGrid__content a {
    color: #282828;
    font-weight: bold;
}

#page_review_complete .ec-imageGrid__content a {
    color: #282828;
    font-weight: bold;
}

#page_review_post .ec-required {
    color: #e8003a;
}

/* #page_review_post .ec-blockBtn--action { border-radius: 1000px; } 削除 - 基本定義に統合 */

/* 新規会員登録 */
.registration_page .ec-required {
    color: #e8003a;
}

.registration_page .entry-annotation {
    margin-bottom: 0.5em;
    font-size: 0.8em;
    color: #282828;
}

.registration_page .entry-annotation2 {
    margin-bottom: 0.5em;
    font-size: 0.8em;
    color: #282828;
}

.registration_page .entry-annotation2 span {
    font-weight: bold;
}

.registration_page .entry-post-office-clasp-box dl {
    border: none;
}

#postOfficeSearchAssist {
    background-color: #f0f7ff !important;
    border: 1px solid #d0e3f7;
}

.registration_page .entry-post-office-clasp-txt-box {
    font-size: 0.9em;
    color: #282828;
    padding: 1em 2em;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.registration_page .entry-post-office-clasp-txt-box .entry-post-office-clasp-txt-box-title {
    font-weight: bold;
}

.registration_page .entry-post-office-clasp-txt-box ul {}

.registration_page .entry-post-office-clasp-txt-box ul li {
    margin-bottom: 1em;
    line-height: 1.75em;
}

.registration_page .entry-post-office-clasp-txt-box ul li:last-child {
    margin-bottom: 0px;
}

.registration_page .entry-post-office-clasp-txt-box ul li::marker {
    color: #3B464A;
}

.registration_page .entry-post-office-clasp-txt-box ul li a {
    text-decoration: underline;
    color: #282828;
}

.registration_page .entry-post-office-clasp-txt-box ul li a:hover {
    text-decoration: none;
}

.registration_page .entry-change-address-txt-box {
    margin-top: 2em;
    font-size: 0.9em;
    color: #282828;
    padding: 2em;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

.registration_page .entry-change-address-txt-box p {
    margin-bottom: 1em;
    line-height: 1.75em;
}

.registration_page .entry-change-address-txt-box p:last-child {
    margin-bottom: 0px;
}

.registration_page .ec-checkbox {
    margin-bottom: 1em;
    color: #282828;
}

.registration_page .ec-checkbox label {
    font-weight: normal;
}

.registration_page .ec-checkbox label input {
    transform: scale(2);
}

.registration_page .ec-checkbox a {
    margin-left: 0.5em;
    color: #2161A5;
}

/* .registration_page .ec-blockBtn--action { padding-top: 0px !important; } 削除 - 基本定義に統合 */

.simple-post-office {
    font-weight: bold;
    color: #e8003a;
}

.registration_page .ec-link {
    margin-left: 1em !important;
    text-decoration: underline;
}

.registration_page .ec-link:hover {
    text-decoration: none;
}

/* お問い合わせ */
#page_contact .contact-notes {
    margin-top: 2em;
    margin-bottom: 3em;
    font-size: 0.9em;
    padding: 2em 2em 0.75em 2em;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

#page_contact .contact-notes-title {
    font-weight: bold;
}

#page_contact .contact-notes .contact-notes-info {
    border-radius: 8px;
    padding: 0.25em 1.5em 0.05em 1.5em;
    background-color: #FEE9E6;
}

#page_contact .contact-notes .contact-notes-point {
    border: 1px solid #F89186;
    border-radius: 8px;
    padding: 1em 3em;
}

#page_contact .contact-notes .contact-notes-point li:last-child {
    margin-bottom: 0px;
}

#page_contact .contact-notes .contact-notes-point li::marker {
    color: #F89186;
}

/* #page_contact .ec-blockBtn--action { padding-top: 0px !important; } 削除 - 基本定義に統合 */

/*【※要ご確認※】重要なお知らせ */
.notice-h1 {
    padding: 2em;
    background-color: #e8003a;
    border-radius: 8px;
    color: #fff;
}

/* よくある質問 */
.faq-page .qa-box {
    margin-top: 1.75em;
}

.faq-page .qa-box .qa-item {
    padding-top: 1.75em;
    padding-bottom: 1.5em;
}

.faq-page .qa-box .qa-item .faq_a::before {
    width: 1.5em;
    height: 1.5em;
    font-size: 1.5em;
    line-height: 1.45em;
    left: -38px;
    margin-top: 0.1em;
}

.faq-page .qa-box .qa-item .faq_a {
    margin-left: 2.4em;
}

.faq-page .qa-box .qa-item p:last-child {
    margin-bottom: 0px;
}

/* 商品一覧 */
#page_product_list .ec-shelfGrid__item-image img,
#page_product_list_category .ec-shelfGrid__item-image img {
    border: 1px solid #fff;
    border-radius: 8px;
    box-shadow: 0px 0px 15px -5px #ccc;
}

#page_product_list .ec-shelfGrid__item-image img:hover,
#page_product_list_category .ec-shelfGrid__item-image img:hover {
    border: 1px solid #e8003a;
}

#page_product_list .name,
#page_product_list_category .name {
    font-size: 16px;
    color: #3B464A;
    line-height: 1.25em;
}

#page_product_list .review-layoutRole *,
#page_product_list_category .review-layoutRole * {
    font-size: 14px;
}

#page_product_list .review-layoutRole.product_list,
#page_product_list_category .review-layoutRole.product_list {
    text-align: left;
}

#page_product_list .price02-default,
#page_product_list_category .price02-default {
    color: #e8003a;
}

#page_product_list .ec-numberInput div,
#page_product_list_category .ec-numberInput div {
    display: none;
}

#page_product_list .ec-shelfGrid .ec-numberInput .plus,
#page_product_list .ec-shelfGrid .ec-numberInput .minus,
#page_product_list_categoryt .ec-shelfGrid .ec-numberInput .plus,
#page_product_list_category .ec-shelfGrid .ec-numberInput .minus {
    border-radius: 4px;
    border-color: #CAC0B5;
    color: #3B464A;
}

#page_product_list .ec-shelfGrid .ec-numberInput .form-control,
#page_product_list_category .ec-shelfGrid .ec-numberInput .form-control {
    border-radius: 4px;
    border-color: #CAC0B5 !important;
    color: #3B464A;
}

#page_product_list .ec-blockBtn--action,
#page_product_list_category .ec-blockBtn--action {
    height: 2em;
    font-size: 0.9em;
}

#page_product_list .ec-shelfGrid.rows .description {
    display: none;
}

/* レビュー一覧 */
#page_review_list .review-productLayout {
    border: 1px solid #FAF9F8;
    border-radius: 8px;
    background-color: #fff;
    box-shadow: 0px 0px 15px -5px #ccc;
}

#page_review_list .ec-imageGrid {
    margin-bottom: 2em;
}

@media screen and (max-width: 768px) {
    #page_review_list .ec-imageGrid__img {
        display: block;
        width: 100%;
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    #page_review_list .ec-imageGrid__content {
        display: block;
        width: 100%;
        text-align: center;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media screen and (max-width: 768px) {
    #page_review_list .review-layoutRole {
        padding-left: 3.5em;
        padding-bottom: 2em;
    }
}

#page_review_list .ec-imageGrid__content a {
    font-size: 1.5em;
    font-weight: bold;
    color: #3B464A;
}

#page_review_list .ec-imageGrid__content a:hover {
    text-decoration: underline;
}

#page_review_list .reviewAvarage {
    border-radius: 4px;
    border: none;
    background-color: #f0f4f8;
    font-size: 14px;
    font-weight: bold;
    color: #3B464A;
}

#page_review_list span.reviewList {
    color: #e8003a;
}

#page_review_list .review-layoutRole .review-gaugeWrap {
    border: 1px solid #ddd;
    border-radius: 4px;
    background: linear-gradient(to bottom, #FAF9F8, #FAF9F8);
}

#page_review_list .review-layoutRole .review-gaugeWrap .gaugeMain {
    border: none;
    background: linear-gradient(to bottom, #F89186, #F89186);
}

#page_review_list .review-layoutGauge {
    margin-bottom: 0.5em;
}

#page_review_list .reviewReccomendLevel {
    font-size: 12px;
    color: #3B464A;
}

#page_review_list .reviewReccomendLevel a {
    font-size: 12px;
    text-decoration: none;
    color: #2161A5;
}

#page_review_list .reviewReccomendReviewer {
    font-size: 12px;
    color: #3B464A;
}

#page_review_list .reviewReccomendReviewer a {
    font-size: 12px;
    text-decoration: none;
    color: #2161A5;
}

#page_review_list .reviewAllView {
    margin-left: -2em;
    text-align: center;
}

#page_review_list .reviewAllView a {
    font-size: 14px;
    text-decoration: none;
    color: #2161A5;
}

#page_review_list .review-sortLayout {
    margin-bottom: 2em;
    border: 1px solid #FAF9F8 !important;
    border-radius: 8px;
    background-color: #f0f4f8;
}

@media screen and (max-width: 768px) {
    #page_review_list .review-sortLayout {
        padding-top: 1em;
        text-align: center;
    }
}

#page_review_list .review-sortLayout .reviewSort {
    font-size: 1.2em;
    color: #3B464A;
}

@media screen and (max-width: 768px) {
    #page_review_list .review-sortLayout .reviewSort span:nth-of-type(1) {
        margin-left: 0px;
    }
}

@media screen and (max-width: 768px) {
    #page_review_list .review-sortLayout .reviewSort:nth-of-type(2) {
        margin-top: 0.75em;
        margin-bottom: 0.5em;
    }
}

#page_review_list .review-sortLayout .ec-inlineBtn--action {
    border-radius: 0px 8px 8px 0px;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
}

#page_review_list .review-sortLayout .ec-inlineBtn--action:hover,
#page_review_list .review-sortLayout .ec-inlineBtn--action:active,
#page_review_list .review-sortLayout .ec-inlineBtn--action:focus,
#page_review_list .review-sortLayout .ec-inlineBtn--action:focus-visible {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border: none !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    outline: none !important;
}

@media screen and (max-width: 768px) {
    #page_review_list .review-sortLayout .ec-inlineBtn--action {
        width: 100%;
        border-radius: 0px 0px 8px 8px;
        font-size: 1.2em;
    }
}

#page_review_list .review-commentLayout {
    margin-bottom: 2em;
    padding: 2em;
    border: 1px solid #ddd !important;
    border-radius: 8px;
    background-color: #fff;
    box-shadow: 0px 0px 15px -5px #ccc;
}

#page_review_list .review-commentLayout * {
    font-size: 15px !important;
}

#page_review_list .reviewAuthor {
    margin-top: 0.5em !important;
    padding-bottom: 0.5em !important;
    border-bottom: 1px dotted #ddd !important;
}

#page_review_list .reviewAuthor p {
    display: none;
}

#page_review_list .reviewComment {
    padding-top: 0.5em;
    line-height: 1.75em !important;
}
/* ========================================
   フォームコンポーネント リニューアル
   既存の ec-* クラスを上書き
   ======================================== */

/* フォーム定義リスト */
.ec-borderedDefs {
    margin-top: 2em;
}

.ec-borderedDefs dl {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 1em;
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 1em;
}

.ec-borderedDefs dl:last-child {
    border-bottom: none;
}

.ec-borderedDefs dt {
    width: 100%;
    margin-bottom: 0.5em;
    font-weight: 700;
    color: #282828;
}

@media only screen and (min-width: 768px) {
    .ec-borderedDefs dt {
        width: 30%;
        padding-right: 2em;
    }
}

.ec-borderedDefs dd {
    width: 100%;
}

@media only screen and (min-width: 768px) {
    .ec-borderedDefs dd {
        width: 70%;
    }
}

/* 必須マーク */
.ec-required {
    color: #e8003a !important;
    font-weight: normal;
    font-size: 0.85em;
    margin-left: 0.25em;
}

/* テキスト入力 */
.ec-input,
.ec-halfInput,
.ec-telInput,
.ec-zipInput,
.ec-numberInput {
    font-family: 'Noto Sans JP', sans-serif;
}

.ec-input input,
.ec-halfInput input,
.ec-telInput input,
.ec-zipInput input,
.ec-numberInput input {
    font-size: 15px;
    padding: 10px 16px;
    border: 2px solid #9eacd8;
    border-radius: 8px;
    background-color: #fff;
    color: #282828;
    transition: all 0.2s ease;
    width: 100%;
}

.ec-input input:hover,
.ec-halfInput input:hover,
.ec-telInput input:hover,
.ec-zipInput input:hover,
.ec-numberInput input:hover {
    border-color: #7a67a9;
}

.ec-input input:focus,
.ec-halfInput input:focus,
.ec-telInput input:focus,
.ec-zipInput input:focus,
.ec-numberInput input:focus {
    outline: none;
    border-color: transparent;
    background-image: linear-gradient(#fff, #fff), linear-gradient(90deg, #e8a3c6, #f7b26d);
    background-origin: border-box;
    background-clip: padding-box, border-box;
    box-shadow: 0 0 0 2px rgba(244, 155, 178, 0.5);
}

.ec-input.error,
.ec-halfInput.error,
.ec-telInput.error,
.ec-zipInput.error {
    border-color: #e8003a !important;
}

/* セレクトボックス */
.ec-select {
    font-family: 'Noto Sans JP', sans-serif;
}

.ec-select select {
    font-size: 15px;
    padding: 10px 36px 10px 16px;
    border: 2px solid #9eacd8;
    border-radius: 8px;
    background-color: #fff;
    color: #282828;
    transition: all 0.2s ease;
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23376189' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px;
    cursor: pointer;
}

.ec-select select:hover {
    border-color: #7a67a9;
}

.ec-select select:focus,
.ec-select select:focus-visible {
    outline: none;
    border-color: transparent;
    box-shadow: 0 0 0 2px rgba(244, 155, 178, 0.5);
}

.ec-select.error {
    border-color: #e8003a !important;
}

/* チェックボックス */
.ec-checkbox {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 0.75em;
}

.ec-checkbox input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}

.ec-checkbox label {
    display: flex;
    align-items: center;
    padding-left: 28px;
    position: relative;
    cursor: pointer;
    font-size: 15px;
    color: #282828;
}

.ec-checkbox label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: 2px solid #9eacd8;
    border-radius: 4px;
    background-color: #fff;
    transition: all 0.2s ease;
}

.ec-checkbox label::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 50%;
    transform: translateY(-50%) scale(0);
    width: 10px;
    height: 6px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform-origin: center;
    transition: transform 0.2s ease;
}

.ec-checkbox input[type="checkbox"]:checked + label::before,
.ec-checkbox label:has(input[type="checkbox"]:checked)::before {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);
    border-color: #e8a4c6;
}

.ec-checkbox input[type="checkbox"]:checked + label::after,
.ec-checkbox label:has(input[type="checkbox"]:checked)::after {
    transform: translateY(-50%) rotate(-45deg) scale(1);
}

.ec-checkbox:hover label::before {
    border-color: #7a67a9;
}

.ec-checkbox input[type="checkbox"]:focus + label::before,
.ec-checkbox label:has(input[type="checkbox"]:focus)::before {
    box-shadow: 0 0 0 3px rgba(122, 103, 169, 0.15);
}

/* form-check構造がある場合、既存のlabel::beforeを非表示 */
.ec-checkbox label:has(.form-check)::before,
.ec-checkbox label:has(.form-check)::after {
    display: none;
}

/* form-check構造内のチェックボックス非表示（重複回避） */
.ec-checkbox .form-check {
    position: relative;
    display: flex;
    align-items: center;
}

.ec-checkbox .form-check-input {
    position: absolute !important;
    left: 0 !important;
    opacity: 0 !important;
    pointer-events: none;
}

.ec-checkbox .form-check-label {
    padding-left: 28px;
    position: relative;
    cursor: pointer;
    font-size: 15px;
    color: #282828;
    display: inline-block;
}

/* form-check-labelの前にカスタムチェックボックスを描画 */
.ec-checkbox .form-check-label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: 2px solid #9eacd8;
    border-radius: 4px;
    background-color: #fff;
    transition: all 0.2s ease;
}

.ec-checkbox .form-check-label::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 50%;
    transform: translateY(-50%) scale(0);
    width: 10px;
    height: 6px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform-origin: center;
    transition: transform 0.2s ease;
}

.ec-checkbox .form-check-input:checked + .form-check-label::before {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);
    border-color: #e8a4c6;
}

.ec-checkbox .form-check-input:checked + .form-check-label::after {
    transform: translateY(-50%) rotate(-45deg) scale(1);
}

.ec-checkbox .form-check:hover .form-check-label::before {
    border-color: #7a67a9;
}

.ec-checkbox .form-check-input:focus + .form-check-label::before {
    box-shadow: 0 0 0 3px rgba(122, 103, 169, 0.15);
}

/* ラジオボタン */
.ec-radio {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 0.75em;
}

.ec-radio input[type="radio"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}

.ec-radio label {
    display: flex;
    align-items: center;
    padding-left: 28px;
    position: relative;
    cursor: pointer;
    font-size: 15px;
    color: #282828;
}

.ec-radio label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: 2px solid #9eacd8;
    border-radius: 50%;
    background-color: #fff;
    transition: all 0.2s ease;
}

.ec-radio label::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 50%;
    transform: translateY(-50%) scale(0);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%);
    transition: transform 0.2s ease;
}

.ec-radio input[type="radio"]:checked + label::before {
    border-color: #e8a4c6;
}

.ec-radio input[type="radio"]:checked + label::after {
    transform: translateY(-50%) scale(1);
}

.ec-radio:hover label::before {
    border-color: #7a67a9;
}

.ec-radio input[type="radio"]:focus + label::before {
    box-shadow: 0 0 0 3px rgba(122, 103, 169, 0.15);
}

/* フォームラベル */
.ec-label {
    font-weight: 700;
    color: #282828;
    font-size: 15px;
}

/* SP調整 */
@media only screen and (max-width: 767px) {
    .ec-borderedDefs dl {
        flex-direction: column;
    }
    
    .ec-borderedDefs dt,
    .ec-borderedDefs dd {
        width: 100%;
    }
    
    .ec-borderedDefs dt {
        padding-right: 0;
        margin-bottom: 0.25em;
    }
}

/* 生年月日選択 */
.ec-birth {
    display: flex;
    gap: 8px;
    align-items: center;
}

.ec-birth select {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15px;
    padding: 10px 36px 10px 16px;
    border: 2px solid #9eacd8;
    border-radius: 8px;
    background-color: #fff;
    color: #282828;
    transition: all 0.2s ease;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23376189' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px;
    cursor: pointer;
}

.ec-birth select:hover {
    border-color: #7a67a9;
}

.ec-birth select:focus,
.ec-birth select:focus-visible {
    outline: none;
    border-color: #7a67a9;
    box-shadow: 0 0 0 3px rgba(122, 103, 169, 0.15);
}

/* インラインボタン（.ec-inlineBtn） */
.ec-inlineBtn {
    border: none !important;
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border-radius: 1000px !important;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
    transition: opacity 0.2s ease;
}

.ec-inlineBtn:hover,
.ec-inlineBtn:active,
.ec-inlineBtn:focus,
.ec-inlineBtn:focus-visible {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    color: #fff !important;
    opacity: 0.8 !important;
    box-shadow: none !important;
    outline: none !important;
}

/* お届け先一覧 アクションエリア */
.ec-addressRole__actions {
    text-align: center;
}

/* ========================================
   進捗表示（.ec-progress）リニューアル
   ======================================== */

/* 未完了ステップの番号（薄いグレー） */
.ec-progress__item .ec-progress__number {
    background: linear-gradient(90deg, #c0c0c0 0%, #d8d8d8 100%) !important;
    border-color: #c0c0c0 !important;
    color: #fff !important;
}

/* 進捗番号（現在・完了時） */
.ec-progress__item.is-complete .ec-progress__number,
.ec-progress__item.is-active .ec-progress__number {
    background: linear-gradient(90deg, #e8a4c6 0%, #f7b36b 100%) !important;
    border-color: #e8a4c6 !important;
    color: #fff !important;
    font-weight: 700;
}

/* 未完了ステップのラベル（薄いグレー） */
.ec-progress__item .ec-progress__label {
    color: #b0b0b0 !important;
}

/* 完了・アクティブステップのラベル */
.ec-progress__item.is-complete .ec-progress__label,
.ec-progress__item.is-active .ec-progress__label {
    color: #e8a4c6 !important;
}

/* 進捗バーの線 */
.ec-progress .ec-progress__item:after {
    background-color: #f0f0f0 !important;
}

/* ========================================
   カート表示（.ec-cartRole, .ec-totalBox）リニューアル
   ======================================== */

/* カート内アイテム */
.ec-cartRole__cart,
.ec-cartRole__body {
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
}

/* 合計金額ボックス */
.ec-totalBox {
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 20px;
    background-color: #fff;
}

/* 合計金額（黒、太字なし、16px） */
.ec-totalBox__total .ec-totalBox__price {
    color: #282828 !important;
    font-size: 16px !important;
    font-weight: normal !important;
    -webkit-text-fill-color: #282828 !important;
}

/* お支払い合計（マゼンタ赤） */
.ec-totalBox__paymentTotal .ec-totalBox__price {
    color: #e8003a !important;
    font-weight: 700 !important;
    -webkit-text-fill-color: #e8003a !important;
}

/* 各種合計項目 */
.ec-totalBox__spec {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
}

/* ========================================
   購入履歴（.ec-historyRole）リニューアル
   ======================================== */

/* 履歴カード全体 */
.ec-historyRole {
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
    background-color: #fff;
}

/* 履歴ヘッダー */
.ec-historyRole__header {
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 12px;
    margin-bottom: 12px;
}

/* 注文日付・番号 */
.ec-historyListHeader__date {
    color: #282828;
    font-weight: 500;
}

/* 履歴詳細 */
.ec-historyRole__detail {
    padding-top: 12px;
}

/* ========================================
   注文情報（.ec-orderRole）リニューアル
   ======================================== */

/* 注文情報セクション */
.ec-orderAccount,
.ec-orderDelivery,
.ec-orderPayment,
.ec-orderCoupon {
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
    background-color: #fff;
}

/* セクション見出し（まとめ買い表と同じデザイン） */
.ec-rectHeading h2 {
    background-image: linear-gradient(90deg, rgba(139, 179, 217, 0.3) 0.695%, rgba(178, 164, 214, 0.3) 100%);
    font-weight: 700;
    font-size: 18px;
    margin: 0 0 16px;
    padding: 8px 13px;
    border-radius: 4px;
}

/* 見出しコンテナ */
.ec-rectHeading {
    margin-bottom: 16px;
}

/* クーポンボタン（中央揃え） */
#customer_detail_box #coupon_button {
    margin: 16px auto;
    display: block;
    width: fit-content;
}

/* ========================================
   ページ見出し（.ec-headingTitle）リニューアル
   ======================================== */

.ec-headingTitle {
    background-image: linear-gradient(to right, rgba(139, 179, 217, 0.4) 0.695%, rgba(178, 164, 214, 0.4));
    padding: 10px 16px;
    border-radius: 4px;
    margin-bottom: 16px;
}

.ec-headingTitle h1,
.ec-headingTitle h2,
.ec-headingTitle h3 {
    margin: 0;
    font-weight: 700;
    font-size: 18px;
    color: #282828;
}

/* ========================================
   モーダル（.ec-modal）リニューアル
   ======================================== */

/* モーダル本体 */
.ec-modal-wrap {
    border-radius: 8px !important;
    background-color: #fff !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2) !important;
    margin: 0 auto;
}

/* モーダルヘッダー */
.ec-modal-header {
    position: relative;
    padding: 16px 20px;
    border-bottom: 1px solid #f0f0f0;
}

/* 閉じるボタン（右上配置） */
.ec-modal-close,
.ec-modal .ec-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: #f0f0f0;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

/* ×印（CSSで描画） */
.ec-modal-close::before,
.ec-modal-close::after,
.ec-modal .ec-modal-close::before,
.ec-modal .ec-modal-close::after {
    content: '';
    position: absolute;
    width: 18px;
    height: 2px;
    background-color: #666;
    border-radius: 1px;
}

.ec-modal-close::before,
.ec-modal .ec-modal-close::before {
    transform: rotate(45deg);
}

.ec-modal-close::after,
.ec-modal .ec-modal-close::after {
    transform: rotate(-45deg);
}

/* ホバー時 */
.ec-modal-close:hover,
.ec-modal .ec-modal-close:hover {
    background-color: #e0e0e0;
}

.ec-modal-close:hover::before,
.ec-modal-close:hover::after,
.ec-modal .ec-modal-close:hover::before,
.ec-modal .ec-modal-close:hover::after {
    background-color: #333;
}

/* アイコン非表示 */
.ec-modal-close .ec-icon,
.ec-modal .ec-modal-close .ec-icon {
    display: none;
}

/* ========================================
   フォームページ共通スタイル（左右padding削除）
   ======================================== */
/* 入力・確認・完了画面の左右padding削除（.containerで管理） */
.ec-contactRole,
.ec-contactConfirmRole,
.ec-contactCompleteRole,
.ec-registerRole,
.ec-registerConfirmRole,
.ec-registerCompleteRole,
.ec-forgotRole,
.ec-forgotCompleteRole,
.ec-cartCompleteRole {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 完了画面 */
#page_contact_complete .ec-contactCompleteRole,
#page_shopping_complete .ec-cartCompleteRole,
#page_entry_complete .ec-registerCompleteRole,
#page_forgot_complete .ec-forgotCompleteRole,
#page_mypage_change_complete .ec-mypageRole,
#page_mypage_withdraw_complete .ec-withdrawRole {
    padding: 24px 0 40px 0;
}

#page_contact_complete .ec-pageHeader,
#page_shopping_complete .ec-pageHeader,
#page_entry_complete .ec-pageHeader,
#page_forgot_complete .ec-pageHeader,
#page_mypage_change_complete .ec-pageHeader,
#page_mypage_withdraw_complete .ec-pageHeader {
    margin-bottom: 32px;
}

#page_contact_complete .ec-reportHeading,
#page_shopping_complete .ec-reportHeading,
#page_entry_complete .ec-reportHeading,
#page_forgot_complete .ec-reportHeading,
#page_mypage_change_complete .ec-reportHeading,
#page_mypage_withdraw_complete .ec-reportHeading {
    margin-bottom: 24px;
}

#page_contact_complete .ec-reportHeading h2,
#page_shopping_complete .ec-reportHeading h2,
#page_entry_complete .ec-reportHeading h2,
#page_forgot_complete .ec-reportHeading h2,
#page_mypage_change_complete .ec-reportHeading h2,
#page_mypage_withdraw_complete .ec-reportHeading h2 {
    font-size: 20px;
    line-height: 1.6;
}

#page_contact_complete .ec-reportDescription,
#page_shopping_complete .ec-reportDescription,
#page_entry_complete .ec-reportDescription,
#page_forgot_complete .ec-reportDescription,
#page_mypage_change_complete .ec-reportDescription,
#page_mypage_withdraw_complete .ec-reportDescription {
    font-size: 15px;
    line-height: 1.9;
    color: #282828;
}

#page_contact_complete .ec-off3Grid,
#page_contact_complete .ec-off4Grid,
#page_shopping_complete .ec-off3Grid,
#page_shopping_complete .ec-off4Grid,
#page_entry_complete .ec-off3Grid,
#page_entry_complete .ec-off4Grid,
#page_forgot_complete .ec-off3Grid,
#page_forgot_complete .ec-off4Grid,
#page_mypage_change_complete .ec-off3Grid,
#page_mypage_change_complete .ec-off4Grid,
#page_mypage_withdraw_complete .ec-off3Grid,
#page_mypage_withdraw_complete .ec-off4Grid {
    margin-top: 40px;
}

/* SP調整 */
@media (max-width: 767px) {
    #page_contact_complete .ec-contactCompleteRole,
    #page_shopping_complete .ec-cartCompleteRole,
    #page_entry_complete .ec-registerCompleteRole,
    #page_forgot_complete .ec-forgotCompleteRole,
    #page_mypage_change_complete .ec-mypageRole,
    #page_mypage_withdraw_complete .ec-withdrawRole {
        padding: 20px 0 48px 0;
    }

    #page_contact_complete .ec-pageHeader,
    #page_shopping_complete .ec-pageHeader,
    #page_entry_complete .ec-pageHeader,
    #page_forgot_complete .ec-pageHeader,
    #page_mypage_change_complete .ec-pageHeader,
    #page_mypage_withdraw_complete .ec-pageHeader {
        margin-bottom: 28px;
    }

    #page_contact_complete .ec-pageHeader h1,
    #page_shopping_complete .ec-pageHeader h1,
    #page_entry_complete .ec-pageHeader h1,
    #page_forgot_complete .ec-pageHeader h1,
    #page_mypage_change_complete .ec-pageHeader h1,
    #page_mypage_withdraw_complete .ec-pageHeader h1 {
        font-size: 20px;
    }

    #page_contact_complete .ec-reportHeading,
    #page_shopping_complete .ec-reportHeading,
    #page_entry_complete .ec-reportHeading,
    #page_forgot_complete .ec-reportHeading,
    #page_mypage_change_complete .ec-reportHeading,
    #page_mypage_withdraw_complete .ec-reportHeading {
        margin-bottom: 20px;
        border-top: none;
    }

    #page_contact_complete .ec-reportHeading h2,
    #page_shopping_complete .ec-reportHeading h2,
    #page_entry_complete .ec-reportHeading h2,
    #page_forgot_complete .ec-reportHeading h2,
    #page_mypage_change_complete .ec-reportHeading h2,
    #page_mypage_withdraw_complete .ec-reportHeading h2 {
        font-size: 17px;
        line-height: 1.7;
    }

    #page_contact_complete .ec-reportDescription,
    #page_shopping_complete .ec-reportDescription,
    #page_entry_complete .ec-reportDescription,
    #page_forgot_complete .ec-reportDescription,
    #page_mypage_change_complete .ec-reportDescription,
    #page_mypage_withdraw_complete .ec-reportDescription {
        font-size: 14px;
        line-height: 2;
    }

    #page_contact_complete .ec-off3Grid,
    #page_contact_complete .ec-off4Grid,
    #page_shopping_complete .ec-off3Grid,
    #page_shopping_complete .ec-off4Grid,
    #page_entry_complete .ec-off3Grid,
    #page_entry_complete .ec-off4Grid,
    #page_forgot_complete .ec-off3Grid,
    #page_forgot_complete .ec-off4Grid,
    #page_mypage_change_complete .ec-off3Grid,
    #page_mypage_change_complete .ec-off4Grid,
    #page_mypage_withdraw_complete .ec-off3Grid,
    #page_mypage_withdraw_complete .ec-off4Grid {
        margin-top: 45px;
    }
}
