/** Shopify CDN: Minification failed

Line 668:0 Unexpected "}"

**/
/* Shopping Guide Section Styles */

.shopping-guide-section {
    padding-top: var(--section-padding-top);
    padding-bottom: var(--section-padding-bottom);
    color: #333;
}

/* Navigation Links */
/* Navigation Links */
.shopping-guide__navi {
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0 0 5rem 0;
}

.shopping-guide__navi-item {
    flex: 1;
}

.shopping-guide__navi-item a {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    padding: 1.5rem 0.5rem;
    background-color: #f5f5f5;
    color: #333;
    text-decoration: none;
    font-size: 1.3rem;
    /* 少し小さくして収まりよく */
    transition: all 0.3s ease;
    width: 100%;
    text-align: center;
}

.shopping-guide__navi-item a:hover {
    background-color: #333;
    color: #fff;
}

/* Section Headings */
.shopping-guide__heading {
    font-size: 2.2rem;
    margin: 4rem 0 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e9dfe3;
    /* Brand sub-color */
    display: flex;
    align-items: center;
}

.shopping-guide__heading::before {
    content: "▼";
    font-size: 1.2rem;
    margin-right: 1rem;
    color: #333;
}

/* Flow Chart (Top) */
.shopping-guide__flow-chart {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6rem;
    background-color: #f9f9f9;
    padding: 2rem;
}

.flow-step {
    flex: 1;
    position: relative;
    background-color: #f0f0f0;
    padding: 1.5rem 1rem;
    text-align: center;
    margin-right: 2rem;
    clip-path: polygon(0% 0%, 90% 0%, 100% 50%, 90% 100%, 0% 100%, 10% 50%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 80px;
}

.flow-step:first-child {
    clip-path: polygon(0% 0%, 90% 0%, 100% 50%, 90% 100%, 0% 100%);
}

.flow-step:last-child {
    margin-right: 0;
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%, 10% 50%);
}

.flow-step__number {
    font-size: 1.2rem;
    font-weight: bold;
    color: #666;
    margin-bottom: 0.5rem;
    display: block;
}

.flow-step__title {
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1.3;
}

.flow-step__sub {
    font-size: 1rem;
    display: block;
    margin-top: 0.4rem;
}


/* Step Details */
.shopping-guide__step {
    display: flex;
    margin-bottom: 6rem;
    gap: 4rem;
    align-items: flex-start;
}

.step-info {
    flex: 1;
    min-width: 0;
    /* Prevent flex overflow */
}

.step-number {
    font-size: 4rem;
    font-weight: bold;
    line-height: 1;
    color: #333;
    margin-bottom: 1rem;
    display: block;
    font-family: sans-serif;
}

.step-number span {
    font-size: 1.4rem;
    display: block;
    margin-bottom: 0.5rem;
}

.step-title {
    font-size: 1.8rem;
    font-weight: bold;
    margin-bottom: 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #333;
    display: inline-block;
}

.step-image {
    flex: 1;
    max-width: 50%;
}

.step-image img {
    width: 100%;
    height: auto;
    border: 1px solid #eee;
}

/* Definition List (Shipping, Payment) */
.shopping-guide__dl {
    margin-bottom: 4rem;
}

.shopping-guide__dl dt {
    font-weight: bold;
    font-size: 1.6rem;
    margin-bottom: 1rem;
    margin-top: 3rem;
    padding-left: 1rem;
    border-left: 4px solid #333;
}

.shopping-guide__dl dd {
    font-size: 1.4rem;
    line-height: 1.8;
    margin-left: 0;
    margin-bottom: 2rem;
}

/* Contact Box */
.contact-box {
    border: 1px solid #ccc;
    padding: 2rem 3rem;
    /* Reduced top/bottom padding */
    background-color: #fafafa;
    margin-bottom: 4rem;
}

.contact-box__title {
    font-size: 1.8rem;
    margin-bottom: 2rem;
    text-align: center;
    font-weight: bold;
}

.contact-box__content {
    font-size: 1.4rem;
    line-height: 1.8;
}

/* Fix for H3 headers in Text Content (e.g. Payment Methods) */
.shopping-guide-section .rte h3 {
    font-size: 1.8rem;
    margin-top: 3rem;
    margin-bottom: 1.5rem;
    font-weight: bold;
    line-height: 1.5;
    border-bottom: 1px dotted #ccc;
    /* Optional: adds a nice separator like sub-sections */
    padding-bottom: 0.5rem;
}

.shopping-guide-section .rte h3:first-child {
    margin-top: 0;
}

