/**
 * GemLive WooCommerce styles.
 */


.gemlive-woocommerce .woocommerce,
.gemlive-woocommerce .woocommerce-page {
    color: rgba(255, 255, 255, 0.9);
}

.gemlive-woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

@media (min-width: 640px) {
    .gemlive-woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .gemlive-woocommerce ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem;
    }
}

.gemlive-woocommerce ul.products li.product {
    margin: 0;
    padding: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.gemlive-woocommerce .woocommerce-loop-product__title {
    color: #fff;
}

.gemlive-woocommerce .price,
.gemlive-woocommerce .price .amount {
    color: #C9A84C;
}

.gemlive-woocommerce .woocommerce-Price-currencySymbol {
    margin-right: 0.15em;
}

.gemlive-woocommerce a.button,
.gemlive-woocommerce button.button,
.gemlive-woocommerce input.button,
.gemlive-woocommerce .button.alt {
    background: #C9A84C !important;
    color: #0A0A1A !important;
    border: none !important;
    border-radius: 0.5rem !important;
    font-weight: 500;
    padding: 0.75rem 1.5rem !important;
    transition: background 0.2s;
}

.gemlive-woocommerce a.button:hover,
.gemlive-woocommerce button.button:hover,
.gemlive-woocommerce input.button:hover {
    background: #D4B55E !important;
    color: #0A0A1A !important;
}

.gemlive-woocommerce .gemlive-product-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

.gemlive-woocommerce .gemlive-product-actions .add_to_cart_button {
    width: 100% !important;
    background: transparent !important;
    color: rgba(255, 255, 255, 0.7) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 0.75rem !important;
    padding: 0.625rem 1rem !important;
    font-size: 0.875rem !important;
    line-height: 1.25rem !important;
    text-align: center !important;
    white-space: normal !important;
}

.gemlive-woocommerce .gemlive-product-actions .add_to_cart_button:hover {
    border-color: #C9A84C !important;
    color: #C9A84C !important;
    background: transparent !important;
}

.gemlive-woocommerce table.shop_table {
    background: rgba(26, 26, 46, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 1rem;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    width: 100%;
    color: rgba(255, 255, 255, 0.85);
}

.gemlive-woocommerce table.shop_table th,
.gemlive-woocommerce table.shop_table td {
    border-color: rgba(255, 255, 255, 0.08);
    padding: 1rem 1.25rem;
}

.gemlive-woocommerce table.shop_table thead th {
    background: rgba(10, 10, 26, 0.6);
    color: #C9A84C;
    font-weight: 500;
}

.gemlive-woocommerce .cart_totals,
.gemlive-woocommerce .woocommerce-checkout {
    background: rgba(26, 26, 46, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 1rem;
    padding: 1.5rem;
}

.gemlive-woocommerce form .form-row input.input-text,
.gemlive-woocommerce form .form-row textarea,
.gemlive-woocommerce form .form-row select,
.gemlive-woocommerce .select2-container .select2-selection--single {
    background: rgba(10, 10, 26, 0.8) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.5rem !important;
    color: #fff !important;
    padding: 0.65rem 0.85rem !important;
}

.gemlive-woocommerce form .form-row label {
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 0.35rem;
}

.gemlive-woocommerce .woocommerce-info,
.gemlive-woocommerce .woocommerce-message,
.gemlive-woocommerce .woocommerce-error {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    padding: 1rem 1.25rem;
    margin: 0 0 1.5rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.5rem;
    line-height: 1.5;
}

.gemlive-woocommerce .woocommerce-info,
.gemlive-woocommerce .woocommerce-message {
    background: rgba(26, 26, 46, 0.8);
    border-top: 3px solid #C9A84C;
    color: rgba(255, 255, 255, 0.85);
}

.gemlive-woocommerce .woocommerce-error {
    background: rgba(60, 20, 20, 0.6);
    border-top: 3px solid #e57373;
    color: #ffcdd2;
}

.gemlive-woocommerce .woocommerce-info .button,
.gemlive-woocommerce .woocommerce-message .button,
.gemlive-woocommerce .woocommerce-error .button {
    float: none;
    flex-shrink: 0;
    margin: 0 0 0 auto;
    padding: 0.5rem 1rem !important;
    font-size: 0.875rem;
    line-height: 1.25;
    white-space: nowrap;
}

/* 削除の取り消し（Undo）リンク */
.gemlive-woocommerce .woocommerce-message a.restore-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
    flex-shrink: 0;
    padding: 0.45rem 1rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(201, 168, 76, 0.45);
    background: rgba(201, 168, 76, 0.12);
    color: #C9A84C !important;
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.gemlive-woocommerce .woocommerce-message a.restore-item::before {
    content: "\21ba";
    font-size: 0.95rem;
    line-height: 1;
}

.gemlive-woocommerce .woocommerce-message a.restore-item:hover {
    background: #C9A84C;
    color: #0A0A1A !important;
    border-color: #C9A84C;
}

.gemlive-woocommerce .woocommerce-message a.restore-item:focus-visible {
    outline: 2px solid rgba(201, 168, 76, 0.55);
    outline-offset: 2px;
}

.gemlive-woocommerce .single-product div.product {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .gemlive-woocommerce .single-product div.product {
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
    }
}

.gemlive-woocommerce .single-product .product_title {
    color: #fff;
    font-size: 1.75rem;
    font-weight: 300;
    margin-bottom: 0.5rem;
}

.gemlive-woocommerce .single-product .woocommerce-product-gallery img {
    border-radius: 1rem;
}

.gemlive-woocommerce .woocommerce-pagination ul {
    display: flex;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin-top: 2rem;
}

.gemlive-woocommerce .woocommerce-pagination ul li a,
.gemlive-woocommerce .woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.7);
}

.gemlive-woocommerce .woocommerce-pagination ul li span.current {
    background: #C9A84C;
    color: #0A0A1A;
    border-color: #C9A84C;
}

.gemlive-woocommerce .woocommerce-notices-wrapper:not(:empty) {
    margin-bottom: 1.5rem;
}

.gemlive-woocommerce .woocommerce-MyAccount-content .woocommerce-notices-wrapper:empty {
    display: none;
    margin: 0;
    padding: 0;
}

.gemlive-woocommerce #payment {
    background: rgba(10, 10, 26, 0.6);
    border-radius: 0.75rem;
}

.gemlive-woocommerce #payment div.payment_box {
    background: rgba(26, 26, 46, 0.9);
    color: rgba(255, 255, 255, 0.8);
}

.gemlive-woocommerce #payment div.payment_box::before {
    border-bottom-color: rgba(26, 26, 46, 0.9);
}

.gemlive-woocommerce .stock.out-of-stock {
    color: #e57373;
    font-weight: 500;
}


/* 既定の WooCommerce レイアウトCSSをdequeueしているため、マイアカウントの2カラムは自前で定義 */
/* :has() に依存せず、PHP側で付与する .gemlive-account-layout を使用 */
.gemlive-woocommerce .gemlive-account-layout {
    align-items: start;
}

@media (min-width: 768px) {
    .gemlive-woocommerce .gemlive-account-layout {
        display: grid;
        grid-template-columns: 240px 1fr;
        gap: 2rem;
    }
}

.gemlive-woocommerce .gemlive-account-nav,
.gemlive-woocommerce .woocommerce-MyAccount-navigation {
    margin: 0;
    padding: 0;
    float: none;
    width: auto;
}

.gemlive-woocommerce .woocommerce-MyAccount-content {
    margin: 0;
    padding: 0;
    float: none;
    width: auto;
    min-width: 0;
}

.gemlive-woocommerce .woocommerce-MyAccount-content > :first-child {
    margin-top: 0;
}

.gemlive-woocommerce .gemlive-account-dashboard > :first-child {
    margin-top: 0;
}

.gemlive-woocommerce .gemlive-account-nav {
    background: rgba(26, 26, 46, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 1rem;
    padding: 0.5rem;
}

.gemlive-woocommerce .gemlive-account-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    background: transparent;
    border: none;
    border-radius: 0;
}

.gemlive-woocommerce .gemlive-account-nav li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gemlive-woocommerce .gemlive-account-nav li a {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.5rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.2s, background 0.2s;
}

.gemlive-woocommerce .gemlive-account-nav li a:hover {
    color: #C9A84C;
    background: rgba(255, 255, 255, 0.04);
}

.gemlive-woocommerce .gemlive-account-nav li.is-active a {
    color: #0A0A1A;
    background: #C9A84C;
    font-weight: 500;
}