.contact-box__content a {
    text-decoration: underline;
    text-underline-offset: 0.3rem;
    color: #333;
    transition: opacity 0.3s ease;
}

.contact-box__content a:hover {
    opacity: 0.75;
    text-decoration-thickness: 2px;
}

/* Responsive */
@media screen and (max-width: 768px) {
    .shopping-guide__navi {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 1rem;
    }

    .shopping-guide__navi-item {
        width: calc(50% - 0.5rem);
        flex: 0 0 auto;
    }

    .shopping-guide__navi-item a {
        padding: 1rem 0.5rem;
        font-size: 1.2rem;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        line-height: 1.4;
    }

    /* Flow Chart Mobile - Hidden */
    .shopping-guide__flow-chart {
        display: none;
    }

    /* Step Details Mobile (Timeline Style) */
    .shopping-guide__step {
        flex-direction: column;
        gap: 1rem;
        position: relative;
        padding-left: 5rem;
        /* Increased space for larger circle */
        margin-bottom: 4rem;
        border-left: 1px solid #e9dfe3;
        /* Brand sub-color for line */
        margin-left: 2.5rem;
        /* Offset for the line */
    }

    .shopping-guide__step:last-child {
        border-left: none;
        margin-left: 2.6rem;
        padding-left: 4.9rem;
    }

    /* Circle Number Badge */
    .step-number {
        position: absolute;
        left: -3rem;
        /* Center on the border line (width 6rem / 2) */
        top: 0;
        width: 6rem;
        height: 6rem;
        background-color: #f5f5f5;
        /* Light grey like sample */
        color: #333;
        border-radius: 50%;
        display: flex;
        flex-direction: column;
        /* Stack STEP and Number */
        justify-content: center;
        align-items: center;
        margin-bottom: 0;
        z-index: 1;
        font-family: sans-serif;
    }

    .step-number span {
        display: block;
        /* Show "STEP" label */
        font-size: 1rem;
        margin-bottom: 0;
        font-weight: normal;
        line-height: 1;
    }

    /* The number itself */
    .step-number {
        font-size: 2.2rem;
        font-weight: bold;
        line-height: 1;
    }

    .step-title {
        font-size: 1.8rem;
        border-bottom: none;
        margin-bottom: 0.5rem;
        margin-top: 1rem;
        /* Align with circle center roughly */
    }

    .step-info {
        padding-top: 1rem;
    }

    .step-image {
        max-width: 100%;
        order: 1;
        /* Image after text */
        margin-bottom: 1rem;
    }
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 100px;
    /* 固定ヘッダー考慮 */
}

/* Common Table Style (Generic) */
.common-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 4rem 0;
    letter-spacing: 0.05em;
    font-size: 1.4rem;
    line-height: 1.8;
}

.common-table th,
.common-table td {
    padding: 1.2rem 2rem;
    border-bottom: 1px solid #CCC;
    text-align: left;
    vertical-align: middle;
}

.common-table th {
    background-color: #e9dfe3;
    color: #333;
    font-weight: 500;
    width: 30%;
    border-right: 1px solid #fff;
}

.common-table td {
    background-color: #f5f2ec;
    color: #333;
}

.common-table tr:last-child th {
    border-bottom: none;
}

.common-table tr:last-child td {
    border-bottom: none;
}

/* スマホ対応 */
@media screen and (max-width: 750px) {
    .common-table {
        display: block;
    }

    .common-table tbody,
    .common-table tr,
    .common-table th,
    .common-table td {
        display: block;
        width: 100%;
        border: none;
    }

    .common-table tr {
        margin-bottom: 2rem;
        overflow: hidden;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    }

    .common-table th {
        padding: 1rem 1.5rem;
        border-bottom: 1px solid #fff;
        width: 100%;
        border-right: none;
        border-radius: 0 !important;
    }

    .common-table td {
        padding: 1rem 1.5rem;
        border-radius: 0 !important;
    }
}

/* Custom Heading Styles */
.custom-heading-01 {
    margin: 4rem 0 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e9dfe3;
    /* Brand sub-color */
}

/* 01 Triangle removed */

.custom-heading-02 {
    margin: 4rem 0 2rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #333;
    text-align: center;
    /* Default center, can be overridden */
}

.custom-heading-03 {
    margin: 4rem 0 2rem;
    padding: 1.5rem 0 1.5rem 1.5rem;
    border-left: 6px solid #e9dfe3;
    /* Brand sub-color */
    background-color: #fafafa;
    width: 100%;
}

/* Alignment Utilities (if not already present or specific overrides) */
.text-left {
    text-align: left !important;
    justify-content: flex-start !important;
}

.text-center {
    text-align: center !important;
    justify-content: center !important;
}

.text-right {
    text-align: right !important;
    justify-content: flex-end !important;
}

/* ポリシーページのレイアウト修正 */
.shopify-policy__container {
    max-width: var(--page-width) !important;
    margin: 6rem auto !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

@media screen and (min-width: 750px) {
    .shopify-policy__container {
        padding-left: 5rem !important;
        padding-right: 5rem !important;
    }
}

/* 取り扱い店舗 (Stockists) スタイル */
.stockists_header_title {
    line-height: 1.5;
}

.stockists_navi {
    margin: 4rem auto 0 !important;
    text-align: center;
    display: flex;
    /* Flexboxに変更して中央寄せ */
    justify-content: center;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
}

.stockists_navi li {
    display: inline-block;
    margin-bottom: 10px;
    padding: 0 20px;
    border-right: 1px solid #e9dfe3;
    /* サブカラーに変更 */
}

.stockists_navi li a {
    text-decoration: none;
    color: #333;
    letter-spacing: 0.1em;
    transition: opacity 0.3s;
}

.stockists_navi li a:hover {
    opacity: 0.7;
}

.stockists_navi li:last-child {
    border: none;
}

.stockists_area {
    width: 100%;
    max-width: 850px;
    /* レスポンシブ対応のためmax-widthに変更 */
    margin: auto;
    padding: 65px 0 0 0;
    animation: stockists-fade 0.8s linear;
    animation-fill-mode: both;
}

@keyframes stockists-fade {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.regions_title {
    margin-bottom: 35px !important;
    text-align: center;
    background-color: #e9dfe3;
    /* サブカラーに変更 */
    width: 100%;
    padding: 15px;
    /* 余白を少し調整 */
    font-size: 1.8rem;
    letter-spacing: 0.1em;
    font-weight: 500;
}

.prefectures_title {
    margin: 0 0 10px 0 !important;
    font-size: 14px;
}

.stockists_area table {
    border-collapse: collapse;
    background: none;
    font-size: 1.4rem;
}

.stockists_table {
    width: 100%;
    margin-bottom: 50px !important;
    border: solid #e9dfe3;
    /* サブカラー */
    border-width: 1px 0 0 0;
}

.stockists_table th,
.stockists_table td {
    padding: 2rem;
    /* 余白を広めに調整 */
    vertical-align: middle;
    border: solid #e9dfe3;
    /* サブカラー */
    border-width: 0 0 1px 0;
    text-align: left;
}

.stockists_table th {
    font-weight: bold;
    /* 見出しは太字に（要望に合わせて調整可） */
    width: 30%;
}

.stockists_table a {
    color: #333;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    text-decoration-color: #e9dfe3;
    /* ブランドサブカラーで下線 */
    transition: all 0.3s ease;
}

.stockists_table a:hover {
    text-decoration-color: #333;
    opacity: 0.7;
}

.stockists_table td {
    line-height: 1.8;
}

.stockists_table p {
    margin: 0;
}

.stockists_table .zip:before {
    content: "\3012";
    margin-right: 8px;
}

.stockists_table .tel:before {
    content: "TEL";
    margin-right: 8px;
}

.filter.none {
    display: none;
}

@media(max-width: 959px) {
    .stockists_area {
        width: 100%;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media(max-width: 768px) {
    .stockists_table tr {
        padding: 15px 0;
        border-width: 0 0 1px 0;
        border-style: solid;
        border-color: #e9dfe3;

        display: block;
    }

    .stockists_table th,
    .stockists_table td {
        display: block;
        padding: 5px 0;
        border: none;
        width: 100%;
    }

    .stockists_table th {
        margin-bottom: 0.5rem;
    }

}

.stockists_table td {
    padding-bottom: 1rem;
}
}

/* Brand Features Section */
/* Brand Features Section */
.brand-features-section {
    color: #333;
}

.brand-features__subheading {
    font-size: 1.6rem;
    /* Increased from 1.2rem */
    letter-spacing: 0.05em;
    color: #666;
    margin-bottom: 5rem;
    text-transform: uppercase;
    display: flex;
    justify-content: center;
    /* Center on PC too */
    align-items: baseline;
    gap: 1rem;
    flex-wrap: wrap;
}

.brand-features__ja-text {
    font-size: 2rem;
    /* Increased significantly - Main Heading Size */
    font-weight: normal;
    color: #888;
    margin-left: 0.5rem;
}

.brand-features__subheading .brand-features__ja-text {
    font-size: 1.6rem;
    /* Reset for Subheading to match English */
    margin-left: 1rem;
}

.brand-features__ja-text--block {
    display: block;
    width: 100%;
    margin-left: 0;
    margin-top: 0.4rem;
}

.brand-features__content-wrapper {
    margin-top: 4rem;
    display: flex;
    /* Flex container for Side Heading + Grid */
    align-items: center;
    gap: 0;
    /* Removed gap */
}

/* This is the columns container */
.brand-features__grid {
    flex: 1;
    display: flex;
    justify-content: space-around;
    gap: 2rem;
    flex-wrap: wrap;
}

.brand-features__side-heading {
    flex: 0 0 25%;
    min-width: 200px;
}

.brand-features__side-title {
    font-size: 2.8rem;
    font-family: var(--font-heading-family);
    font-style: italic;
    font-weight: bold;
    line-height: 1.2;
    margin: 0;
}

.brand-features__side-title .brand-features__ja-text {
    font-style: normal;
    font-size: 1.5rem;
    /* Increased from 1.2rem */
    font-weight: normal;
    display: block;
    margin-top: 1rem;
}

.brand-features__item {
    flex: 1;
    min-width: 200px;
    text-align: center;
}

.brand-features__icon {
    display: flex;
    align-items: center;
    /* Center vertically */
    justify-content: center;
    height: 100px;
    /* Fixed height to align titles */
    margin: 0 auto 1.5rem;
}

.brand-features__icon img {
    max-height: 100%;
    width: auto;
    /* Maintain aspect ratio */
    height: auto;
    object-fit: contain;
}

.brand-features__item-title {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    margin: 0 0 1.5rem;
    text-transform: uppercase;
}

.brand-features__item-text {
    font-size: 1.3rem;
    line-height: 1.6;
    color: #555;
}

.brand-features__item-text p {
    margin: 0 0 0.5rem;
}

/* Mobile Responsive */
@media screen and (max-width: 750px) {
    .brand-features__subheading {
        justify-content: center;
        gap: 0;
        margin-top: 3rem;
        /* Increase space between Main Heading and Subheading */
    }

    .brand-features__ja-text {
        margin-left: 0;
    }

    .brand-features__content-wrapper {
        flex-direction: column;
        align-items: center;
        /* Center align */
        gap: 3rem;
    }

    .brand-features__side-heading {
        flex: 0 0 auto;
        width: 100%;
        margin-bottom: 2rem;
        text-align: center;
        /* Center align */
    }

    .brand-features__grid {
        /* Columns container */
        width: 100%;
        flex-direction: column;
        gap: 4rem;
    }

    .brand-features__item {
        width: 100%;
    }
}

/* ==========================================================================
   Policy Pages (Privacy Policy, Terms of Service, Refund Policy, etc.)
   ========================================================================== */

.custom-policy-container {
    width: 100%;
    margin: 6rem auto 10rem;
    color: #333;
    line-height: 2;
}

.custom-policy-container .custom-policy-text {
    margin-bottom: 3rem;
    letter-spacing: 0.05em;
}

.custom-policy-item {
    margin-top: 6rem;
    margin-bottom: 6rem;
}

.custom-policy-heading {
    font-size: 2.2rem;
    font-weight: normal;
    margin-bottom: 3rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e9dfe3;
    color: #333;
}

@media screen and (min-width: 750px) {
    .custom-policy-heading {
        font-size: 2.8rem;
    }
}

.custom-policy-list {
    margin-top: 2rem;
    margin-bottom: 4rem;
    padding-left: 2.5rem;
    list-style-type: disc;
}

.custom-policy-list>li {
    margin-bottom: 1.5rem;
    letter-spacing: 0.05em;
}

.custom-policy-sublist {
    margin-top: 1rem;
    margin-bottom: 1.5rem;
    padding-left: 2rem;
    list-style-type: circle;
}

.custom-policy-sublist>li {
    margin-bottom: 0.8rem;
    letter-spacing: 0.05em;
    color: #555;
}

/* ==========================================================================
   Globo Product Options Override Styles
   ========================================================================== */

/* 1. 全体のコンテナデザイン化 (.gift クラス指定時) */
#product_option.gift {
    background-color: #f5f2ec !important;
    /* テーマのベージュ背景色 */
    padding: 3rem 4rem !important;
    border-radius: 4px;
    margin-top: 4rem !important;
    margin-bottom: 2rem !important;
}

/* 2. フォントの統一 (Themeのフォントを強制的に継承させる) */
#product_option.gift .gpo-app,
#product_option.gift .gpo-label,
#product_option.gift .gpo-label span.label-content,
#product_option.gift .gpo-label span.addOn,
#product_option.gift .gpo-helptext,
#product_option.gift .gpo-ov-helptext,
#product_option.gift .gpo-input,
#product_option.gift .gpo-select,
#product_option.gift .gpo-select select,
#product_option.gift .gpo-total-text,
#product_option.gift .gpo-tabs .gpo-tabs-title .gpo-tabs-tab,
#product_option.gift .gpo-group__header .group-label,
#product_option.gift .gpo-swatches.buttons input+label {
    font-family: inherit !important;
}

/* アプリ側の背景色リセット */
#product_option.gift .gpo-app {
    background: transparent !important;
}