/* モバイル: サイドナビを横スクロールタブ化 */
@media (max-width: 767px) {
    .gemlive-woocommerce .gemlive-account-nav {
        margin-bottom: 1.5rem;
        position: sticky;
        top: 4rem;
        z-index: 10;
        background: rgba(10, 10, 26, 0.85);
        backdrop-filter: blur(8px);
    }

    .gemlive-woocommerce .gemlive-account-nav ul {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 0.4rem;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .gemlive-woocommerce .gemlive-account-nav ul::-webkit-scrollbar {
        display: none;
    }

    .gemlive-woocommerce .gemlive-account-nav li a {
        padding: 0.5rem 0.85rem;
        font-size: 0.82rem;
        border: 1px solid rgba(255, 255, 255, 0.1);
    }

    .gemlive-woocommerce .gemlive-account-nav li.is-active a {
        border-color: #C9A84C;
    }
}

.gemlive-woocommerce .gemlive-login-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

@media (min-width: 480px) {
    .gemlive-woocommerce .gemlive-login-actions {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 1rem;
    }
}

.gemlive-woocommerce .gemlive-login-actions .woocommerce-form-login__rememberme {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    line-height: 1.4;
}

.gemlive-woocommerce .gemlive-login-actions .woocommerce-form-login__submit {
    margin-left: 0;
}

@media (min-width: 480px) {
    .gemlive-woocommerce .gemlive-login-actions .woocommerce-form-login__submit {
        margin-left: auto;
    }
}

/* CloudSecure CAPTCHA（ダーク UI 向け） */
.gemlive-woocommerce .gemlive-wc-captcha {
    margin: 0.75rem 0 1rem;
    min-width: 0;
}

.gemlive-woocommerce .gemlive-wc-captcha .cloudsecure-wp-captcha-block {
    margin: 0;
}

.gemlive-woocommerce .gemlive-wc-captcha .cloudsecure-wp-captcha-block label {
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
    line-height: 1.45;
    word-break: break-word;
}

.gemlive-woocommerce .gemlive-wc-captcha .cloudsecure-wp-captcha-block img {
    max-width: 100%;
    height: auto;
    display: block;
}

.gemlive-woocommerce .gemlive-wc-captcha .cloudsecure-wp-captcha-block input.input-text,
.gemlive-woocommerce .gemlive-wc-captcha .cloudsecure-wp-captcha-block input.input {
    background: rgba(10, 10, 26, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #fff;
    border-radius: 0.5rem;
    padding: 0.65rem 0.85rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.gemlive-woocommerce .gemlive-privacy-row .woocommerce-form__label-for-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0;
    line-height: 1.55;
}

.gemlive-woocommerce .gemlive-privacy-row .woocommerce-form__input-checkbox {
    flex: 0 0 auto;
    margin: 0.2rem 0 0;
}

.gemlive-woocommerce .gemlive-privacy-row label span {
    flex: 1;
    min-width: 0;
    word-break: break-word;
}

.gemlive-woocommerce .gemlive-privacy-row label {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
}

.gemlive-woocommerce .gemlive-privacy-row a {
    color: #C9A84C;
}

/* スパム対策のハニーポット(視覚・支援技術の双方から隠す) */
.gemlive-woocommerce .gemlive-hp-row {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* アカウントカード(プリコンパイルTailwindに無い任意値クラスへ依存しないよう明示指定) */
.gemlive-woocommerce .gemlive-account-card,
.gemlive-woocommerce .gemlive-account-tile {
    background: #1A1A2E;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 1rem;
}

/* ログイン・登録・パスワード再設定フォーム */
.gemlive-woocommerce .gemlive-account-auth {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    min-width: 0;
    width: 100%;
}

@media (min-width: 1024px) {
    .gemlive-woocommerce .gemlive-account-auth {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gemlive-woocommerce .gemlive-account-card--auth {
    padding: 1.25rem;
    min-width: 0;
}

@media (min-width: 768px) {
    .gemlive-woocommerce .gemlive-account-card--auth {
        padding: 2rem;
    }
}

.gemlive-woocommerce .gemlive-account-card--narrow {
    max-width: 28rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.gemlive-woocommerce .gemlive-account-card--auth .gemlive-account-card__title {
    color: #fff;
    font-size: 1.125rem;
    font-weight: 500;
    margin: 0 0 0.25rem;
}

.gemlive-woocommerce .gemlive-account-card--auth .gemlive-account-card__lead {
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.875rem;
    margin: 0 0 1.5rem;
    line-height: 1.5;
}

/* カード内フォームは二重枠にしない（WC 既定の login 枠を打ち消す） */
.gemlive-woocommerce .gemlive-account-card--auth .woocommerce-form-login,
.gemlive-woocommerce .gemlive-account-card--auth .woocommerce-form-register,
.gemlive-woocommerce .gemlive-account-card--auth .lost_reset_password {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
}

.gemlive-woocommerce .gemlive-account-card--auth .form-row,
.gemlive-woocommerce .gemlive-account-card--auth .woocommerce-form-row {
    margin-bottom: 1rem;
    float: none;
    width: 100%;
    padding: 0;
}

.gemlive-woocommerce .gemlive-account-card--auth input.input-text,
.gemlive-woocommerce .gemlive-account-card--auth input[type="email"],
.gemlive-woocommerce .gemlive-account-card--auth input[type="password"],
.gemlive-woocommerce .gemlive-account-card--auth input[type="text"],
.gemlive-woocommerce .gemlive-account-card--auth select,
.gemlive-woocommerce .gemlive-account-card--auth textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.gemlive-woocommerce .gemlive-account-card--auth .woocommerce-form-register__submit,
.gemlive-woocommerce .gemlive-account-card--auth .woocommerce-form-login__submit,
.gemlive-woocommerce .gemlive-account-card--auth .lost_reset_password .button {
    width: 100%;
    min-height: 2.75rem;
}

@media (min-width: 480px) {
    .gemlive-woocommerce .gemlive-login-actions .woocommerce-form-login__submit {
        width: auto;
        min-width: 8rem;
    }
}

.gemlive-woocommerce .gemlive-account-card--auth .lost_password {
    margin: 0.75rem 0 0;
    font-size: 0.875rem;
}

.gemlive-woocommerce .gemlive-account-card--auth .lost_password a {
    color: #C9A84C;
    text-decoration: none;
}

.gemlive-woocommerce .gemlive-account-card--auth .lost_password a:hover {
    text-decoration: underline;
}

/* ゲスト向けログイン画面の横スクロール防止 */
.gemlive-woocommerce.woocommerce-account .woocommerce {
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
}

/* アカウント認証ページ（ログイン・登録・パスワード）— モバイル向け補強 */
.gemlive-woocommerce.woocommerce-account .gemlive-container {
    min-width: 0;
}

.gemlive-woocommerce.woocommerce-account form .form-row,
.gemlive-woocommerce.woocommerce-account form .woocommerce-form-row {
    float: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    clear: both;
    box-sizing: border-box;
}

.gemlive-woocommerce .gemlive-account-auth--single {
    grid-template-columns: minmax(0, 1fr);
}

.gemlive-woocommerce .gemlive-account-card--auth .woocommerce-password-strength,
.gemlive-woocommerce .gemlive-account-card--auth .woocommerce-password-hint {
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .gemlive-woocommerce.woocommerce-account .gemlive-account-layout {
        display: block;
    }

    .gemlive-woocommerce.woocommerce-account .gemlive-account-layout .woocommerce-MyAccount-navigation,
    .gemlive-woocommerce.woocommerce-account .gemlive-account-layout .woocommerce-MyAccount-content {
        width: 100%;
        max-width: 100%;
    }

    .gemlive-woocommerce .gemlive-account-card--narrow {
        max-width: none;
        margin-inline: 0;
    }

    .gemlive-woocommerce.woocommerce-account .gemlive-container > [class*="mb-8"] {
        margin-bottom: 1.5rem;
    }

    .gemlive-woocommerce.woocommerce-account .woocommerce-info,
    .gemlive-woocommerce.woocommerce-account .woocommerce-message,
    .gemlive-woocommerce.woocommerce-account .woocommerce-error {
        flex-direction: column;
        align-items: stretch;
    }

    .gemlive-woocommerce.woocommerce-account .woocommerce-info .button,
    .gemlive-woocommerce.woocommerce-account .woocommerce-message .button,
    .gemlive-woocommerce.woocommerce-account .woocommerce-error .button {
        margin-left: 0;
        width: 100%;
        text-align: center;
    }
}

.gemlive-woocommerce .gemlive-account-tile {
    display: block;
    text-decoration: none;
    transition: border-color 0.2s;
}

.gemlive-woocommerce .gemlive-account-tile:hover {
    border-color: #C9A84C;
}

.gemlive-woocommerce .gemlive-account-name {
    display: inline-block;
    max-width: 8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}

.gemlive-woocommerce .gemlive-account-card .form-row,
.gemlive-woocommerce .gemlive-account-card .woocommerce-form-row {
    margin-bottom: 1rem;
}

.gemlive-woocommerce .gemlive-account-card label {
    display: block;
}

.gemlive-woocommerce .gemlive-account-card .required {
    color: #C9A84C;
    border: 0;
}

.gemlive-woocommerce #account_display_name_description em {
    display: block;
    margin-top: 0.35rem;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.8rem;
    font-style: normal;
}

.gemlive-woocommerce .gemlive-optional {
    color: rgba(255, 255, 255, 0.35);
    font-size: 0.78rem;
    margin-left: 0.25rem;
}

/* 姓名などの2カラム(WC既定レイアウトCSSをdequeueしているため自前で定義) */
.gemlive-woocommerce .gemlive-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0 1rem;
}

@media (min-width: 640px) {
    .gemlive-woocommerce .gemlive-form-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.gemlive-woocommerce .gemlive-password-fieldset {
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    padding: 1.25rem;
    margin: 1.5rem 0;
}

.gemlive-woocommerce .gemlive-password-fieldset legend {
    color: #C9A84C;
    font-size: 0.9rem;
    padding: 0 0.5rem;
}

.gemlive-woocommerce .woocommerce-password-strength {
    margin-top: 0.5rem;
    padding: 0.4rem 0.6rem;
    border-radius: 0.4rem;
    font-size: 0.8rem;
    text-align: center;
}

.gemlive-woocommerce .woocommerce-password-strength.strong { background: rgba(76, 175, 80, 0.18); color: #a5d6a7; }
.gemlive-woocommerce .woocommerce-password-strength.good { background: rgba(255, 193, 7, 0.16); color: #ffe082; }
.gemlive-woocommerce .woocommerce-password-strength.short,
.gemlive-woocommerce .woocommerce-password-strength.bad { background: rgba(229, 115, 115, 0.16); color: #ef9a9a; }
.gemlive-woocommerce .woocommerce-password-hint { display: block; margin-top: 0.35rem; color: rgba(255, 255, 255, 0.4); font-size: 0.8rem; }

@media (min-width: 640px) {
    .gemlive-woocommerce .woocommerce-address-fields__field-wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 1rem;
    }
    .gemlive-woocommerce .woocommerce-address-fields__field-wrapper > .form-row-wide {
        grid-column: 1 / -1;
    }
    .gemlive-woocommerce .woocommerce-address-fields__field-wrapper > .form-row-first {
        grid-column: 1;
    }
    .gemlive-woocommerce .woocommerce-address-fields__field-wrapper > .form-row-last {
        grid-column: 2;
    }
}

.gemlive-woocommerce .gemlive-account-card form > p:last-child .button {
    margin-top: 0.5rem;
}


.gemlive-woocommerce .gemlive-eyebrow {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.gemlive-account-eyebrow {
    color: #C9A84C;
    font-size: 0.7rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}

.gemlive-account-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem 0.5rem;
    max-width: 100%;
    margin-top: 0.85rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: rgb(255 255 255 / 0.4);
}

.gemlive-account-breadcrumb a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    transition: color 0.2s;
}

.gemlive-account-breadcrumb a:hover {
    color: #C9A84C;
}

.gemlive-account-breadcrumb span {
    color: rgba(255, 255, 255, 0.8);
}

.gemlive-account-breadcrumb .gemlive-breadcrumb__item + .gemlive-breadcrumb__item::before {
    color: rgb(255 255 255 / 0.25);
}

.gemlive-woocommerce .gemlive-dash-hero {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.gemlive-woocommerce .gemlive-dash-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.gemlive-woocommerce .gemlive-welcome-banner {
    display: flex;
    gap: 1rem;
    background: linear-gradient(135deg, rgba(201, 168, 76, 0.14), rgba(201, 168, 76, 0.04));
    border: 1px solid rgba(201, 168, 76, 0.3);
}

.gemlive-woocommerce .gemlive-welcome-banner__icon {
    flex: 0 0 auto;
    font-size: 1.6rem;
    color: #C9A84C;
    line-height: 1;
}

.gemlive-woocommerce .gemlive-welcome-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.gemlive-woocommerce .gemlive-dash-hero__avatar {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    font-weight: 600;
    color: #0A0A1A;
    background: linear-gradient(135deg, #E4C76B 0%, #C9A84C 60%, #A6852F 100%);
    box-shadow: 0 6px 18px rgba(201, 168, 76, 0.25);
}

.gemlive-woocommerce .gemlive-dash-hero__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.6rem;
}

.gemlive-woocommerce .gemlive-rank-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.7rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
    border: 1px solid rgba(201, 168, 76, 0.4);
    color: #C9A84C;
    background: rgba(201, 168, 76, 0.08);
}

.gemlive-woocommerce .gemlive-tier-bronze { --tier: #b08d57; }
.gemlive-woocommerce .gemlive-tier-silver { --tier: #cbd0d6; }
.gemlive-woocommerce .gemlive-tier-gold { --tier: #C9A84C; }

.gemlive-woocommerce .gemlive-rank-chip.gemlive-tier-bronze { color: #c9a06b; border-color: rgba(176, 141, 87, 0.5); background: rgba(176, 141, 87, 0.1); }
.gemlive-woocommerce .gemlive-rank-chip.gemlive-tier-silver { color: #d7dbe0; border-color: rgba(203, 208, 214, 0.45); background: rgba(203, 208, 214, 0.1); }

.gemlive-woocommerce .gemlive-stat {
    text-align: center;
}

.gemlive-woocommerce .gemlive-stat__num {
    color: #fff;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.1;
}

.gemlive-woocommerce .gemlive-stat__num .amount,
.gemlive-woocommerce .gemlive-stat__num bdi {
    color: #fff;
}

.gemlive-woocommerce .gemlive-stat__num span {
    font-size: 0.9rem;
    font-weight: 400;
    margin-left: 0.15rem;
}

.gemlive-woocommerce .gemlive-stat__rank {
    color: #C9A84C;
    font-size: 1.8rem;
}

.gemlive-woocommerce .gemlive-stat__label {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.8rem;
    margin-top: 0.4rem;
}

.gemlive-woocommerce .gemlive-progress {
    height: 8px;
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.gemlive-woocommerce .gemlive-progress > span {
    display: block;
    height: 100%;
    border-radius: 9999px;
    background: linear-gradient(90deg, #C9A84C, #E4C76B);
    transition: width 0.6s ease;
}

.gemlive-woocommerce .gemlive-recent-orders {
    display: grid;
    gap: 0.75rem;
}

.gemlive-woocommerce .gemlive-order-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
    transition: border-color 0.2s;
}

.gemlive-woocommerce .gemlive-order-row__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    text-decoration: none;
    color: inherit;
}

.gemlive-woocommerce .gemlive-order-row__receipt {
    align-self: flex-end;
}

.gemlive-woocommerce .gemlive-order-row:hover {
    border-color: #C9A84C;
}

.gemlive-woocommerce .gemlive-order-row__side {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.gemlive-woocommerce .gemlive-order-status {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.6rem;
    border-radius: 9999px;
    font-size: 0.72rem;
    font-weight: 500;
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.7);
    white-space: nowrap;
}

.gemlive-woocommerce .gemlive-order-status--processing { background: rgba(255, 193, 7, 0.16); color: #ffe082; }
.gemlive-woocommerce .gemlive-order-status--completed { background: rgba(76, 175, 80, 0.18); color: #a5d6a7; }
.gemlive-woocommerce .gemlive-order-status--on-hold { background: rgba(255, 152, 0, 0.16); color: #ffcc80; }
.gemlive-woocommerce .gemlive-order-status--cancelled,
.gemlive-woocommerce .gemlive-order-status--failed { background: rgba(229, 115, 115, 0.16); color: #ef9a9a; }
.gemlive-woocommerce .gemlive-order-status--refunded,
.gemlive-woocommerce .gemlive-order-status--pending { background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.6); }


.gemlive-woocommerce .gemlive-tier-hero {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.gemlive-woocommerce .gemlive-tier-hero__icon {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #0A0A1A;
    background: linear-gradient(135deg, #E4C76B 0%, #C9A84C 60%, #A6852F 100%);
}

.gemlive-woocommerce .gemlive-tier-hero.gemlive-tier-bronze .gemlive-tier-hero__icon { background: linear-gradient(135deg, #d6ad77, #b08d57); }
.gemlive-woocommerce .gemlive-tier-hero.gemlive-tier-silver .gemlive-tier-hero__icon { background: linear-gradient(135deg, #e8ecf0, #c0c6cd); }

.gemlive-woocommerce .gemlive-tier-card.is-current {
    border-color: #C9A84C;
    box-shadow: 0 0 0 1px rgba(201, 168, 76, 0.4);
}

.gemlive-woocommerce .gemlive-tier-badge {
    margin-left: auto;
    font-size: 0.65rem;
    padding: 0.1rem 0.5rem;
    border-radius: 9999px;
    background: #C9A84C;
    color: #0A0A1A;
    font-weight: 600;
}

.gemlive-woocommerce .gemlive-benefit-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.gemlive-woocommerce .gemlive-benefit-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.82rem;
}

.gemlive-woocommerce .gemlive-benefit-list li i {
    color: #C9A84C;
    margin-top: 0.1rem;
}

.gemlive-woocommerce .gemlive-account-nav li a i {
    font-size: 1.05rem;
    width: 1.2rem;
    text-align: center;
    opacity: 0.85;
}

@media (min-width: 768px) {
    .gemlive-woocommerce .woocommerce-Addresses.addresses {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
    }
}

.gemlive-woocommerce .woocommerce-Address {
    background: rgba(26, 26, 46, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 1rem;
    padding: 1.25rem 1.5rem;
}

.gemlive-woocommerce .woocommerce-Address-title h3 {
    color: #fff;
    font-weight: 500;
}

.gemlive-woocommerce .woocommerce-Address address {
    color: rgba(255, 255, 255, 0.7);
    font-style: normal;
    line-height: 1.7;
}

.gemlive-woocommerce .gemlive-orders-list {
    display: grid;
    gap: 0.75rem;
}

.gemlive-woocommerce .gemlive-order-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.gemlive-woocommerce .gemlive-order-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.gemlive-woocommerce .gemlive-order-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gemlive-woocommerce .gemlive-order-action {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.4rem 0.85rem;
    border-radius: 9999px;
    font-size: 0.78rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: border-color 0.2s, color 0.2s;
}

.gemlive-woocommerce .gemlive-order-action:hover {
    border-color: #C9A84C;
    color: #C9A84C;
}

.gemlive-woocommerce .gemlive-order-action--pay,
.gemlive-woocommerce .gemlive-order-action--view {
    background: #C9A84C;
    border-color: #C9A84C;
    color: #0A0A1A;
    font-weight: 500;
}

.gemlive-woocommerce .gemlive-order-action--pay:hover,
.gemlive-woocommerce .gemlive-order-action--view:hover {
    background: #D4B55E;
    border-color: #D4B55E;
    color: #0A0A1A;
}

.gemlive-woocommerce .gemlive-order-action--receipt {
    border-color: rgba(201, 168, 76, 0.45);
    color: #E8D5A3;
}

.gemlive-woocommerce .gemlive-order-action--receipt:hover {
    border-color: #C9A84C;
    color: #C9A84C;
    background: rgba(201, 168, 76, 0.08);
}

.gemlive-woocommerce .gemlive-orders-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    margin-top: 1.5rem;
}

.gemlive-woocommerce .gemlive-tracking-box {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    background: rgba(201, 168, 76, 0.08);
    border: 1px solid rgba(201, 168, 76, 0.25);
}

.gemlive-woocommerce .gemlive-order-notes {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.gemlive-woocommerce .gemlive-order-note__date {
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.75rem;
    margin-bottom: 0.25rem;
}

.gemlive-woocommerce .gemlive-order-note__body {
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.85rem;
}

.gemlive-woocommerce .gemlive-addresses {
    display: grid;
    gap: 1rem;
}

@media (min-width: 768px) {
    .gemlive-woocommerce .gemlive-addresses {
        grid-template-columns: 1fr 1fr;
    }
}

.gemlive-woocommerce .gemlive-address-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.gemlive-woocommerce .gemlive-address-card__body {
    color: rgba(255, 255, 255, 0.7);
    font-style: normal;
    line-height: 1.8;
    font-size: 0.88rem;
}

.gemlive-woocommerce .woocommerce-form-login,
.gemlive-woocommerce .woocommerce-form-coupon {
    background: rgba(26, 26, 46, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 1rem;
    padding: 1.25rem 1.5rem;
}

.gemlive-woocommerce .woocommerce-form-login-toggle .woocommerce-info,
.gemlive-woocommerce .woocommerce-form-coupon-toggle .woocommerce-info {
    background: rgba(26, 26, 46, 0.8);
    border-top-color: #C9A84C;
    color: rgba(255, 255, 255, 0.85);
    border-radius: 0.5rem;
}

.gemlive-woocommerce .woocommerce-account-fields .create-account label {
    color: rgba(255, 255, 255, 0.7);
}


.gemlive-cart-page .woocommerce {
    margin: 0;
}

.gemlive-cart-layout {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

@media (min-width: 1024px) {
    .gemlive-cart-layout {
        flex-direction: row;
        align-items: flex-start;
        gap: 2.5rem;
    }

    .gemlive-cart-main {
        flex: 1 1 65%;
        min-width: 0;
    }

    .gemlive-cart-sidebar {
        flex: 0 0 35%;
        max-width: 22rem;
        position: sticky;
        top: 9rem;
    }
}

.gemlive-cart-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.gemlive-cart-item {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: rgba(26, 26, 46, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.03);
    border-radius: 1rem;
    transition: border-color 0.2s;
}

@media (min-width: 640px) {
    .gemlive-cart-item {
        flex-direction: row;
        gap: 1.25rem;
        padding: 1.25rem 1.5rem;
    }
}

.gemlive-cart-item:hover {
    border-color: rgba(201, 168, 76, 0.1);
}

.gemlive-cart-item__thumb {
    flex-shrink: 0;
}

.gemlive-cart-item__thumb-link {
    display: block;
    width: 7rem;
    height: 7rem;
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.gemlive-cart-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gemlive-cart-item__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.gemlive-cart-item__head {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .gemlive-cart-item__head {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 1rem;
    }
}

.gemlive-cart-item__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.35rem;
    font-size: 0.7rem;
    color: rgba(255, 255, 255, 0.4);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.gemlive-cart-item__badge {
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201, 168, 76, 0.2);
    color: rgba(201, 168, 76, 0.85);
}

.gemlive-cart-item__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    color: #fff;
}

.gemlive-cart-item__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}

.gemlive-cart-item__title a:hover {
    color: #C9A84C;
}

.gemlive-cart-item__price-col {
    flex-shrink: 0;
    text-align: left;
}

@media (min-width: 640px) {
    .gemlive-cart-item__price-col {
        text-align: right;
    }
}

.gemlive-cart-item__price-label {
    display: block;
    font-size: 0.65rem;
    color: rgba(255, 255, 255, 0.3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.15rem;
}

.gemlive-cart-item__subtotal {
    display: block;
    font-size: 1.125rem;
    font-weight: 700;
    color: #C9A84C;
}

.gemlive-cart-item__subtotal .amount,
.gemlive-cart-item__unit .amount {
    color: inherit;
}

.gemlive-cart-item__unit {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.35);
}

.gemlive-cart-item__foot {
    margin-top: 0.25rem;
}

.gemlive-cart-item__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    flex-wrap: wrap;
}

.gemlive-qty-stepper {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.gemlive-qty-stepper__label {
    font-size: 0.65rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.35);
}

.gemlive-qty-stepper__control {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 0.75rem;
    background: rgba(10, 10, 26, 0.5);
    overflow: hidden;
}

.gemlive-qty-stepper__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    min-height: 2.75rem;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.75);
    font-size: 1.125rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    flex-shrink: 0;
}

.gemlive-qty-stepper__btn:hover:not(:disabled) {
    background: rgba(201, 168, 76, 0.12);
    color: #C9A84C;
}

.gemlive-qty-stepper__btn:focus-visible {
    outline: 2px solid rgba(201, 168, 76, 0.55);
    outline-offset: -2px;
    z-index: 1;
}

.gemlive-qty-stepper__btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.gemlive-qty-stepper__btn--minus {
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.gemlive-qty-stepper__btn--plus {
    border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.gemlive-cart-item__qty .quantity {
    display: inline-flex;
    align-items: center;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
}

.gemlive-cart-item__qty .quantity input.qty {
    width: 3rem;
    height: 2.75rem;
    margin: 0;
    padding: 0;
    border: none;
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    background: transparent;
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
}

.gemlive-qty-stepper--fixed .gemlive-cart-item__qty .quantity input.qty {
    border-left: none;
    border-right: none;
}

.gemlive-cart-item__qty .quantity input.qty:focus {
    outline: none;
    box-shadow: inset 0 0 0 2px rgba(201, 168, 76, 0.35);
}

.gemlive-cart-item__qty .quantity input.qty::-webkit-outer-spin-button,
.gemlive-cart-item__qty .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.gemlive-cart-item__remove {
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.gemlive-woocommerce .woocommerce-cart-form a.remove.gemlive-cart-remove {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: auto !important;
    height: auto !important;
    min-height: 2.75rem;
    min-width: 5.5rem;
    padding: 0.55rem 1rem !important;
    border-radius: 0.625rem !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    background: rgba(255, 255, 255, 0.04) !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    color: rgba(255, 255, 255, 0.6) !important;
    text-decoration: none;
    cursor: pointer;
    position: relative;
    z-index: 2;
    transition: color 0.2s, background 0.2s, border-color 0.2s;
}

.gemlive-woocommerce .woocommerce-cart-form a.remove.gemlive-cart-remove i {
    font-size: 1rem;
    line-height: 1;
}

.gemlive-woocommerce .woocommerce-cart-form a.remove.gemlive-cart-remove:hover {
    color: #ffb4b4 !important;
    background: rgba(229, 115, 115, 0.12) !important;
    border-color: rgba(229, 115, 115, 0.35) !important;
}

.gemlive-woocommerce .woocommerce-cart-form a.remove.gemlive-cart-remove:focus-visible {
    outline: 2px solid rgba(229, 115, 115, 0.45);
    outline-offset: 2px;
}

.gemlive-cart-actions {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.gemlive-cart-coupon {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

@media (min-width: 640px) {
    .gemlive-cart-coupon {
        flex-direction: row;
        align-items: stretch;
    }
}

.gemlive-cart-coupon__input {
    flex: 1;
    min-width: 0;
    padding: 0.65rem 1rem !important;
    background: rgba(26, 26, 46, 0.8) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 0.75rem !important;
    color: #fff !important;
    font-size: 0.875rem !important;
}

.gemlive-cart-coupon__input::placeholder {
    color: rgba(255, 255, 255, 0.25);
}

.gemlive-cart-coupon__btn {
    background: transparent !important;
    color: rgba(255, 255, 255, 0.7) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 0.75rem !important;
    padding: 0.65rem 1.25rem !important;
    font-size: 0.8125rem !important;
    white-space: nowrap;
}

.gemlive-cart-coupon__btn:hover {
    border-color: #C9A84C !important;
    color: #C9A84C !important;
    background: transparent !important;
}

.gemlive-cart-actions__row {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .gemlive-cart-actions__row {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

.gemlive-cart-continue {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.4);
    text-decoration: none;
    transition: color 0.2s;
}

.gemlive-cart-continue:hover {
    color: #C9A84C;
}

.gemlive-cart-update {
    background: transparent !important;
    color: rgba(255, 255, 255, 0.7) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 0.75rem !important;
    padding: 0.65rem 1.25rem !important;
    font-size: 0.8125rem !important;
}

.gemlive-cart-update:hover {
    border-color: rgba(255, 255, 255, 0.35) !important;
    color: #fff !important;
    background: transparent !important;
}

.gemlive-cart-totals {
    background: rgba(26, 26, 46, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.03);
    border-radius: 1rem;
    padding: 1.5rem;
}

.gemlive-cart-totals h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.gemlive-cart-totals__table {
    width: 100%;
    margin: 0 0 1rem;
    border: none;
    background: transparent;
}

.gemlive-cart-totals__table th,
.gemlive-cart-totals__table td {
    padding: 0.65rem 0;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    background: transparent;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.65);
}

.gemlive-cart-totals__table tr:last-child th,
.gemlive-cart-totals__table tr:last-child td {
    border-bottom: none;
}

.gemlive-cart-totals__table .order-total th,
.gemlive-cart-totals__table .order-total td {
    padding-top: 1rem;
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
}

.gemlive-cart-totals__table .order-total td {
    color: #C9A84C;
    font-size: 1.25rem;
    font-weight: 700;
}

.gemlive-cart-totals__table .amount {
    color: inherit;
}

.gemlive-cart-totals .wc-proceed-to-checkout {
    padding: 0;
    margin: 0;
}

.gemlive-cart-totals .wc-proceed-to-checkout .checkout-button,
.gemlive-cart-totals .wc-proceed-to-checkout a.button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    margin: 0 0 0.75rem;
    padding: 1rem 1.5rem !important;
    border-radius: 0.75rem !important;
    font-weight: 700 !important;
    font-size: 0.875rem !important;
    box-shadow: 0 10px 25px rgba(201, 168, 76, 0.2);
}

.gemlive-cart-totals .wc-proceed-to-checkout .checkout-button:hover {
    box-shadow: 0 12px 28px rgba(201, 168, 76, 0.28);
}

.gemlive-cart-page .woocommerce-notices-wrapper:not(:empty) {
    margin-bottom: 1.5rem;
}

.gemlive-cart-page p.cart-empty.woocommerce-info {
    display: none;
}

.gemlive-cart-page .return-to-shop {
    display: none;
}

/* ── カート商品フッターのボタン群 ── */
.gemlive-cart-item__linkbtns {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.gemlive-save-later {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 2.75rem;
    padding: 0.55rem 0.9rem;
    border-radius: 0.625rem;
    border: 1px solid rgba(201, 168, 76, 0.35);
    background: rgba(201, 168, 76, 0.08);
    color: rgba(201, 168, 76, 0.95);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, opacity 0.2s;
}

.gemlive-save-later i {
    font-size: 1rem;
    line-height: 1;
}

.gemlive-save-later:hover {
    background: rgba(201, 168, 76, 0.18);
    border-color: rgba(201, 168, 76, 0.6);
    color: #C9A84C;
}

.gemlive-save-later:focus-visible {
    outline: 2px solid rgba(201, 168, 76, 0.55);
    outline-offset: 2px;
}

.gemlive-save-later.is-busy,
.gemlive-saved__to-cart.is-busy,
.gemlive-saved__remove.is-busy {
    opacity: 0.5;
    cursor: progress;
}

@media (max-width: 480px) {
    .gemlive-save-later span {
        display: none;
    }

    .gemlive-save-later {
        padding: 0.55rem 0.75rem;
    }
}

/* ── あとで買う（Save for later） ── */
.gemlive-saved[hidden] {
    display: none;
}

.gemlive-saved {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.gemlive-saved__head {
    margin-bottom: 1.5rem;
}

.gemlive-saved__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #fff;
}

.gemlive-saved__title i {
    color: #C9A84C;
}

.gemlive-saved__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.4rem;
    border-radius: 9999px;
    background: rgba(201, 168, 76, 0.15);
    color: #C9A84C;
    font-size: 0.75rem;
    font-weight: 700;
}

.gemlive-saved__sub {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.4);
}

.gemlive-saved__list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.gemlive-saved-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem 1rem;
    background: rgba(26, 26, 46, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.04);
    border-radius: 0.85rem;
    transition: border-color 0.2s;
}

.gemlive-saved-item:hover {
    border-color: rgba(201, 168, 76, 0.12);
}

.gemlive-saved-item__thumb {
    flex-shrink: 0;
    display: block;
    width: 4rem;
    height: 4rem;
    border-radius: 0.6rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.gemlive-saved-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gemlive-saved-item__body {
    flex: 1;
    min-width: 0;
}

.gemlive-saved-item__title {
    margin: 0 0 0.25rem;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.4;
    color: #fff;
}

.gemlive-saved-item__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}

.gemlive-saved-item__title a:hover {
    color: #C9A84C;
}

.gemlive-saved-item__price {
    font-size: 0.9rem;
    font-weight: 700;
    color: #C9A84C;
}

.gemlive-saved-item__price .amount {
    color: inherit;
}

.gemlive-saved-item__stock {
    margin: 0.2rem 0 0;
    font-size: 0.75rem;
    color: #ef9a9a;
}

.gemlive-saved-item__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.gemlive-saved__to-cart {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 2.5rem;
    padding: 0.5rem 0.9rem;
    border-radius: 0.6rem;
    border: 1px solid rgba(201, 168, 76, 0.5);
    background: rgba(201, 168, 76, 0.12);
    color: #C9A84C;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.gemlive-saved__to-cart:hover:not(:disabled) {
    background: #C9A84C;
    color: #0A0A1A;
}

.gemlive-saved__to-cart:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.gemlive-saved__remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.6rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: transparent;
    color: rgba(255, 255, 255, 0.4);
    font-size: 1.1rem;
    cursor: pointer;
    transition: color 0.2s, background 0.2s, border-color 0.2s;
}

.gemlive-saved__remove:hover {
    color: #ffb4b4;
    background: rgba(229, 115, 115, 0.1);
    border-color: rgba(229, 115, 115, 0.3);
}

@media (max-width: 560px) {
    .gemlive-saved-item {
        flex-wrap: wrap;
    }

    .gemlive-saved-item__actions {
        width: 100%;
        justify-content: flex-end;
    }

    .gemlive-saved__to-cart span {
        display: inline;
    }
}

/* ── よく一緒に購入される商品（クロスセル） ── */
.gemlive-cross-sells {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.gemlive-cross-sells__head {
    margin-bottom: 1.5rem;
}

.gemlive-cross-sells__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #fff;
}

.gemlive-cross-sells__title i {
    color: #C9A84C;
}

.gemlive-cross-sells__sub {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.4);
}

.gemlive-cross-sells__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

@media (min-width: 640px) {
    .gemlive-cross-sells__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.25rem;
    }
}

@media (min-width: 1024px) {
    .gemlive-cross-sells__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 1.5rem;
    }
}

/* ── 最近見た商品（閲覧履歴） ── */
.gemlive-recently-viewed {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.gemlive-recently-viewed__head {
    margin-bottom: 1.5rem;
}

.gemlive-recently-viewed__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #fff;
}

.gemlive-recently-viewed__title i {
    color: #C9A84C;
}

.gemlive-recently-viewed__sub {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.4);
}

.gemlive-recently-viewed__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

@media (min-width: 640px) {
    .gemlive-recently-viewed__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.25rem;
    }
}

@media (min-width: 1024px) {
    .gemlive-recently-viewed__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 1.5rem;
    }
}

.gemlive-cart-item dl.variation {
    margin: 0.35rem 0 0;
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.45);
}

.gemlive-cart-item dl.variation dt,
.gemlive-cart-item dl.variation dd {
    display: inline;
    margin: 0;
}

.gemlive-cart-item dl.variation dt::after {
    content: ': ';
}

.gemlive-cart-item dl.variation dd::after {
    content: ' ';
}

@media (max-width: 639px) {
    .gemlive-cart-totals__table.shop_table_responsive tr {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 1rem;
    }

    .gemlive-cart-totals__table.shop_table_responsive tr td {
        text-align: right;
    }

    .gemlive-cart-totals__table.shop_table_responsive tr td::before {
        display: none;
    }
}

.gemlive-checkout-wrap .woocommerce-checkout h3,
.gemlive-checkout-wrap #order_review_heading {
    color: #fff;
    font-weight: 300;
    font-size: 1.125rem;
    margin-bottom: 1rem;
}

.gemlive-checkout-wrap .col2-set {
    display: grid;
    gap: 2rem;
}

@media (min-width: 768px) {
    .gemlive-checkout-wrap .col2-set {
        grid-template-columns: 1fr 1fr;
    }
}

.gemlive-checkout-wrap #order_review {
    background: rgba(26, 26, 46, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 1rem;
    padding: 1.5rem;
}

.gemlive-checkout-wrap {
    --gemlive-checkout-card: rgba(26, 26, 46, 0.72);
    --gemlive-checkout-card-border: rgba(255, 255, 255, 0.06);
    --gemlive-checkout-input-bg: rgba(10, 10, 26, 0.88);
    --gemlive-checkout-input-border: rgba(255, 255, 255, 0.12);
    --gemlive-checkout-input-focus: rgba(201, 168, 76, 0.55);
    --gemlive-checkout-field-height: 3.75rem;
    --gemlive-checkout-radius: 1rem;
    --gemlive-checkout-radius-sm: 0.75rem;
    --gemlive-checkout-sidebar-width: 22.5rem;
    color: var(--gemlive-text);
}

.gemlive-checkout-wrap .wc-block-checkout,
.gemlive-checkout-wrap .wp-block-woocommerce-checkout {
    margin: 0;
}

.gemlive-checkout-wrap .wc-block-components-sidebar-layout {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin: 0;
}

.gemlive-checkout-wrap .wc-block-components-main,
.gemlive-checkout-wrap .wc-block-components-sidebar,
.gemlive-checkout-wrap .wc-block-checkout__sidebar {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    min-width: 0;
}

.gemlive-checkout-wrap .wc-block-components-sidebar,
.gemlive-checkout-wrap .wc-block-checkout__sidebar {
    order: -1;
    position: sticky;
    top: calc(var(--gemlive-main-pt-md, 5rem) + 0.25rem);
    z-index: 15;
}

@media (min-width: 900px) {
    .gemlive-checkout-wrap .wc-block-components-sidebar-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) var(--gemlive-checkout-sidebar-width);
        gap: 2.75rem;
        align-items: start;
    }

    .gemlive-checkout-wrap .wc-block-components-main {
        grid-column: 1;
        grid-row: 1;
        order: unset;
    }

    .gemlive-checkout-wrap .wc-block-components-sidebar,
    .gemlive-checkout-wrap .wc-block-checkout__sidebar {
        grid-column: 2;
        grid-row: 1;
        order: unset;
        width: auto !important;
        position: sticky;
        top: calc(var(--gemlive-main-pt-md, 5rem) + 0.5rem);
        align-self: start;
    }
}

@media (min-width: 1200px) {
    .gemlive-checkout-wrap .wc-block-components-sidebar-layout {
        --gemlive-checkout-sidebar-width: 24rem;
        gap: 3rem;
    }
}

.gemlive-checkout-wrap .wc-block-components-checkout-step {
    background: linear-gradient(165deg, rgba(34, 34, 58, 0.88) 0%, rgba(20, 20, 38, 0.94) 100%);
    border: 1px solid var(--gemlive-checkout-card-border);
    border-radius: var(--gemlive-checkout-radius);
    padding: 1.35rem 1.35rem 1.75rem;
    margin-bottom: 1rem;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.04) inset,
        0 12px 40px rgba(0, 0, 0, 0.18);
    overflow: visible;
}

.gemlive-checkout-wrap .wc-block-components-main {
    counter-reset: gemlive-checkout-step;
}

.gemlive-checkout-wrap .wc-block-components-checkout-step__title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin: 0 0 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.gemlive-checkout-wrap .wc-block-components-checkout-step__title::before {
    counter-increment: gemlive-checkout-step;
    content: counter(gemlive-checkout-step);
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(201, 168, 76, 0.12);
    border: 1px solid rgba(201, 168, 76, 0.32);
    color: #e8d08a;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0;
}

.gemlive-checkout-wrap .wc-block-checkout__order-notes .gemlive-order-note-intro__title::before {
    display: none;
}

.gemlive-checkout-wrap .wc-block-components-checkout-step__description,
.gemlive-checkout-wrap .wc-block-components-checkout-step__description p {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.8125rem;
    line-height: 1.6;
    margin: 0 0 0.75rem;
}

.gemlive-checkout-wrap .wc-block-components-checkout-step__content > * {
    margin-bottom: 0.75rem;
}

.gemlive-checkout-wrap .wc-block-components-checkout-step__content > :last-child {
    margin-bottom: 0;
}

.gemlive-checkout-wrap .wc-block-components-text-input input,
.gemlive-checkout-wrap .wc-block-components-text-input input[type="email"],
.gemlive-checkout-wrap .wc-block-components-text-input input[type="tel"],
.gemlive-checkout-wrap .wc-block-components-text-input input[type="text"],
.gemlive-checkout-wrap .wc-block-components-combobox .wc-block-components-combobox-control input,
.gemlive-checkout-wrap .wc-block-components-textarea {
    background: var(--gemlive-checkout-input-bg) !important;
    border: 1px solid var(--gemlive-checkout-input-border) !important;
    border-radius: 0.75rem !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 0.9375rem !important;
    min-height: 3.25rem;
    padding: 0.85rem 0.95rem !important;
    line-height: 1.5 !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.gemlive-checkout-wrap .wc-blocks-components-select .wc-blocks-components-select__container {
    line-height: 1.55 !important;
    overflow: visible !important;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form {
    row-gap: 0.7rem;
    column-gap: 0.75rem;
    align-items: flex-start;
}

/* WC 既定 margin-top:12px を廃止（row-gap で行間を管理。郵便番号だけ下にずれる原因） */
.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-text-input,
.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-state-input,
.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-country-input,
.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-select-input {
    margin-top: 0 !important;
    line-height: normal !important;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-blocks-components-select {
    margin-top: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__postcode,
.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__state {
    align-self: flex-start;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__last_name,
.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__first_name {
    margin-bottom: 0.15rem;
}

.gemlive-checkout-wrap .wc-blocks-components-select__select {
    background: var(--gemlive-checkout-input-bg) !important;
    border: 1px solid var(--gemlive-checkout-input-border) !important;
    border-radius: 0.75rem !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 0.9375rem !important;
    height: var(--gemlive-checkout-field-height) !important;
    min-height: var(--gemlive-checkout-field-height) !important;
    padding: 2rem 2.1rem 0.5rem 0.95rem !important;
    line-height: 1.45 !important;
    box-sizing: border-box !important;
    overflow: visible;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.gemlive-checkout-wrap .wc-blocks-components-select__select:focus {
    padding: 1.48rem 2.05rem 0.63rem 0.9rem !important;
    border-width: 1px !important;
}

.gemlive-checkout-wrap .wc-blocks-components-select .wc-blocks-components-select__label {
    top: 0.5rem !important;
    left: 0.95rem !important;
    transform: scale(0.88);
    transform-origin: top left;
    line-height: 1.4 !important;
}

/* セレクトもテキスト入力と同様、ラベルを入力欄の上に固定 */
.gemlive-checkout-wrap .wc-blocks-components-select.gemlive-field-static-label {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.gemlive-checkout-wrap .wc-blocks-components-select.gemlive-field-static-label .wc-blocks-components-select__container {
    line-height: normal !important;
}

.gemlive-checkout-wrap .wc-blocks-components-select.gemlive-field-static-label .wc-blocks-components-select__label {
    position: static !important;
    display: block !important;
    order: -1;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal !important;
    font-size: 0.8125rem !important;
    line-height: 1.45 !important;
    color: rgba(255, 255, 255, 0.72) !important;
    cursor: default !important;
}

.gemlive-checkout-wrap .wc-blocks-components-select.gemlive-field-static-label .wc-blocks-components-select__select,
.gemlive-checkout-wrap .wc-blocks-components-select.gemlive-field-static-label .wc-blocks-components-select__select:focus {
    padding: 0.85rem 2.1rem 0.85rem 0.95rem !important;
    height: var(--gemlive-checkout-field-height) !important;
    min-height: var(--gemlive-checkout-field-height) !important;
    line-height: 1.45 !important;
    border-width: 1px !important;
}

.gemlive-checkout-wrap .wc-block-components-state-input,
.gemlive-checkout-wrap .wc-blocks-components-select {
    min-height: 0;
    overflow: visible;
}

.gemlive-checkout-wrap .wc-block-components-text-input input:focus,
.gemlive-checkout-wrap .wc-blocks-components-select__select:focus,
.gemlive-checkout-wrap .wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.gemlive-checkout-wrap .wc-block-components-textarea:focus {
    border-color: var(--gemlive-checkout-input-focus) !important;
    box-shadow: 0 0 0 1px var(--gemlive-checkout-input-focus) !important;
    outline: none !important;
}

.gemlive-checkout-wrap .wc-block-components-text-input,
.gemlive-checkout-wrap .wc-block-components-form .wc-block-components-text-input {
    white-space: normal;
    line-height: normal;
    overflow: visible;
}

/* フローティングラベルを廃止し、ラベルを入力欄の上に固定（WC 既定 top:6px 問題の根本対策） */
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label .wc-block-components-text-input__wrapper {
    position: relative;
    width: 100%;
}

/* field 直下に label がある場合、wrapper 内の重複 label のみ非表示 */
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label > label ~ .wc-block-components-text-input__wrapper label {
    display: none !important;
}

.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label label {
    position: static !important;
    display: block !important;
    order: -1;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal !important;
    font-size: 0.8125rem !important;
    line-height: 1.45 !important;
    color: rgba(255, 255, 255, 0.72) !important;
    cursor: default !important;
}

/* focus / is-active 時も WC 既定 (top:6px) を無効化 */
.gemlive-checkout-wrap.has-dark-controls .wc-block-components-text-input.gemlive-field-static-label.is-active label,
.gemlive-checkout-wrap.has-dark-controls .wc-block-components-text-input.gemlive-field-static-label:has(input:focus) label,
.gemlive-checkout-wrap.has-dark-controls .wc-block-components-text-input.gemlive-field-static-label:has(textarea:focus) label,
.gemlive-checkout-wrap.has-dark-controls .wc-block-components-form .wc-block-components-text-input.gemlive-field-static-label.is-active label,
.gemlive-checkout-wrap.has-dark-controls .wc-block-components-form .wc-block-components-text-input.gemlive-field-static-label.is-active input:-webkit-autofill + label {
    position: static !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label input,
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label.is-active input,
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label input:not(:placeholder-shown),
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label input[type="email"],
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label input[type="tel"],
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label input[type="text"],
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label input:focus,
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label.is-active input:focus,
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label.is-active input[type="email"]:focus,
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label.is-active input[type="tel"]:focus,
.gemlive-checkout-wrap .wc-block-components-text-input.gemlive-field-static-label.is-active input[type="text"]:focus {
    min-height: var(--gemlive-checkout-field-height) !important;
    height: var(--gemlive-checkout-field-height) !important;
    padding: 0.85rem 0.95rem !important;
    line-height: 1.45 !important;
    box-sizing: border-box !important;
    border-width: 1px !important;
}

.gemlive-checkout-wrap .wc-block-components-address-form__country,
.gemlive-checkout-wrap .wc-block-components-country-input {
    display: none !important;
}

.gemlive-checkout-wrap .wc-block-components-text-input label,
.gemlive-checkout-wrap .wc-block-components-combobox .wc-block-components-combobox-control label,
.gemlive-checkout-wrap .wc-block-components-country-input label,
.gemlive-checkout-wrap .wc-block-components-state-input label,
.gemlive-checkout-wrap .wc-blocks-components-select label {
    color: rgba(255, 255, 255, 0.55) !important;
    font-size: 0.8125rem !important;
}

/* gemlive-field-static-label 適用前のフォールバック（JS 実行前の一瞬用） */
.gemlive-checkout-wrap.has-dark-controls .wc-block-components-text-input:not(.gemlive-field-static-label) label,
.gemlive-checkout-wrap.has-dark-controls .wc-block-components-text-input:not(.gemlive-field-static-label).is-active label,
.gemlive-checkout-wrap.has-dark-controls .wc-block-components-text-input:not(.gemlive-field-static-label) input:-webkit-autofill + label {
    top: 0.8rem !important;
    left: 0.95rem !important;
    transform: scale(0.875) !important;
    transform-origin: top left !important;
    line-height: 1.35 !important;
}

.gemlive-checkout-wrap .wc-block-components-text-input.is-active label,
.gemlive-checkout-wrap .wc-block-components-text-input.has-error label,
.gemlive-checkout-wrap .wc-block-components-text-input:has(input:not(:placeholder-shown)) label,
.gemlive-checkout-wrap .wc-block-components-text-input:has(input:focus) label,
.gemlive-checkout-wrap .wc-block-components-combobox .wc-block-components-combobox-control label,
.gemlive-checkout-wrap .wc-blocks-components-select label {
    color: rgba(255, 255, 255, 0.72) !important;
}

.gemlive-checkout-wrap .wc-block-components-text-input:not(.gemlive-field-static-label).is-active input,
.gemlive-checkout-wrap .wc-block-components-text-input:not(.gemlive-field-static-label) input:not(:placeholder-shown) {
    padding-top: 2rem !important;
    padding-bottom: 0.55rem !important;
    padding-left: 0.95rem !important;
    padding-right: 0.95rem !important;
    line-height: 1.45 !important;
}

.gemlive-checkout-wrap .gemlive-postcode-group {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
    margin: 0.15rem 0 1.15rem;
    padding: 1rem 1rem 0.9rem;
    border-radius: 0.85rem;
    background: linear-gradient(155deg, rgba(201, 168, 76, 0.09), rgba(10, 10, 26, 0.35));
    border: 1px solid rgba(201, 168, 76, 0.2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.gemlive-checkout-wrap .gemlive-postcode-group__header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.65rem;
    margin-bottom: 0.7rem;
}

.gemlive-checkout-wrap .gemlive-postcode-group__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: rgba(201, 168, 76, 0.2);
    color: #e8d08a;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.gemlive-checkout-wrap .gemlive-postcode-group__lead {
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.8125rem;
    line-height: 1.45;
}

.gemlive-checkout-wrap .gemlive-postcode-group .wc-block-components-text-input {
    flex: none;
    max-width: 100%;
    width: 100%;
    margin-bottom: 0;
}

.gemlive-checkout-wrap .gemlive-postcode-group .wc-block-components-text-input label {
    display: none !important;
}

.gemlive-checkout-wrap .gemlive-postcode-group .wc-block-components-text-input input,
.gemlive-checkout-wrap .gemlive-postcode-group .wc-block-components-text-input.is-active input,
.gemlive-checkout-wrap .gemlive-postcode-group .wc-block-components-text-input input:not(:placeholder-shown) {
    padding: 0.85rem 0.95rem !important;
    line-height: 1.5 !important;
}

.gemlive-checkout-wrap .gemlive-postcode-group .wc-block-components-text-input input {
    background: rgba(8, 8, 20, 0.92) !important;
    border-color: rgba(201, 168, 76, 0.22) !important;
}

.gemlive-checkout-wrap .gemlive-postcode-group .wc-block-components-text-input input:focus {
    border-color: rgba(201, 168, 76, 0.55) !important;
    box-shadow: 0 0 0 1px rgba(201, 168, 76, 0.35) !important;
}

.gemlive-checkout-wrap .gemlive-postcode-group__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    margin-top: 0.55rem;
    min-height: 1.25rem;
}

.gemlive-checkout-wrap .gemlive-postcode-hint {
    margin: 0;
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.75rem;
    line-height: 1.55;
}

.gemlive-checkout-wrap .gemlive-postcode-group--success .gemlive-postcode-hint,
.gemlive-checkout-wrap .gemlive-postcode-group--loading .gemlive-postcode-hint {
    display: none;
}

.gemlive-checkout-wrap .gemlive-postcode-status {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0.38rem 0.7rem;
    border-radius: 0.5rem;
    font-size: 0.75rem;
    line-height: 1.4;
    transition: opacity 0.25s ease;
}

.gemlive-checkout-wrap .gemlive-postcode-status[data-type="success"] {
    background: rgba(95, 176, 95, 0.14);
    border: 1px solid rgba(95, 176, 95, 0.28);
    color: #b4e0b4;
}

.gemlive-checkout-wrap .gemlive-postcode-status[data-type="error"] {
    background: rgba(220, 100, 100, 0.12);
    border: 1px solid rgba(220, 100, 100, 0.28);
    color: #f0a8a8;
}

.gemlive-checkout-wrap .gemlive-postcode-status[data-type="loading"] {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.62);
}

.gemlive-checkout-wrap .gemlive-postcode-group--success {
    border-color: rgba(95, 176, 95, 0.28);
}

.gemlive-checkout-wrap .gemlive-postcode-group--error {
    border-color: rgba(220, 100, 100, 0.3);
}

.gemlive-checkout-wrap .gemlive-postcode-group--loading {
    border-color: rgba(201, 168, 76, 0.32);
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__state,
.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__city {
    margin-top: 0;
    display: flex;
    align-items: stretch;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__state .wc-blocks-components-select,
.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__state.wc-block-components-state-input .wc-blocks-components-select {
    flex: 1;
    width: 100%;
    margin-top: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__city.wc-block-components-text-input {
    flex: 1;
    width: 100%;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-text-input {
    line-height: normal;
    overflow: visible;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-text-input:not(.gemlive-field-static-label) input {
    min-height: var(--gemlive-checkout-field-height);
    height: var(--gemlive-checkout-field-height);
    padding-top: 2rem !important;
    padding-bottom: 0.5rem !important;
    line-height: 1.45 !important;
    box-sizing: border-box;
    overflow: visible;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-text-input:not(.gemlive-field-static-label) label {
    top: 0.8rem !important;
    left: 0.95rem !important;
    transform: scale(0.88) !important;
    transform-origin: top left;
    color: rgba(255, 255, 255, 0.72) !important;
    z-index: 1;
    pointer-events: none;
    max-width: calc(100% - 1.5rem);
    line-height: 1.4 !important;
    padding-top: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__address_1 {
    margin-top: 0.15rem;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__phone {
    flex: 0 0 100%;
    margin-top: 0.75rem;
    padding-top: 0;
    border-top: none;
    overflow: visible;
}

.gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__phone::before {
    content: "";
    display: block;
    margin-bottom: 0.85rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.gemlive-checkout-wrap .wc-block-checkout__order-notes {
    margin-top: 0;
}

.gemlive-checkout-wrap .wc-block-checkout__order-notes > .wc-block-components-checkout-step__heading-container,
.gemlive-checkout-wrap .wc-block-checkout__order-notes > .wc-block-components-checkout-step__heading {
    display: none;
}

.gemlive-checkout-wrap .wc-block-checkout__order-notes .wc-block-components-checkout-step__content {
    margin-top: 0;
}

.gemlive-checkout-wrap .gemlive-order-note-intro {
    margin-bottom: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.gemlive-checkout-wrap .gemlive-order-note-intro__title {
    margin: 0 0 0.4rem;
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.gemlive-checkout-wrap .gemlive-order-note-intro__optional {
    display: inline-block;
    margin-left: 0.45rem;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.6875rem;
    font-weight: 500;
    vertical-align: middle;
}

.gemlive-checkout-wrap .gemlive-order-note-intro__desc {
    margin: 0;
    color: rgba(255, 255, 255, 0.52);
    font-size: 0.8125rem;
    line-height: 1.6;
}

.gemlive-checkout-wrap .wc-block-checkout__add-note {
    gap: 0;
}

.gemlive-checkout-wrap .wc-block-checkout__add-note.gemlive-order-note--ready .wc-block-components-checkbox {
    display: none !important;
}

.gemlive-checkout-wrap .wc-block-checkout__add-note .wc-block-components-textarea {
    min-height: 7rem !important;
    padding: 0.95rem 1rem !important;
    line-height: 1.6 !important;
    resize: vertical;
}

.gemlive-checkout-wrap .wc-block-checkout__add-note .wc-block-components-textarea::placeholder {
    color: rgba(255, 255, 255, 0.34);
}

.gemlive-checkout-wrap .wc-block-components-checkbox label,
.gemlive-checkout-wrap .wc-block-components-checkbox__label {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.875rem;
    line-height: 1.55;
    white-space: normal;
    align-items: flex-start;
    gap: 0.65rem;
}

.gemlive-checkout-wrap .wc-block-components-checkbox__input[type="checkbox"] {
    background: rgba(10, 10, 26, 0.9) !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    border-radius: 0.35rem !important;
}

.gemlive-checkout-wrap .wc-block-components-checkbox__input[type="checkbox"]:checked {
    background: #c9a84c !important;
    border-color: #c9a84c !important;
}

.gemlive-checkout-wrap .wc-block-components-address-form__address_2-toggle {
    color: var(--gemlive-gold);
    font-size: 0.8125rem;
}

/* 配送など: 選択行のみカード。支払い方法は下でフラット化（カード入れ子防止） */
.gemlive-checkout-wrap .wc-block-components-radio-control__option {
    background: rgba(10, 10, 26, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 0.75rem !important;
    margin-bottom: 0.5rem;
    padding: 0.85rem 1rem 0.85rem 3rem !important;
    transition: border-color 0.2s ease, background 0.2s ease;
    width: 100%;
    box-sizing: border-box;
    overflow: visible;
}

.gemlive-checkout-wrap .wc-block-components-radio-control-accordion-option {
    background: transparent;
    border: 0 !important;
    border-radius: 0 !important;
    margin-bottom: 0.65rem;
    padding: 0 !important;
    width: 100%;
    box-sizing: border-box;
    overflow: visible;
}

.gemlive-checkout-wrap .wc-block-components-shipping-rates-control__package .wc-block-components-radio-control__secondary-label,
.gemlive-checkout-wrap .wc-block-checkout__shipping-option .wc-block-components-radio-control__secondary-label {
    display: none;
}

.gemlive-checkout-wrap .wc-block-components-radio-control__label-group {
    align-items: center;
    gap: 0.75rem;
}

.gemlive-checkout-wrap .wc-block-components-radio-control__label {
    white-space: normal;
    line-height: 1.45;
}

.gemlive-checkout-wrap .wc-block-components-radio-control,
.gemlive-checkout-wrap .wc-block-components-radio-control__option-layout {
    width: 100%;
}

.gemlive-checkout-wrap .wc-block-components-radio-control__option-checked,
.gemlive-checkout-wrap .wc-block-components-radio-control__option:hover {
    background: rgba(201, 168, 76, 0.08) !important;
    border-color: rgba(201, 168, 76, 0.35) !important;
}

.gemlive-checkout-wrap .wc-block-components-radio-control__label,
.gemlive-checkout-wrap .wc-block-components-radio-control__option-layout {
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.9375rem;
}

.gemlive-checkout-wrap .wc-block-components-radio-control__secondary-label,
.gemlive-checkout-wrap .wc-block-components-radio-control__description {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.8125rem;
}

/*
 * 支払いオプション: ステップカードの中にラジオ枠＋Stripe枠が重ならないようフラット化。
 * 選択行は軽いヘッダー、フォーム面は Stripe Payment Element のみ。
 */
.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control--highlight-checked::after,
.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option::after {
    display: none !important;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    box-shadow: none !important;
    border-radius: 0 !important;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option {
    position: relative;
    margin-bottom: 0.75rem;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option:last-child {
    margin-bottom: 0;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
    margin-bottom: 0;
    padding: 0.7rem 0.85rem 0.7rem 2.75rem !important;
    background: rgba(10, 10, 26, 0.38);
    border: 1px solid rgba(255, 255, 255, 0.07) !important;
    border-radius: 0.65rem !important;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option-checked,
.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option:hover {
    background: rgba(201, 168, 76, 0.07) !important;
    border-color: rgba(201, 168, 76, 0.32) !important;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content {
    padding: 0.7rem 0 0 !important;
    margin: 0;
    font-size: inherit;
    line-height: inherit;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content > *,
.gemlive-checkout-wrap .wc-block-checkout__payment-method .wcstripe-payment-element,
.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-stripe-payment-method {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content iframe {
    width: 100% !important;
    max-width: 100% !important;
}

/* 決済手段が1つだけのとき: ラジオ行を隠し、Stripeフォームをステップ直下に */
.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control:has(> .wc-block-components-radio-control-accordion-option:only-child) .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    background: transparent !important;
}

.gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control:has(> .wc-block-components-radio-control-accordion-option:only-child) .wc-block-components-radio-control-accordion-content {
    padding-top: 0 !important;
}

.gemlive-checkout-wrap .wc-block-checkout__sidebar,
.gemlive-checkout-wrap .wp-block-woocommerce-checkout-totals-block,
.gemlive-checkout-wrap .checkout-order-summary-block-fill-wrapper {
    --gemlive-order-summary-x: 1.375rem;
    background: linear-gradient(168deg, rgba(38, 38, 64, 0.95) 0%, rgba(20, 20, 40, 0.98) 100%);
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 1.125rem;
    padding: 1.25rem var(--gemlive-order-summary-x) 1rem;
    overflow: visible;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 20px 56px rgba(0, 0, 0, 0.28);
}

/*
 * 注文概要の根本対策:
 * WC Blocks は fill 内に border + 16px padding を持つ。テーマも外側カードを付けるため二重枠になる。
 * 外側1カード・1余白 (--gemlive-order-summary-x) に統一し、内側 WC 余白/枠はすべて無効化する。
 */
.gemlive-checkout-wrap .checkout-order-summary-block-fill-wrapper .checkout-order-summary-block-fill,
.gemlive-checkout-wrap .gemlive-checkout-order-summary-card .checkout-order-summary-block-fill {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gemlive-checkout-wrap .checkout-order-summary-block-fill-wrapper .wc-block-components-order-summary,
.gemlive-checkout-wrap .checkout-order-summary-block-fill .wc-block-components-order-summary,
.gemlive-checkout-wrap .checkout-order-summary-block-fill .wc-block-components-totals-coupon,
.gemlive-checkout-wrap .checkout-order-summary-block-fill .wc-block-components-totals-item,
.gemlive-checkout-wrap .checkout-order-summary-block-fill-wrapper .wc-block-components-panel,
.gemlive-checkout-wrap .gemlive-checkout-order-summary-card .wc-block-components-panel,
.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-panel,
.gemlive-checkout-wrap .wc-block-components-totals-coupon.wc-block-components-panel {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.gemlive-checkout-wrap .checkout-order-summary-block-fill-wrapper .wc-block-components-order-summary,
.gemlive-checkout-wrap .checkout-order-summary-block-fill .wc-block-components-order-summary {
    padding: 0 !important;
}

.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-block.checkout-order-summary-block-fill-wrapper {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

@media (max-width: 480px) {
    .gemlive-checkout-wrap .wc-block-checkout__sidebar,
    .gemlive-checkout-wrap .wp-block-woocommerce-checkout-totals-block,
    .gemlive-checkout-wrap .checkout-order-summary-block-fill-wrapper {
        --gemlive-order-summary-x: 1.125rem;
        padding: 1.15rem var(--gemlive-order-summary-x) 1rem;
    }

    .gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary-item,
    .gemlive-checkout-wrap .wc-block-components-order-summary-item.gemlive-order-summary-item--laid-out {
        grid-template-columns: 3.5rem minmax(0, 1fr);
        gap: 0 0.7rem;
        padding: 0.85rem 0 !important;
    }

    .gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary-item__image,
    .gemlive-checkout-wrap .wc-block-components-order-summary-item__image,
    .gemlive-checkout-wrap .wc-block-components-order-summary-item__image img {
        width: 3.5rem !important;
        height: 3.5rem !important;
    }
}

.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper {
    padding: 0;
    margin: 0;
    border: 0;
    overflow: visible;
}

.gemlive-checkout-wrap .wc-block-components-checkout-order-summary__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0 0 0.875rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.gemlive-checkout-wrap .wc-block-components-checkout-order-summary__title-text {
    margin: 0;
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.06em;
}

.gemlive-checkout-wrap .wc-block-components-order-summary.is-large .wc-block-components-checkout-order-summary__title-price,
.gemlive-checkout-wrap .wc-block-components-order-summary.is-large .wc-block-components-checkout-order-summary__title-icon {
    display: none;
}

.gemlive-checkout-wrap .wc-block-components-order-summary,
.gemlive-checkout-wrap .wc-block-components-order-summary.is-large {
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

.gemlive-checkout-wrap .wc-block-components-order-summary.is-large .wc-block-components-order-summary__content {
    display: block !important;
    width: 100%;
    overflow: visible !important;
}

/* --- 商品行（外側サマリー枠の中はリスト行。カード入れ子にしない） --- */
.gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary__content {
    display: block !important;
    width: 100% !important;
}

.gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary-item,
.gemlive-checkout-wrap .wc-block-components-order-summary-item.gemlive-order-summary-item--laid-out {
    position: relative;
    display: grid !important;
    grid-template-columns: 4.25rem minmax(0, 1fr);
    grid-template-areas: "image description";
    align-items: start;
    gap: 0 0.875rem;
    padding: 0.85rem 0 !important;
    margin: 0 !important;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 0;
    box-shadow: none;
    overflow: visible !important;
    width: 100% !important;
}

.gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary-item:last-child,
.gemlive-checkout-wrap .wc-block-components-order-summary-item.gemlive-order-summary-item--laid-out:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0.85rem !important;
    border-bottom: 0;
}

.gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary-item__image,
.gemlive-checkout-wrap .wc-block-components-order-summary-item__image {
    grid-area: image;
    position: relative;
    display: block !important;
    flex: none;
    width: 4.25rem !important;
    height: 4.25rem;
    margin-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: visible;
}

.gemlive-checkout-wrap .gemlive-order-summary-product-link--image {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 0.65rem;
    overflow: hidden;
    transition: opacity 0.2s ease, box-shadow 0.2s ease;
}

.gemlive-checkout-wrap .gemlive-order-summary-product-link--image:hover {
    opacity: 0.92;
    box-shadow: 0 0 0 1.5px rgba(201, 168, 76, 0.45);
}

.gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity,
.gemlive-checkout-wrap .wc-block-components-order-summary-item__quantity {
    position: absolute !important;
    top: -0.3rem !important;
    right: -0.3rem !important;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.3rem;
    background: #0c0c1c !important;
    border: 1.5px solid rgba(201, 168, 76, 0.55);
    border-radius: 999px;
    color: #e8d08a;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1.1rem;
    text-align: center;
    z-index: 2;
    transform: none !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.gemlive-checkout-wrap .wc-block-components-order-summary-item__quantity span {
    color: #e8d08a !important;
    padding: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary-item__description,
.gemlive-checkout-wrap .wc-block-components-order-summary-item__description {
    grid-area: description;
    flex: none;
    min-width: 0;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "head price"
        "meta meta";
    align-items: center;
    gap: 0.15rem 0.75rem;
    padding: 0.05rem 0 0 !important;
    overflow: visible;
}

.gemlive-checkout-wrap .gemlive-order-summary-item__head,
.gemlive-checkout-wrap .wc-block-components-order-summary-item__description > .wc-block-components-product-name {
    grid-area: head;
    min-width: 0;
}

.gemlive-checkout-wrap .wc-block-components-product-metadata,
.gemlive-checkout-wrap .wc-block-components-order-summary-item__individual-prices {
    grid-area: meta;
}

.gemlive-checkout-wrap .wc-block-components-order-summary-item::after {
    display: none !important;
}

.gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-order-summary-item__total-price,
.gemlive-checkout-wrap .wc-block-components-order-summary-item__total-price {
    grid-area: price;
    position: static !important;
    align-self: center;
    justify-self: end;
    padding: 0 !important;
    margin: 0 !important;
    white-space: nowrap;
    text-align: right;
}

.gemlive-checkout-wrap .gemlive-order-summary-item__foot,
body.woocommerce-checkout .gemlive-order-summary-item__foot {
    display: none;
}

.gemlive-checkout-wrap .wc-block-cart-item__prices,
.gemlive-checkout-wrap .wc-block-components-order-summary-item__individual-prices {
    display: none !important;
}

.gemlive-checkout-wrap .wc-block-components-product-name {
    margin: 0;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.42;
    word-break: break-word;
}

.gemlive-checkout-wrap .gemlive-order-summary-product-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.gemlive-checkout-wrap .gemlive-order-summary-product-link:hover {
    color: #c9a84c;
}

.gemlive-checkout-wrap .wc-block-components-order-summary-item__total-price,
.gemlive-checkout-wrap .wc-block-components-order-summary-item__total-price .wc-block-components-formatted-money-amount {
    color: #c9a84c;
    font-weight: 600;
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
}

.gemlive-checkout-wrap .wc-block-components-product-metadata {
    color: rgba(255, 255, 255, 0.42);
    font-size: 0.75rem;
    margin: 0;
    line-height: 1.4;
}

.gemlive-checkout-wrap .wc-block-components-order-summary-item__image img {
    display: block;
    width: 4.25rem;
    height: 4.25rem;
    object-fit: cover;
    border-radius: 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* `.gemlive-checkout-wrap` が無いテンプレート向けフォールバック */
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item {
    position: relative;
    display: grid !important;
    grid-template-columns: 4.25rem minmax(0, 1fr);
    grid-template-areas: "image description";
    align-items: start;
    gap: 0 0.875rem;
    padding: 0.85rem 0 !important;
    margin: 0 !important;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 0;
    box-shadow: none;
}

body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item__image {
    grid-area: image;
    width: 4.25rem !important;
    padding-bottom: 0 !important;
    position: relative;
}

body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item__description {
    grid-area: description;
    padding: 0.05rem 0 0 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
    top: -0.3rem !important;
    right: -0.3rem !important;
    transform: none !important;
}

body.woocommerce-checkout .gemlive-order-summary-item__head {
    display: block;
}

/* --- クーポン --- */
.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-coupon-form-block {
    margin: 0;
}

.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-panel__button,
.gemlive-checkout-wrap .wc-block-components-order-summary .wc-block-components-panel__button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    padding: 0.75rem 0 !important;
    margin: 0 !important;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.55);
    transition: color 0.2s ease;
}

.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-panel__button > span,
.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-panel__button > svg {
    margin: 0 !important;
}

.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-panel__button:hover {
    color: #c9a84c;
}

.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-panel__content {
    padding: 0.8rem 0 0.35rem;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon,
.gemlive-checkout-wrap .wc-block-components-totals-coupon__form {
    margin: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 5.25rem;
    align-items: end;
    gap: 0.625rem;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__form .wc-block-components-text-input {
    margin: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__form .wc-block-components-text-input label {
    display: block !important;
    position: static !important;
    transform: none !important;
    margin: 0 0 0.35rem !important;
    color: rgba(255, 255, 255, 0.62) !important;
    font-size: 0.75rem !important;
    line-height: 1.3 !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__input,
.gemlive-checkout-wrap .wc-block-components-totals-coupon__button {
    min-height: 3rem !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__input {
    width: 100% !important;
    padding: 0.75rem 0.875rem !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__button {
    width: 100% !important;
    padding: 0 0.75rem !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    white-space: nowrap;
}

@media (max-width: 420px) {
    .gemlive-checkout-wrap .wc-block-components-totals-coupon__form {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* --- 小計・送料・合計 --- */
.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-totals-block {
    margin: 0;
    padding: 0.75rem 0 0;
    border-top: 0;
    overflow: visible;
}

.gemlive-checkout-wrap .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-wrapper {
    padding: 0 !important;
    border: 0 !important;
    overflow: visible !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-wrapper.slot-wrapper > * > * {
    padding: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-wrapper.slot-wrapper > * > *::after {
    display: none !important;
    border: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-item,
.gemlive-checkout-wrap .wc-block-components-totals-footer-item {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
    width: 100%;
    padding: 0.35rem 0 !important;
    margin: 0;
    flex-wrap: nowrap !important;
    overflow: visible !important;
    box-sizing: border-box;
}

.gemlive-checkout-wrap .wc-block-components-totals-item__label {
    grid-column: 1;
    color: rgba(255, 255, 255, 0.58);
    flex: none !important;
    flex-grow: 0 !important;
    min-width: 0;
    max-width: none;
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal;
    word-break: keep-all;
    padding: 0;
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
}

.gemlive-checkout-wrap .wc-block-components-totals-item__value {
    grid-column: 2;
    text-align: right;
    flex: none !important;
    flex-shrink: 0;
    color: rgba(255, 255, 255, 0.88);
    padding: 0;
    margin: 0;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    outline: none !important;
    border-radius: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-item .wc-block-components-formatted-money-amount {
    color: rgba(255, 255, 255, 0.88);
    font-weight: 500;
    font-size: 0.875rem;
}

.gemlive-checkout-wrap .wc-block-components-totals-footer-item {
    margin: 0.5rem 0 0;
    padding: 0.75rem 0 0;
    border: none !important;
    border-top: 1px solid rgba(201, 168, 76, 0.22) !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    color: #fff;
    font-size: 0.9375rem !important;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.4 !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: #c9a84c;
    font-size: 1.375rem !important;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.2 !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-footer-item .wc-block-formatted-money-amount,
.gemlive-checkout-wrap .wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
    color: #c9a84c !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.gemlive-checkout-wrap .wc-block-components-formatted-money-amount {
    color: #c9a84c;
    font-weight: 600;
}

.gemlive-checkout-wrap .gemlive-checkout-order-summary-card,
.gemlive-checkout-wrap .gemlive-checkout-order-summary-card .wc-block-components-order-summary,
.gemlive-checkout-wrap .gemlive-checkout-order-summary-card .wc-block-components-order-summary__content,
.gemlive-checkout-wrap .gemlive-checkout-order-summary-card .wc-block-components-totals-wrapper {
    overflow: visible !important;
}

.gemlive-checkout-wrap .wc-block-components-panel__button {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.875rem;
}

.gemlive-checkout-wrap .wc-block-components-panel__button:hover {
    color: #c9a84c;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__input {
    background: rgba(10, 10, 26, 0.88) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 0.75rem !important;
    color: #fff !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__button {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 0.75rem !important;
    color: rgba(255, 255, 255, 0.75) !important;
}

.gemlive-checkout-wrap .wc-block-components-totals-coupon__button:hover {
    border-color: #c9a84c !important;
    color: #c9a84c !important;
}

.gemlive-checkout-wrap .wc-block-components-checkout-place-order-button,
.gemlive-checkout-wrap .wc-block-components-checkout-place-order-button .wc-block-components-button {
    width: 100%;
    min-height: 3.25rem;
    background: linear-gradient(135deg, #c9a84c 0%, #d4b55e 100%) !important;
    border: none !important;
    border-radius: 0.85rem !important;
    color: #0a0a1a !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em;
    box-shadow: 0 10px 30px rgba(201, 168, 76, 0.22);
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.gemlive-checkout-wrap .wc-block-components-checkout-place-order-button:hover,
.gemlive-checkout-wrap .wc-block-components-checkout-place-order-button .wc-block-components-button:hover {
    filter: brightness(1.04);
    box-shadow: 0 14px 34px rgba(201, 168, 76, 0.3);
    transform: translateY(-1px);
}

.gemlive-checkout-wrap .wc-block-components-notice-banner,
.gemlive-checkout-wrap .wc-block-components-notice-banner.is-info {
    background: rgba(26, 26, 46, 0.9);
    border: 1px solid rgba(201, 168, 76, 0.25);
    border-radius: 0.75rem;
    color: rgba(255, 255, 255, 0.85);
}

.gemlive-checkout-wrap .wc-block-components-validation-error {
    color: #f18c8c;
    font-size: 0.8125rem;
}

.gemlive-checkout-page .gemlive-container {
    max-width: var(--gemlive-container-max);
}

/* --- Checkout page header & progress --- */
.gemlive-checkout-page-header {
    margin-bottom: 1.75rem;
}

.gemlive-checkout-page-header .mb-8,
.gemlive-checkout-page-header .md\:mb-10 {
    margin-bottom: 1.25rem !important;
}

.gemlive-checkout-page-header h1 {
    font-size: 1.625rem !important;
    letter-spacing: 0.01em;
}

@media (min-width: 768px) {
    .gemlive-checkout-page-header h1 {
        font-size: 2rem !important;
    }
}

.gemlive-checkout-progress {
    margin: 0 0 1.25rem;
}

.gemlive-checkout-progress__list {
    display: flex;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.gemlive-checkout-progress__item {
    position: relative;
    flex: 1;
    text-align: center;
    color: rgba(255, 255, 255, 0.38);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.04em;
}

.gemlive-checkout-progress__item::before {
    content: "";
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    margin: 0 auto 0.4rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(10, 10, 26, 0.65);
}

.gemlive-checkout-progress__item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 0.75rem;
    left: calc(50% + 0.85rem);
    width: calc(100% - 1.7rem);
    height: 1px;
    background: rgba(255, 255, 255, 0.1);
    pointer-events: none;
}

.gemlive-checkout-progress__item a,
.gemlive-checkout-progress__item span {
    color: inherit;
    text-decoration: none;
}

.gemlive-checkout-progress__item--done {
    color: rgba(255, 255, 255, 0.62);
}

.gemlive-checkout-progress__item--done::before {
    border-color: rgba(201, 168, 76, 0.45);
    background: rgba(201, 168, 76, 0.14);
    box-shadow: inset 0 0 0 2px rgba(201, 168, 76, 0.08);
}

.gemlive-checkout-progress__item--done a:hover {
    color: #c9a84c;
}

.gemlive-checkout-progress__item--current {
    color: #fff;
    font-weight: 600;
}

.gemlive-checkout-progress__item--current::before {
    border-color: #c9a84c;
    background: linear-gradient(135deg, #c9a84c 0%, #d4b55e 100%);
    box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.18);
}

.gemlive-checkout-page .gemlive-page-guide-link--checkout {
    margin: 0;
}

/* --- Guest notice & account checkbox --- */
.gemlive-checkout-wrap .wc-block-checkout__guest-checkout-notice {
    margin: 0.35rem 0 0.85rem;
    padding: 0.65rem 0.85rem;
    border-radius: var(--gemlive-checkout-radius-sm);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.8125rem;
    line-height: 1.55;
}

.gemlive-checkout-wrap .wc-block-checkout__create-account {
    margin-top: 0.15rem;
    padding: 0.75rem 0.85rem;
    border-radius: var(--gemlive-checkout-radius-sm);
    background: rgba(201, 168, 76, 0.06);
    border: 1px solid rgba(201, 168, 76, 0.14);
}

/* --- Address form grid --- */
@media (min-width: 520px) {
    .gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__last_name,
    .gemlive-checkout-wrap .wc-block-components-address-form.gemlive-address-form .wc-block-components-address-form__first_name {
        flex: 1 1 calc(50% - 0.375rem);
        max-width: calc(50% - 0.375rem);
    }
}

/* --- Terms & place order --- */
.gemlive-checkout-wrap .wc-block-checkout__terms {
    margin: 0 0 1rem;
    padding: 1rem 1.1rem;
    border-radius: var(--gemlive-checkout-radius-sm);
    background: rgba(10, 10, 26, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.gemlive-checkout-wrap .wc-block-checkout__terms--with-separator {
    border-top: none;
    padding-top: 1rem;
}

.gemlive-checkout-wrap .wc-block-checkout__terms a {
    color: #c9a84c;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gemlive-checkout-wrap .wc-block-checkout__terms a:hover {
    color: #d4b55e;
}

.gemlive-checkout-wrap .wc-block-checkout__actions {
    margin-top: 0.25rem;
}

@media (min-width: 900px) {
    .gemlive-checkout-wrap .wc-block-checkout__actions .checkout-order-summary-block-fill-wrapper {
        display: none;
    }
}

/* --- Payment empty state --- */
.gemlive-checkout-wrap .wc-block-components-notice-banner.is-error,
.gemlive-checkout-wrap .wc-block-components-notice-banner.is-warning {
    background: rgba(60, 28, 28, 0.55);
    border: 1px solid rgba(240, 140, 140, 0.25);
    border-radius: var(--gemlive-checkout-radius-sm);
    color: rgba(255, 220, 220, 0.92);
}

/* --- Mobile sticky checkout bar --- */
.gemlive-checkout-sticky-bar {
    display: none;
}

@media (max-width: 899px) {
    .gemlive-checkout-wrap {
        padding-bottom: 0.5rem;
    }

    /* 上部の折りたたみ概要は非表示（下部の最終確認 + 固定バーに集約） */
    .gemlive-checkout-wrap .wc-block-components-sidebar,
    .gemlive-checkout-wrap .wc-block-checkout__sidebar {
        display: none !important;
    }

    .gemlive-checkout-wrap .wc-block-components-main {
        order: 0;
    }

    .gemlive-checkout-wrap .wc-block-checkout__actions .checkout-order-summary-block-fill-wrapper {
        display: block;
        margin-bottom: 1rem;
    }

    .gemlive-checkout-wrap .wc-block-checkout__actions .checkout-order-summary-block-fill-wrapper::after {
        content: "送料無料  ·  30日返品OK  ·  正規品保証";
        display: block;
        margin: 1rem 0 0;
        padding: 0.85rem 0 0.15rem;
        border-top: 1px solid rgba(255, 255, 255, 0.05);
        text-align: center;
        font-size: 0.6875rem;
        color: rgba(255, 255, 255, 0.45);
        letter-spacing: 0.04em;
        line-height: 1.5;
    }

    .gemlive-checkout-wrap .wc-block-checkout__actions .wc-block-components-checkout-step__heading {
        margin: 0 0 0.85rem;
        padding: 0 0 0.75rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }

    .gemlive-checkout-wrap .wc-block-checkout__actions .wc-block-components-checkout-step__title {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 0.9375rem;
    }

    .gemlive-checkout-wrap .wc-block-checkout__actions .wc-block-components-checkout-step__title::before {
        display: none;
    }

    .gemlive-checkout-wrap .wc-block-checkout__sidebar::after,
    .gemlive-checkout-wrap .wc-block-components-sidebar::after {
        display: none;
    }

    .gemlive-checkout-sticky-bar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.65rem;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 120;
        padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
        background: rgba(10, 10, 26, 0.94);
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        backdrop-filter: blur(14px);
        box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.35);
        transform: translateY(110%);
        opacity: 0;
        pointer-events: none;
        transition: transform 0.28s ease, opacity 0.28s ease;
    }

    body.gemlive-checkout-sticky-visible .gemlive-checkout-sticky-bar {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }

    body.gemlive-checkout-sticky-visible .gemlive-checkout-wrap {
        padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
    }

    .gemlive-checkout-sticky-bar__summary {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.1rem;
        min-width: 0;
        padding: 0.35rem 0.5rem;
        border: 0;
        border-radius: 0.5rem;
        background: transparent;
        color: inherit;
        text-align: left;
        cursor: pointer;
    }

    .gemlive-checkout-sticky-bar__summary:hover {
        background: rgba(255, 255, 255, 0.04);
    }

    .gemlive-checkout-sticky-bar__label {
        color: rgba(255, 255, 255, 0.55);
        font-size: 0.6875rem;
        letter-spacing: 0.06em;
    }

    .gemlive-checkout-sticky-bar__meta {
        color: #c9a84c;
        font-size: 1rem;
        font-weight: 700;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
    }

    .gemlive-checkout-sticky-bar__submit {
        flex-shrink: 0;
        min-height: 2.75rem;
        padding: 0 1.15rem;
        border: 0;
        border-radius: 0.75rem;
        background: linear-gradient(135deg, #c9a84c 0%, #d4b55e 100%);
        color: #0a0a1a;
        font-size: 0.875rem;
        font-weight: 700;
        letter-spacing: 0.03em;
        white-space: nowrap;
        cursor: pointer;
        box-shadow: 0 8px 24px rgba(201, 168, 76, 0.28);
    }

    .gemlive-checkout-sticky-bar__submit:hover {
        filter: brightness(1.05);
    }

    .gemlive-checkout-wrap .wc-block-components-checkout-place-order-button,
    .gemlive-checkout-wrap .wc-block-components-checkout-place-order-button .wc-block-components-button {
        min-height: 3.5rem;
        font-size: 1.0625rem !important;
    }

    .gemlive-checkout-wrap .wc-block-components-checkout-step {
        padding: 1.15rem 1.1rem 1.45rem;
        margin-bottom: 0.85rem;
    }

    /* SP決済: 横余白を削り Stripe 入力幅を確保（カード入れ子感を解消） */
    .gemlive-checkout-wrap .wc-block-checkout__payment-method.wc-block-components-checkout-step {
        padding: 1.05rem 0.85rem 1.25rem;
    }

    .gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
        padding-left: 2.5rem !important;
        padding-right: 0.65rem !important;
    }

    .gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content {
        padding-top: 0.55rem !important;
    }

    .gemlive-checkout-wrap .wc-block-checkout__payment-method .wc-block-components-radio-control:has(> .wc-block-components-radio-control-accordion-option:only-child) .wc-block-components-radio-control-accordion-content {
        padding-top: 0 !important;
    }

    .gemlive-checkout-page-header {
        margin-bottom: 1.25rem;
    }

    .gemlive-checkout-progress__item {
        font-size: 0.6875rem;
    }
}

@media (min-width: 900px) {
    .gemlive-checkout-wrap .wc-block-checkout__sidebar::after,
    .gemlive-checkout-wrap .wc-block-components-sidebar::after {
        content: "送料無料  ·  30日返品OK  ·  正規品保証";
        display: block;
        margin-top: 1rem;
        padding: 0.85rem 0 0.15rem;
        border-top: 1px solid rgba(255, 255, 255, 0.05);
        text-align: center;
        font-size: 0.6875rem;
        color: rgba(255, 255, 255, 0.35);
        letter-spacing: 0.04em;
        line-height: 1.5;
    }
}

.gemlive-single-product-wrap .gemlive-product {
    margin: 0;
}

.gemlive-product-hero {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

@media (min-width: 1024px) {
    .gemlive-product-hero {
        flex-direction: row;
        align-items: flex-start;
        gap: 4rem;
    }

    .gemlive-product-gallery {
        flex: 0 0 55%;
        max-width: 55%;
    }

    .gemlive-product-summary {
        flex: 1;
        min-width: 0;
    }
}

.gemlive-product-gallery__stage {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: 1rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.03);
    background: rgba(26, 26, 46, 0.35);
}

.gemlive-product-gallery__main {
    opacity: 1 !important;
    width: 100%;
    height: 100%;
}

.gemlive-product-gallery__main .woocommerce-product-gallery__wrapper {
    height: 100%;
}

.gemlive-product-gallery__main .woocommerce-product-gallery__image,
.gemlive-product-gallery__main .woocommerce-product-gallery__image--placeholder {
    height: 100%;
}

.gemlive-product-gallery__main .woocommerce-product-gallery__image a,
.gemlive-product-gallery__main .woocommerce-product-gallery__image img,
.gemlive-product-gallery__main .woocommerce-product-gallery__image--placeholder img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gemlive-product-gallery__main .woocommerce-product-gallery__image a {
    position: relative;
}

.gemlive-product-gallery__main .woocommerce-product-gallery__image a::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10, 10, 26, 0.5), transparent 45%);
    pointer-events: none;
}

.gemlive-product-gallery__hint {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: 9999px;
    background: rgba(10, 10, 26, 0.7);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.75rem;
    pointer-events: none;
}

.gemlive-product-gallery__main .flex-control-thumbs,
.gemlive-product-gallery__main ol.flex-control-thumbs {
    display: flex;
    gap: 0.75rem;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.gemlive-product-gallery__main .flex-control-thumbs li {
    width: 5rem;
    height: 5rem;
    margin: 0;
    float: none;
}

.gemlive-product-gallery__main .flex-control-thumbs li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0.75rem;
    border: 2px solid rgba(255, 255, 255, 0.1);
    opacity: 0.75;
    transition: border-color 0.2s, opacity 0.2s;
}

.gemlive-product-gallery__main .flex-control-thumbs li img.flex-active,
.gemlive-product-gallery__main .flex-control-thumbs li img:hover {
    border-color: #C9A84C;
    opacity: 1;
}

.gemlive-product-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.gemlive-product-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.gemlive-product-badge--gold {
    color: rgba(201, 168, 76, 0.85);
    background: rgba(201, 168, 76, 0.1);
    border-color: rgba(201, 168, 76, 0.2);
}

.gemlive-product-badge--hot {
    color: #fbbf24;
    background: rgba(245, 158, 11, 0.1);
    border-color: rgba(245, 158, 11, 0.2);
}

.gemlive-product-badge--soldout {
    color: #ef9a9a;
    background: rgba(229, 115, 115, 0.12);
    border-color: rgba(229, 115, 115, 0.25);
}

.gemlive-product-badge__pulse {
    position: relative;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 9999px;
    background: #f59e0b;
}

.gemlive-product-badge__pulse::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: #f59e0b;
    animation: gemlive-pulse 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes gemlive-pulse {
    0%, 100% { transform: scale(1); opacity: 0.75; }
    50% { transform: scale(2); opacity: 0; }
}

.gemlive-product-title {
    margin: 0 0 1rem;
    color: #fff;
    font-size: clamp(1.5rem, 2.5vw, 1.875rem);
    font-weight: 700;
    line-height: 1.25;
}

.gemlive-product-style-line {
    margin: -0.5rem 0 1rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.9375rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.gemlive-product-rating {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    margin-bottom: 1.25rem;
}

.gemlive-product-rating .star-rating {
    float: none;
    margin: 0;
    color: #C9A84C;
}

.gemlive-product-rating__score {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.875rem;
}

.gemlive-product-rating__count {
    color: rgba(255, 255, 255, 0.3);
    font-size: 0.75rem;
}

.gemlive-product-price-block {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.gemlive-product-price {
    color: #C9A84C;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.02em;
}

.gemlive-product-price .amount,
.gemlive-product-price ins {
    text-decoration: none;
    color: inherit;
}

.gemlive-product-price del {
    color: rgba(255, 255, 255, 0.35);
    font-size: 1.25rem;
    margin-right: 0.5rem;
}

.gemlive-product-price__tax {
    color: rgba(255, 255, 255, 0.3);
    font-size: 0.875rem;
}

.gemlive-product-price__tax--suffix {
    font-size: 0.65em;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.45);
    white-space: nowrap;
}

.gemlive-product-excerpt {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.9rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.gemlive-product-cart {
    margin-bottom: 1rem;
}

.gemlive-product-cart form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin: 0;
}

.gemlive-product-cart form.cart .quantity {
    display: inline-flex;
    align-items: center;
    margin: 0;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 0.75rem;
    background: rgba(26, 26, 46, 0.5);
    overflow: hidden;
}

.gemlive-product-cart form.cart .quantity input.qty {
    width: 3rem;
    height: 2.75rem;
    margin: 0;
    padding: 0;
    border: none;
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    background: transparent;
    color: #fff;
    font-weight: 600;
    font-size: 0.875rem;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
}

.gemlive-product-cart form.cart .quantity input.qty::-webkit-outer-spin-button,
.gemlive-product-cart form.cart .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.gemlive-product-cart form.cart .single_add_to_cart_button {
    flex: 1 1 auto;
    min-width: 12rem;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 1.5rem !important;
    border-radius: 0.75rem !important;
    font-weight: 700 !important;
    font-size: 0.875rem !important;
    box-shadow: 0 10px 25px rgba(201, 168, 76, 0.2);
}

.gemlive-product-cart form.cart .single_add_to_cart_button:hover {
    box-shadow: 0 12px 28px rgba(201, 168, 76, 0.28);
}

.gemlive-product-liver-note {
    margin: 0 0 1rem;
    color: rgba(255, 255, 255, 0.2);
    font-size: 0.75rem;
}

.gemlive-product-cta-row {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.gemlive-product-buy-now {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 1rem 1.5rem;
    border: 2px solid #C9A84C;
    border-radius: 0.75rem;
    color: #C9A84C;
    font-weight: 700;
    font-size: 0.875rem;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.gemlive-product-buy-now:hover {
    background: rgba(201, 168, 76, 0.1);
    color: #D4B55E;
}

.gemlive-product-soldout-notice {
    margin-bottom: 1.5rem;
    padding: 1rem 1.25rem;
    border-radius: 0.75rem;
    background: rgba(229, 115, 115, 0.08);
    border: 1px solid rgba(229, 115, 115, 0.2);
}

.gemlive-product-soldout-notice p {
    margin: 0;
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.875rem;
}

.gemlive-product-share {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 2rem;
}

.gemlive-product-share__label {
    color: rgba(255, 255, 255, 0.3);
    font-size: 0.75rem;
    margin-right: 0.25rem;
}

.gemlive-product-share__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.4);
    text-decoration: none;
    cursor: pointer;
    transition: color 0.2s, background 0.2s, border-color 0.2s;
}

.gemlive-product-share__btn:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

.gemlive-product-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 2rem;
}

.gemlive-product-trust__item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.75rem;
}

.gemlive-product-trust__item i {
    color: rgba(201, 168, 76, 0.6);
}

.gemlive-product-liver-card {
    padding: 1.25rem;
    border-radius: 0.75rem;
    background: rgba(26, 26, 46, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.03);
    transition: border-color 0.2s;
}

.gemlive-product-liver-card:hover {
    border-color: rgba(201, 168, 76, 0.1);
}

.gemlive-product-liver-card__head {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.gemlive-product-liver-card__avatar-wrap {
    position: relative;
    flex-shrink: 0;
}

.gemlive-product-liver-card__avatar {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 9999px;
    object-fit: cover;
    border: 2px solid rgba(201, 168, 76, 0.2);
}

.gemlive-product-liver-card__verified {
    position: absolute;
    right: -0.125rem;
    bottom: -0.125rem;
    width: 1.25rem;
    height: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: #22c55e;
    border: 2px solid #1A1A2E;
    color: #fff;
    font-size: 0.625rem;
}

.gemlive-product-liver-card__name {
    margin: 0 0 0.25rem;
    color: #fff;
    font-weight: 600;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gemlive-product-liver-card__badge {
    display: inline-flex;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201, 168, 76, 0.2);
    color: #C9A84C;
    font-size: 0.625rem;
    font-weight: 500;
}

.gemlive-product-liver-card__specialty {
    margin: 0;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.75rem;
}

.gemlive-product-liver-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.125rem;
    margin-top: 0.35rem;
    color: #C9A84C;
    font-size: 0.75rem;
    text-decoration: none;
}

.gemlive-product-liver-card__link:hover {
    color: #D4B55E;
}

.gemlive-product-liver-card__stats {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.875rem;
}

.gemlive-product-liver-card__stats span {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.gemlive-product-liver-card__stats i {
    color: #C9A84C;
}

.gemlive-product-details {
    margin-top: 4rem;
}

.gemlive-product-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding: 0.25rem;
    width: fit-content;
    max-width: 100%;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.gemlive-product-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid transparent;
    background: transparent;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.2s, background 0.2s, border-color 0.2s;
}

@media (min-width: 768px) {
    .gemlive-product-tab {
        padding: 0.625rem 1.5rem;
    }
}

.gemlive-product-tab:hover {
    color: rgba(255, 255, 255, 0.65);
    background: rgba(255, 255, 255, 0.02);
}

.gemlive-product-tab.is-active {
    color: #C9A84C;
    background: rgba(201, 168, 76, 0.1);
    border-color: rgba(201, 168, 76, 0.2);
}

.gemlive-product-tab-panels {
    margin-top: 2rem;
}

.gemlive-product-tab-panel__inner {
    max-width: 48rem;
}

.gemlive-product-section-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem;
    color: #fff;
    font-size: 1.125rem;
    font-weight: 600;
}

.gemlive-product-section-title i {
    color: #C9A84C;
}

.gemlive-product-description {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.875rem;
    line-height: 1.8;
    margin-bottom: 2rem;
}

.gemlive-product-features {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 640px) {
    .gemlive-product-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gemlive-product-feature {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    border-radius: 0.75rem;
    background: rgba(26, 26, 46, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.03);
}

.gemlive-product-feature__icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201, 168, 76, 0.2);
    color: #C9A84C;
}

.gemlive-product-feature__title {
    margin: 0;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 500;
}

.gemlive-product-feature__text {
    margin: 0.125rem 0 0;
    color: rgba(255, 255, 255, 0.3);
    font-size: 0.75rem;
}

.gemlive-product-specs {
    margin: 0;
}

.gemlive-product-specs__row {
    display: grid;
    grid-template-columns: 8rem 1fr;
    gap: 1rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.gemlive-product-specs__row:last-child {
    border-bottom: none;
}

.gemlive-product-specs__row dt {
    margin: 0;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.875rem;
}

.gemlive-product-specs__row dd {
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.875rem;
}

.gemlive-product-shipping {
    display: grid;
    gap: 1.25rem;
}

.gemlive-product-shipping__block h3 {
    margin: 0 0 0.5rem;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 600;
}

.gemlive-product-shipping__block p {
    margin: 0;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.875rem;
    line-height: 1.8;
}

.gemlive-single-product-wrap .related.products {
    margin-top: 4rem;
    padding-top: 0;
    border: none;
}

.gemlive-single-product-wrap .related.products > h2 {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 2rem;
    color: #fff;
    font-size: 1.125rem;
    font-weight: 600;
}

.gemlive-single-product-wrap .related.products > h2::before {
    content: '';
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    background: rgba(201, 168, 76, 0.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23C9A84C'%3E%3Cpath d='M12 2l2.4 7.4H22l-6.2 4.5 2.4 7.4L12 16.8 5.8 21.3l2.4-7.4L2 9.4h7.6z'/%3E%3C/svg%3E") center/1rem no-repeat;
    border: 1px solid rgba(201, 168, 76, 0.2);
    flex-shrink: 0;
}

.gemlive-single-product-wrap .related.products ul.products {
    margin: 0;
}

.gemlive-single-product-wrap div.product.gemlive-product {
    display: block;
    grid-template-columns: none;
    gap: 0;
}

.gemlive-single-product-wrap .summary.entry-summary {
    display: none;
}

.gemlive-shop-page .woocommerce-before-shop-loop,
.gemlive-shop-page .woocommerce-ordering {
    margin-bottom: 1.5rem;
}

.gemlive-shop-page .woocommerce-ordering {
    display: flex;
    justify-content: flex-end;
}

.gemlive-shop-page .woocommerce-ordering .orderby {
    appearance: none;
    background: rgba(26, 26, 46, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    font-size: 0.875rem;
    padding: 0.625rem 2.25rem 0.625rem 1rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23C9A84C' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
}

.gemlive-shop-page .woocommerce-ordering .orderby:focus {
    border-color: #C9A84C;
    outline: none;
}

.gemlive-shop-page ul.products {
    margin-top: 0;
}

.gemlive-shop-guides {
    margin: -0.5rem 0 1.75rem;
}

.gemlive-shop-guides__inner {
    display: grid;
    gap: 0.625rem;
}

@media (min-width: 640px) {
    .gemlive-shop-guides__inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gemlive-shop-guides__link {
    align-items: center;
    background: rgba(26, 26, 46, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.875rem;
    color: rgba(255, 255, 255, 0.82);
    display: flex;
    font-size: 0.8125rem;
    gap: 0.75rem;
    line-height: 1.45;
    padding: 0.875rem 1rem;
    text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.gemlive-shop-guides__link:hover {
    background: rgba(26, 26, 46, 0.85);
    border-color: rgba(201, 168, 76, 0.35);
    color: #fff;
}

.gemlive-shop-guides__icon {
    align-items: center;
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201, 168, 76, 0.22);
    border-radius: 9999px;
    color: #C9A84C;
    display: inline-flex;
    flex-shrink: 0;
    height: 2rem;
    justify-content: center;
    width: 2rem;
}

.gemlive-shop-guides__label {
    flex: 1;
    min-width: 0;
}

.gemlive-shop-guides__arrow {
    color: rgba(255, 255, 255, 0.35);
    flex-shrink: 0;
    transition: color 0.2s ease, transform 0.2s ease;
}

.gemlive-shop-guides__link:hover .gemlive-shop-guides__arrow {
    color: #C9A84C;
    transform: translateX(2px);
}


.gemlive-product--catalog .gemlive-product-hero--catalog {
    gap: 2rem;
}

@media (min-width: 1024px) {
    .gemlive-product--catalog .gemlive-product-gallery {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .gemlive-product--catalog .gemlive-product-summary {
        flex: 1;
        max-width: 50%;
    }
}

.gemlive-product-gallery-col {
    width: 100%;
}

.gemlive-product-gallery__label,
.gemlive-product-gallery__detail-label {
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.04em;
}

.gemlive-product-gallery__detail-label {
    margin-top: 1rem;
}

.gemlive-product--catalog .gemlive-product-gallery__stage {
    aspect-ratio: 1 / 1;
    border-radius: 0.25rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: #fff;
    overflow: hidden;
    position: relative;
}

.gemlive-product-gallery__main-link {
    display: block;
    width: 100%;
    height: 100%;
}

.gemlive-product-gallery__main-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}

.gemlive-product-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 9999px;
    background: rgba(10, 10, 26, 0.72);
    color: #fff;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}

.gemlive-product-gallery__nav:hover {
    background: rgba(10, 10, 26, 0.9);
    border-color: #C9A84C;
    color: #C9A84C;
}

.gemlive-product-gallery__nav--prev {
    left: 0.75rem;
}

.gemlive-product-gallery__nav--next {
    right: 0.75rem;
}

.gemlive-product-gallery__counter {
    position: absolute;
    right: 0.75rem;
    bottom: 0.75rem;
    z-index: 2;
    padding: 0.25rem 0.6rem;
    border-radius: 9999px;
    background: rgba(10, 10, 26, 0.72);
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.75rem;
}

.gemlive-product-gallery__thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

.gemlive-product-gallery__thumb {
    width: 4.5rem;
    height: 4.5rem;
    padding: 0;
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-radius: 0.25rem;
    background: #fff;
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.2s, opacity 0.2s;
    opacity: 0.8;
}

.gemlive-product-gallery__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gemlive-product-gallery__thumb.is-active,
.gemlive-product-gallery__thumb:hover {
    border-color: #C9A84C;
    opacity: 1;
}

.gemlive-product--catalog .gemlive-product-gallery__main {
    height: auto;
}

.gemlive-product--catalog .gemlive-product-gallery__hint {
    display: none;
}

.gemlive-product-summary__inner--catalog {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.gemlive-product-code {
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.8125rem;
    font-weight: 500;
}

.gemlive-product-code--sub {
    margin: 0 0 1.25rem;
    color: rgba(255, 255, 255, 0.35);
    font-size: 0.75rem;
}

.gemlive-product-brand-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin: 0 0 0.5rem;
    font-size: 0.75rem;
}

.gemlive-product-brand-line__brand {
    color: rgba(201, 168, 76, 0.9);
    font-weight: 600;
    letter-spacing: 0.06em;
}

.gemlive-product-brand-line__code {
    color: rgba(255, 255, 255, 0.4);
}

.gemlive-product--catalog .gemlive-product-title {
    margin-bottom: 1.25rem;
    font-size: clamp(1.375rem, 2.2vw, 1.75rem);
    font-weight: 600;
}

.gemlive-product-price-block--catalog {
    margin-bottom: 0.75rem;
    padding-bottom: 0;
    border-bottom: none;
}

.gemlive-product-price-block--catalog .gemlive-product-price {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 600;
}

.gemlive-product-excerpt--catalog {
    margin: 0 0 1.5rem;
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.875rem;
    line-height: 1.9;
}

.gemlive-product-excerpt--catalog p {
    margin: 0;
}

.gemlive-product-stock-status {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 1.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.25rem;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.8125rem;
}

.gemlive-product-size,
.gemlive-product-resize {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.gemlive-product-size__heading,
.gemlive-product-resize__heading {
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.875rem;
    font-weight: 600;
}

.gemlive-product-size__options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gemlive-product-size__btn {
    min-width: 3rem;
    padding: 0.625rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.25rem;
    background: transparent;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    line-height: 1;
    cursor: default;
}

.gemlive-product-size__btn.is-active {
    border-color: #C9A84C;
    background: rgba(201, 168, 76, 0.12);
    color: #C9A84C;
    font-weight: 600;
}

.gemlive-product-resize__note {
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.8125rem;
    line-height: 1.7;
}

.gemlive-product-resize__delivery {
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
}

.gemlive-product-resize__delivery-label {
    margin-right: 0.5rem;
    color: rgba(255, 255, 255, 0.45);
}

.gemlive-product-resize__stock {
    margin: 0 0 1rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
}

.gemlive-product-resize__stock-label {
    margin-right: 0.5rem;
    color: rgba(255, 255, 255, 0.45);
}

.gemlive-product-resize__picker {
    margin-bottom: 1rem;
}

.gemlive-product-resize__picker-heading {
    margin: 0 0 0.35rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.8125rem;
    font-weight: 600;
}

.gemlive-product-resize__picker-hint {
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.75rem;
    line-height: 1.6;
}

.gemlive-product-resize__options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gemlive-product-resize__btn {
    min-width: 2.75rem;
    padding: 0.625rem 0.875rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.25rem;
    background: transparent;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    line-height: 1;
    cursor: pointer;
}

.gemlive-product-resize__btn.is-active {
    border-color: #C9A84C;
    background: rgba(201, 168, 76, 0.12);
    color: #C9A84C;
    font-weight: 600;
}

.gemlive-product-resize__fee {
    margin: 0 0 0.35rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
}

.gemlive-product-resize__fee-label {
    margin-right: 0.5rem;
    color: rgba(255, 255, 255, 0.45);
}

.gemlive-product-resize__fee-note {
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.75rem;
}

.gemlive-product-ship-estimate {
    margin-bottom: 1.5rem;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.25rem;
    background: rgba(255, 255, 255, 0.02);
}

.gemlive-product-ship-estimate__label {
    margin: 0 0 0.35rem;
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 600;
}

.gemlive-product-ship-estimate__note {
    margin: 0;
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.75rem;
    line-height: 1.6;
}

.gemlive-product-purchase {
    margin-bottom: 1.25rem;
    padding: 1rem 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.gemlive-product-sticky-bar {
    display: none;
}

.gemlive-product-cart--catalog form.cart {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0;
}

.gemlive-product-cart--catalog .woocommerce-variation-add-to-cart,
.gemlive-product-cart--catalog form.cart:not(.variations_form) {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
}

.gemlive-product-cart--catalog form.cart .quantity,
.gemlive-product-cart--catalog .woocommerce-variation-add-to-cart .quantity {
    display: none !important;
}

.gemlive-product-cart--catalog form.cart .stock,
.gemlive-product-cart--catalog .woocommerce-variation.single_variation {
    display: none;
}

.gemlive-product-cart--catalog form.cart .single_add_to_cart_button {
    width: 100%;
    margin: 0;
    padding: 0.9375rem 1.5rem !important;
    border: none !important;
    border-radius: 0.25rem !important;
    background: #C9A84C !important;
    color: #0A0A1A !important;
    font-size: 0.9375rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em;
    line-height: 1.4;
    box-shadow: none;
    transition: background 0.2s ease;
}

.gemlive-product-cart--catalog form.cart .single_add_to_cart_button:hover {
    background: #D4B55E !important;
    box-shadow: none;
}

.gemlive-product-cart--catalog form.cart .single_add_to_cart_button.disabled,
.gemlive-product-cart--catalog form.cart .single_add_to_cart_button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.gemlive-product-purchase-followup {
    margin-top: 0.75rem;
}

.gemlive-product-purchase-followup__inner {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.gemlive-product-purchase-followup .woocommerce-message,
.gemlive-product-purchase-followup .woocommerce-info,
.gemlive-product-purchase-followup .woocommerce-error {
    margin: 0;
    padding: 0.85rem 1rem;
    font-size: 0.875rem;
}

.gemlive-product-purchase-followup .woocommerce-message .button,
.gemlive-product-purchase-followup .woocommerce-info .button,
.gemlive-product-purchase-followup .woocommerce-error .button {
    display: none;
}

.gemlive-product-purchase-followup__next {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(201, 168, 76, 0.22);
    border-radius: 0.25rem;
    background: rgba(201, 168, 76, 0.06);
}

.gemlive-product-purchase-followup__next[hidden],
.gemlive-product-purchase-followup__next.is-hidden {
    display: none;
}

.gemlive-product-purchase-followup__status {
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.8125rem;
    line-height: 1.5;
}

.gemlive-product-purchase-followup__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.gemlive-product-purchase-followup__checkout,
.gemlive-product-purchase-followup__cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.25rem;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.gemlive-product-purchase-followup__checkout {
    border: 1px solid #C9A84C;
    background: transparent;
    color: #C9A84C;
}

.gemlive-product-purchase-followup__checkout:hover {
    background: rgba(201, 168, 76, 0.14);
    color: #D4B55E;
}

.gemlive-product-purchase-followup__cart {
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.03);
    color: rgba(255, 255, 255, 0.82);
}

.gemlive-product-purchase-followup__cart:hover {
    border-color: rgba(255, 255, 255, 0.24);
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
}

@media (max-width: 479px) {
    .gemlive-product-purchase-followup__actions {
        grid-template-columns: 1fr;
    }
}

.gemlive-notice-btn--checkout {
    margin-left: 0.35rem;
}

.gemlive-product-share--catalog {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    gap: 0.75rem;
}

.gemlive-product-share--catalog .gemlive-product-share__label {
    display: none;
}

.gemlive-product-share--catalog .gemlive-product-share__btn {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
}

.gemlive-product-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.gemlive-product-liver-card--compact {
    margin-top: 0.5rem;
    padding: 1rem;
}

.gemlive-product-liver-card--compact .gemlive-product-liver-card__stats {
    display: none;
}

.gemlive-product-liver-dock__label {
    display: none;
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-style: inherit;
    line-height: inherit;
}

@media (min-width: 1024px) {
    .gemlive-product-liver-dock {
        position: fixed;
        right: 1.5rem;
        bottom: 1.5rem;
        left: auto;
        z-index: 24;
        width: 19.5rem;
        margin: 0;
    }

    .gemlive-product-liver-dock__label {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        margin: 0 0 0.55rem;
        padding-right: 0.15rem;
        color: rgba(201, 168, 76, 0.82);
        font-size: 0.8125rem;
        font-weight: 600;
        letter-spacing: 0.06em;
    }

    .gemlive-product-liver-dock__label::before {
        content: '';
        flex-shrink: 0;
        width: 1.5rem;
        height: 1px;
        background: linear-gradient(90deg, rgba(201, 168, 76, 0.75), rgba(201, 168, 76, 0.15));
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card--dock {
        position: relative;
        margin: 0;
        padding: 1rem 1.1rem;
        border-radius: 0.625rem;
        background: linear-gradient(145deg, rgba(18, 18, 36, 0.97) 0%, rgba(10, 10, 26, 0.98) 100%);
        backdrop-filter: blur(14px);
        border: 1px solid rgba(201, 168, 76, 0.28);
        box-shadow:
            0 0 0 1px rgba(255, 255, 255, 0.04) inset,
            0 14px 36px rgba(0, 0, 0, 0.42),
            0 0 24px rgba(201, 168, 76, 0.08);
        transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card--dock::before {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        height: 2px;
        border-radius: 0.625rem 0.625rem 0 0;
        background: linear-gradient(90deg, rgba(201, 168, 76, 0.15), rgba(201, 168, 76, 0.85) 45%, rgba(201, 168, 76, 0.2));
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card--dock:hover {
        border-color: rgba(201, 168, 76, 0.45);
        box-shadow:
            0 0 0 1px rgba(255, 255, 255, 0.06) inset,
            0 18px 40px rgba(0, 0, 0, 0.48),
            0 0 32px rgba(201, 168, 76, 0.14);
        transform: translateY(-2px);
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card__head {
        margin-bottom: 0;
        gap: 0.875rem;
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card__avatar-wrap::after {
        content: '';
        position: absolute;
        inset: -2px;
        border-radius: 50%;
        border: 1px solid rgba(201, 168, 76, 0.35);
        pointer-events: none;
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card__avatar {
        width: 3rem;
        height: 3rem;
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card__name {
        font-size: 0.9375rem;
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card__badge {
        background: rgba(201, 168, 76, 0.14);
        border-color: rgba(201, 168, 76, 0.35);
    }

    .gemlive-product-liver-dock .gemlive-product-liver-card__link {
        margin-top: 0.45rem;
        font-size: 0.8125rem;
        font-weight: 500;
    }
}

.gemlive-product-details--catalog {
    margin-top: 3rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.gemlive-product-accordion {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.gemlive-product-accordion__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.125rem 0;
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.gemlive-product-accordion__heading {
    margin: 0;
    padding: 0;
    flex: 1;
    min-width: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    font-style: inherit;
    line-height: inherit;
    letter-spacing: inherit;
}

.gemlive-product-accordion__summary::-webkit-details-marker {
    display: none;
}

.gemlive-product-accordion__summary::after {
    content: '+';
    color: rgba(255, 255, 255, 0.45);
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1;
}

.gemlive-product-accordion[open] .gemlive-product-accordion__summary::after {
    content: '−';
}

.gemlive-product-accordion__body {
    padding: 0 0 1.25rem;
}

.gemlive-product-specs--catalog .gemlive-product-specs__row {
    grid-template-columns: 7rem 1fr;
    gap: 1rem;
    padding: 0.75rem 0;
}

.gemlive-product-specs--catalog .gemlive-product-specs__row dt {
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.8125rem;
}

.gemlive-product-specs--catalog .gemlive-product-specs__row dd {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.875rem;
}

.gemlive-product-description--catalog {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.875rem;
    line-height: 1.9;
}

.gemlive-product-description--catalog h3 {
    margin: 1.25rem 0 0.5rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.9375rem;
}

.gemlive-product-description--catalog ul {
    margin: 0;
    padding-left: 1.1rem;
}

/* Product reviews (verified purchasers) */
.gemlive-product-reviews-section {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.gemlive-product-reviews__title {
    margin: 0 0 1.25rem;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.125rem;
    font-weight: 500;
}

.gemlive-product-reviews__empty,
.gemlive-product-reviews__gate {
    margin: 0 0 1.25rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.875rem;
    line-height: 1.7;
}

.gemlive-product-reviews__list {
    list-style: none;
    margin: 0 0 1.75rem;
    padding: 0;
}

.gemlive-product-reviews__list .review,
.gemlive-product-reviews__list .comment {
    margin: 0 0 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    background: rgba(26, 26, 46, 0.35);
}

.gemlive-product-reviews__list .meta,
.gemlive-product-reviews__list .woocommerce-review__author {
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.8125rem;
}

.gemlive-product-reviews__list .woocommerce-review__verified {
    color: #c9a84c;
    font-style: normal;
}

.gemlive-product-reviews__list .description {
    margin-top: 0.5rem;
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.875rem;
    line-height: 1.7;
}

.gemlive-product-reviews__form-wrap {
    margin-top: 1.5rem;
    padding: 1.25rem 1.25rem 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    background: rgba(26, 26, 46, 0.4);
}

.gemlive-product-reviews__form-wrap .comment-reply-title {
    display: block;
    margin-bottom: 1rem;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1rem;
}

.gemlive-product-reviews__form-wrap label {
    display: block;
    margin-bottom: 0.35rem;
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.8125rem;
}

.gemlive-product-reviews__form-wrap input[type="text"],
.gemlive-product-reviews__form-wrap input[type="email"],
.gemlive-product-reviews__form-wrap select,
.gemlive-product-reviews__form-wrap textarea {
    width: 100%;
    margin-bottom: 0.85rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.5rem;
    background: rgba(0, 0, 0, 0.25);
    color: rgba(255, 255, 255, 0.9);
}

.gemlive-product-reviews__form-wrap .form-submit .submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 1.25rem;
    border: 0;
    border-radius: 999px;
    background: #c9a84c;
    color: #1a1a2e;
    font-weight: 600;
    cursor: pointer;
}

.gemlive-product-story {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

@media (min-width: 768px) {
    .gemlive-product-story {
        margin-top: 4rem;
        padding-top: 2.5rem;
    }
}

.gemlive-product-story__title {
    margin: 0 0 1.5rem;
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.gemlive-product-story__body {
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
}

.gemlive-product-story__columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.75rem;
}

@media (min-width: 768px) {
    .gemlive-product-story__columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
    }

    .gemlive-product-story__columns .gemlive-product-story__block + .gemlive-product-story__block {
        padding-left: 2rem;
        border-left: 1px solid rgba(255, 255, 255, 0.06);
    }

    .gemlive-product-story__columns .gemlive-product-story__block:first-child {
        padding-right: 2rem;
    }
}

.gemlive-product-story__block--scenes {
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 0.5rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.025) 0%, rgba(201, 168, 76, 0.04) 100%);
}

.gemlive-product-story__block--scenes .gemlive-product-story__label {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.gemlive-product-story__block--scenes .gemlive-product-story__label::before {
    content: '';
    flex-shrink: 0;
    width: 1.25rem;
    height: 1px;
    background: rgba(201, 168, 76, 0.45);
}

.gemlive-product-story__scene-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.625rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gemlive-product-story__scene-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.8rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.8125rem;
    line-height: 1.4;
    letter-spacing: 0.02em;
    border: 1px solid rgba(201, 168, 76, 0.22);
    border-radius: 9999px;
    background: rgba(201, 168, 76, 0.06);
}

.gemlive-product-story__scene-tag::before {
    content: '';
    flex-shrink: 0;
    width: 0.25rem;
    height: 0.25rem;
    margin-right: 0.45rem;
    border-radius: 50%;
    background: rgba(201, 168, 76, 0.55);
}

.gemlive-product-story__label {
    margin: 0 0 0.85rem;
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.08em;
}

.gemlive-product-story__lines {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gemlive-product-story__lines li {
    position: relative;
    padding-left: 0.85rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.875rem;
    line-height: 1.9;
    letter-spacing: 0.01em;
}

.gemlive-product-story__lines li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.72em;
    width: 0.25rem;
    height: 1px;
    background: rgba(255, 255, 255, 0.28);
}

.gemlive-product-story__lines li + li {
    margin-top: 0.65rem;
}

.gemlive-product-story__note {
    margin: 0;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.38);
    font-size: 0.75rem;
    line-height: 1.75;
}

@media (max-width: 1023px) {
    .gemlive-product-sticky-bar {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 30;
        padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        background: rgba(10, 10, 26, 0.96);
        backdrop-filter: blur(10px);
        transform: translateY(100%);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: transform 0.24s ease, opacity 0.24s ease;
        will-change: transform, opacity;
    }

    .gemlive-product-sticky-bar.is-visible {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .gemlive-product-sticky-bar__inner {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        max-width: 40rem;
        margin: 0 auto;
    }

    .gemlive-product-sticky-bar__price {
        flex-shrink: 0;
        color: #C9A84C;
        font-size: 1.25rem;
        font-weight: 700;
        line-height: 1.2;
        white-space: nowrap;
    }

    .gemlive-product-sticky-bar__price .gemlive-product-price__tax {
        display: block;
        margin-top: 0.15rem;
        color: rgba(255, 255, 255, 0.45);
        font-size: 0.6875rem;
        font-weight: 400;
    }

    .gemlive-product-sticky-bar__btn {
        flex: 1;
        min-width: 0;
        padding: 0.875rem 1rem;
        border: none;
        border-radius: 0.25rem;
        background: #C9A84C;
        color: #0A0A1A;
        font-size: 0.875rem;
        font-weight: 600;
        line-height: 1.3;
        cursor: pointer;
        transition: background 0.2s;
    }

    .gemlive-product-sticky-bar__btn:hover {
        background: #D4B55E;
    }
}

/* ==========================================================================
   注文完了（order-received）
   ========================================================================== */

.gemlive-thankyou-page .woocommerce-thankyou-order-received:empty,
.gemlive-checkout-wrap--thankyou .woocommerce-thankyou-order-received:empty {
    display: none;
}

.gemlive-checkout-wrap--thankyou {
    max-width: 52rem;
    margin-left: auto;
    margin-right: auto;
}

.gemlive-checkout-wrap--thankyou .woocommerce-order {
    color: rgba(255, 255, 255, 0.88);
}

.gemlive-checkout-wrap--thankyou .woocommerce-order-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    list-style: none;
    margin: 0 0 1.75rem;
    padding: 0;
}

@media (min-width: 768px) {
    .gemlive-checkout-wrap--thankyou .woocommerce-order-overview {
        grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    }
}

.gemlive-checkout-wrap--thankyou .woocommerce-order-overview li {
    margin: 0;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 1rem;
    background: rgba(26, 26, 46, 0.72);
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.55);
}

.gemlive-checkout-wrap--thankyou .woocommerce-order-overview li strong {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0;
    color: #fff;
    word-break: break-word;
}

.gemlive-checkout-wrap--thankyou .woocommerce-order-details,
.gemlive-checkout-wrap--thankyou .woocommerce-customer-details {
    margin: 0 0 1.75rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 1rem;
    background: rgba(26, 26, 46, 0.55);
}

.gemlive-checkout-wrap--thankyou .woocommerce-order-details__title,
.gemlive-checkout-wrap--thankyou .woocommerce-column__title,
.gemlive-checkout-wrap--thankyou .woocommerce-order-details h2,
.gemlive-checkout-wrap--thankyou .woocommerce-customer-details h2 {
    margin: 0 0 1rem;
    font-size: 1rem;
    font-weight: 600;
    color: #c9a84c;
}

.gemlive-checkout-wrap--thankyou .woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse;
}

.gemlive-thankyou-order-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -0.15rem;
    padding: 0 0.15rem;
}

.gemlive-checkout-wrap--thankyou .woocommerce-table--order-details th,
.gemlive-checkout-wrap--thankyou .woocommerce-table--order-details td {
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    text-align: left;
    vertical-align: top;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.9rem;
}

.gemlive-checkout-wrap--thankyou .woocommerce-table--order-details th {
    color: rgba(255, 255, 255, 0.5);
    font-weight: 500;
}

.gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tfoot th,
.gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tfoot td {
    border-bottom: 0;
    padding-top: 0.9rem;
}

.gemlive-checkout-wrap--thankyou .woocommerce-table--order-details a {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gemlive-checkout-wrap--thankyou .woocommerce-customer-details address {
    font-style: normal;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.78);
}

.gemlive-checkout-wrap--thankyou .woocommerce-columns--addresses {
    display: grid;
    gap: 1rem;
}

@media (min-width: 768px) {
    .gemlive-checkout-wrap--thankyou .woocommerce-columns--addresses {
        grid-template-columns: 1fr 1fr;
    }
}

.gemlive-checkout-wrap--thankyou .woocommerce-notice--error,
.gemlive-checkout-wrap--thankyou .woocommerce-thankyou-order-failed {
    margin: 0 0 1.25rem;
    padding: 1rem 1.15rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(239, 68, 68, 0.35);
    background: rgba(127, 29, 29, 0.25);
    color: #fecaca;
}

.gemlive-checkout-wrap--thankyou .woocommerce-thankyou-order-failed-actions .button,
.gemlive-checkout-wrap--thankyou .button.pay {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0 1.25rem;
    border-radius: 999px;
    background: #c9a84c;
    color: #0a0a1a !important;
    font-weight: 600;
    text-decoration: none;
}

/* ご注文メモ */
.gemlive-thankyou-note {
    margin: 0 0 1.75rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(201, 168, 76, 0.28);
    border-left: 4px solid #c9a84c;
    border-radius: 1rem;
    background: rgba(201, 168, 76, 0.08);
}

.gemlive-thankyou-note__title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: #c9a84c;
}

.gemlive-thankyou-note__body {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.88);
    white-space: pre-wrap;
    word-break: break-word;
}

.gemlive-thankyou-note__hint {
    margin: 0.75rem 0 0;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.55);
}

/* 銀行振込 */
.gemlive-thankyou-bacs {
    margin: 0 0 1.75rem;
    padding: 1.35rem 1.4rem;
    border: 1px solid rgba(201, 168, 76, 0.35);
    border-radius: 1rem;
    background: rgba(201, 168, 76, 0.1);
}

.gemlive-thankyou-bacs__title {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
    font-weight: 600;
    color: #c9a84c;
}

.gemlive-thankyou-bacs__lead,
.gemlive-thankyou-bacs__hint {
    margin: 0 0 1rem;
    font-size: 0.875rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.7);
}

.gemlive-thankyou-bacs__hint {
    margin: 0.85rem 0 0;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.5);
}

.gemlive-thankyou-bacs__fallback {
    margin: 0 0 0.5rem;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    background: rgba(10, 10, 26, 0.45);
    font-size: 0.875rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.72);
}

.gemlive-thankyou-failed {
    margin: 0 0 1.75rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(255, 107, 107, 0.22);
    border-radius: 1rem;
    background: rgba(40, 16, 24, 0.55);
}

.gemlive-thankyou-failed__title {
    margin: 0 0 0.65rem;
    font-size: 1rem;
    font-weight: 600;
    color: #ff8f8f;
}

.gemlive-thankyou-failed__lead {
    margin: 0 0 1rem;
    font-size: 0.875rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.78);
}

.gemlive-thankyou-bacs__meta {
    display: grid;
    gap: 0.75rem;
    margin: 0 0 1rem;
}

.gemlive-thankyou-bacs__meta dt {
    margin: 0;
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.5);
}

.gemlive-thankyou-bacs__meta dd {
    margin: 0.2rem 0 0;
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
}

.gemlive-thankyou-bacs__label {
    margin: 0 0 0.4rem;
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.5);
}

.gemlive-thankyou-bacs__accounts {
    margin: 0;
    padding-left: 1.1rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.9rem;
    line-height: 1.7;
}

/* 今後の流れ・CTA */
.gemlive-thankyou-next {
    margin: 0 0 0.5rem;
    padding: 1.35rem 1.4rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 1rem;
    background: rgba(26, 26, 46, 0.55);
}

.gemlive-thankyou-next__title {
    margin: 0 0 0.85rem;
    font-size: 1rem;
    font-weight: 600;
    color: #c9a84c;
}

.gemlive-thankyou-next__list {
    margin: 0 0 1.25rem;
    padding-left: 1.2rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.9rem;
    line-height: 1.7;
}

.gemlive-thankyou-next__list li + li {
    margin-top: 0.4rem;
}

.gemlive-thankyou-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

@media (max-width: 639px) {
    .gemlive-thankyou-actions {
        flex-direction: column;
    }

    .gemlive-thankyou-actions__primary,
    .gemlive-thankyou-actions__secondary {
        width: 100%;
    }

    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details thead {
        display: none;
    }

    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tbody tr.order_item,
    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tfoot tr {
        display: block;
        padding: 0.85rem 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tbody tr.order_item td,
    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tfoot tr td {
        display: block;
        width: 100%;
        padding: 0.2rem 0;
        border-bottom: 0;
        text-align: right !important;
    }

    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tbody tr.order_item td::before,
    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tfoot tr td::before {
        content: attr(data-title) ': ';
        float: left;
        font-weight: 600;
        color: rgba(255, 255, 255, 0.5);
    }

    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tbody tr.order_item td.product-name {
        text-align: left !important;
        padding-bottom: 0.45rem;
    }

    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tbody tr.order_item td.product-name::before {
        display: none;
    }

    .gemlive-checkout-wrap--thankyou .woocommerce-table--order-details tfoot tr th {
        display: none;
    }

    .gemlive-checkout-wrap--thankyou .woocommerce-verify-email .button,
    .gemlive-checkout-wrap--thankyou .woocommerce-verify-email input.input-text {
        width: 100%;
        max-width: none;
    }

    .gemlive-thankyou-bacs__meta {
        grid-template-columns: 1fr;
    }
}

.gemlive-thankyou-actions__primary,
.gemlive-thankyou-actions__secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.85rem;
    padding: 0 1.35rem;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.gemlive-thankyou-actions__primary {
    background: #c9a84c;
    color: #0a0a1a;
}

.gemlive-thankyou-actions__primary:hover {
    background: #d4b55e;
    color: #0a0a1a;
}

.gemlive-thankyou-actions__secondary {
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.88);
    background: transparent;
}

.gemlive-thankyou-actions__secondary:hover {
    border-color: rgba(201, 168, 76, 0.55);
    color: #c9a84c;
}

.gemlive-thankyou-support {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.gemlive-thankyou-support a {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.55);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gemlive-thankyou-support a:hover {
    color: #c9a84c;
}

/* ゲスト再訪問時のメール認証 */
.gemlive-checkout-wrap--thankyou .woocommerce-verify-email {
    margin: 0;
    padding: 1.35rem 1.4rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 1rem;
    background: rgba(26, 26, 46, 0.55);
}

.gemlive-checkout-wrap--thankyou .woocommerce-verify-email > p {
    margin: 0 0 1rem;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.9rem;
    line-height: 1.65;
}

.gemlive-checkout-wrap--thankyou .woocommerce-verify-email a {
    color: #c9a84c;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gemlive-checkout-wrap--thankyou .woocommerce-verify-email label {
    display: block;
    margin-bottom: 0.4rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.8rem;
}

.gemlive-checkout-wrap--thankyou .woocommerce-verify-email input.input-text {
    width: 100%;
    max-width: 24rem;
    min-height: 3rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.75rem;
    background: rgba(10, 10, 26, 0.88);
    color: #fff;
}

.gemlive-checkout-wrap--thankyou .woocommerce-verify-email .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.85rem;
    padding: 0 1.35rem;
    border: 0;
    border-radius: 999px;
    background: #c9a84c;
    color: #0a0a1a;
    font-weight: 600;
    cursor: pointer;
}

.gemlive-checkout-wrap--thankyou .woocommerce-verify-email .button:hover {
    background: #d4b55e;
}