/* 3. ラベル（見出し）のデザイン */
#product_option.gift .gpo-label {
    margin-bottom: 1rem !important;
    font-weight: bold !important;
    font-size: 1.4rem !important;
    letter-spacing: 0.05em;
    color: #333 !important;
}

/* 4. セレクトボックス（ドロップダウン）の最適化 */
#product_option.gift .gpo-select select {
    border: 1px solid #ccc !important;
    background-color: #fff !important;
    padding: 1.2rem 1.5rem !important;
    font-size: 1.5rem !important;
    border-radius: 0 !important;
    color: #333 !important;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") !important;
    background-repeat: no-repeat !important;
    background-position: right 1.5rem center !important;
    background-size: 1.5rem !important;
}

#product_option.gift .gpo-select select:focus {
    outline: none !important;
    border-color: #333 !important;
    box-shadow: 0 0 0 1px #333 !important;
}

/* 5. 画像スワッチ（ギフトラッピングの選択など）の最適化 */
#product_option.gift .gpo-swatches input:checked+label {
    border-color: #333 !important;
    box-shadow: 0 0 0 1px #333 !important;
}

#product_option.gift .gpo-swatches input+label:hover {
    border-color: #999 !important;
}

#product_option.gift .gpo-swatches input+label {
    border-radius: 0 !important;
    border-color: #ddd !important;
    background-color: #fff !important;
    transition: all 0.3s ease;
}

#product_option.gift .gpo-swatch__inner {
    border-radius: 0 !important;
}

/* スワッチテキスト (オーバーレイ/タイトル) */
#product_option.gift .gpo-ov-extend .gpo-ov-title span {
    font-size: 1.3rem !important;
    color: #555 !important;
    letter-spacing: 0.05em;
}

/* 6. テキストエリア（ご案内など）の箱型デザイン化 */
#product_option.gift .gpo-paragraph.gpo-tinymce {
    background-color: transparent !important;
    /* 全体がベージュになったため不要に変更 */
    padding: 1rem 0 !important;
    border-radius: 0;
    margin-top: 1rem !important;
}

#product_option.gift .gpo-paragraph.gpo-tinymce p {
    font-size: 1.5rem !important;
    font-weight: bold !important;
    color: #333 !important;
    margin-bottom: 1.5rem !important;
    border-bottom: 1px solid #e9dfe3 !important;
    padding-bottom: 1rem !important;
}

#product_option.gift .gpo-paragraph.gpo-tinymce ul {
    padding-left: 2rem !important;
    margin: 0 !important;
    list-style-type: disc !important;
}

#product_option.gift .gpo-paragraph.gpo-tinymce ul li {
    font-size: 1.3rem !important;
    line-height: 1.6 !important;
    /* 行間を微調整 */
    color: #555 !important;
    margin-bottom: 0.8rem !important;
    /* リスト項目の下余白を詰める */
    letter-spacing: 0.03em;
}

#product_option.gift .gpo-paragraph.gpo-tinymce ul li:last-child {
    margin-bottom: 0 !important;
}

/* 目立つ赤字の調整（強すぎる赤をトーンダウン） */
#product_option.gift .gpo-paragraph.gpo-tinymce span[style*="color: #e03e2d"] {
    color: #b04444 !important;
    /* 少し落ち着いた赤褐色 */
    font-weight: 500 !important;
}

/* 7. 合計テキストの非表示または整頓 */
#product_option.gift .gpo-total.gpo-form__group {
    border-top: 1px solid #e9dfe3 !important;
}

#product_option.gift .gpo-total-text {
    font-size: 1.5rem !important;
    letter-spacing: 0.05em;
    color: #333 !important;
}

#product_option.gift .gpo-total-text .money {
    color: #333 !important;
    /* 緑色をキャンセル */
    font-weight: bold !important;
    font-size: 1.8rem !important;
}