/*
Theme Name: Astra Child MARLE
Theme URI: https://shop.marle-oralift.com/
Description: oral and body MARLE 用の Astra 子テーマ
Author: MARLE
Template: astra
Version: 1.2.21
Text Domain: astra-child-marle
*/

/* === MARLE Checkout: Japan address layout 2026-06-22 === */
body.woocommerce-checkout #shipping-option,
body.woocommerce-checkout .wc-block-components-address-form__country,
body.woocommerce-checkout .wc-block-components-address-form__address_2-toggle,
body.woocommerce-checkout .wc-block-components-address-form__address_2-hidden-input {
    display: none !important;
}

body.woocommerce-checkout .wc-block-components-address-form__last_name {
    order: 10;
}

body.woocommerce-checkout .wc-block-components-address-form__first_name {
    order: 20;
}

body.woocommerce-checkout .wc-block-components-address-form__postcode {
    order: 30;
}

body.woocommerce-checkout .wc-block-components-address-form__state {
    order: 40;
}

body.woocommerce-checkout .wc-block-components-address-form__city {
    order: 50;
}

body.woocommerce-checkout .wc-block-components-address-form__address_1 {
    order: 60;
}

body.woocommerce-checkout .wc-block-components-address-form__phone {
    order: 80;
}

body.woocommerce-checkout .wc-block-components-address-form__last_name,
body.woocommerce-checkout .wc-block-components-address-form__first_name,
body.woocommerce-checkout .wc-block-components-address-form__postcode,
body.woocommerce-checkout .wc-block-components-address-form__state {
    box-sizing: border-box;
    flex: 0 0 calc(50% - 6px) !important;
    width: calc(50% - 6px) !important;
}

body.woocommerce-checkout .wc-block-components-address-form__city,
body.woocommerce-checkout .wc-block-components-address-form__address_1,
body.woocommerce-checkout .wc-block-components-address-form__phone {
    box-sizing: border-box;
    flex: 0 0 100% !important;
    width: 100% !important;
}


/* === MARLE Checkout: input colors 2026-06-22 === */
/* ここにあったexpress決済エリアの非表示は2026-07-06に撤去（Apple Pay / Google Pay ボタン表示のため） */

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input textarea,
body.woocommerce-checkout .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-components-combobox-control input {
    background-color: #fff !important;
}


/* === MARLE Checkout: order summary design 2026-06-22 === */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
    background: #fff;
    border: 0 !important;
    padding: 28px 24px 32px;
}

body.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
    display: none !important;
}

body.woocommerce-checkout .wc-block-components-checkout-order-summary__content {
    display: block !important;
}

/* 送料無料の疑似要素バナー(::before)は削除 2026-07-03: functions.phpのmarle-fsn-checkoutバナーと二重表示になっていたため */


body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block {
    border: 0 !important;
    padding: 0 0 22px !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block::before {
    content: "注文商品";
    display: block;
    margin: 0 0 18px;
    color: #514650;
    font-size: 1rem;
    line-height: 1.6;
}

body.woocommerce-checkout .wc-block-components-order-summary {
    padding: 0 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item {
    display: grid !important;
    grid-template-columns: 74px minmax(0, 1fr) auto;
    column-gap: 16px;
    align-items: center;
    min-height: 92px;
    padding: 14px 0 !important;
    border: 0 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image {
    grid-column: 1;
    width: 74px !important;
    align-self: center;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
    display: block;
    width: 64px !important;
    height: 72px !important;
    margin: 0 auto;
    object-fit: contain;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border: 0;
    background: #514650;
    color: #fff;
    font-size: 0.75rem;
    line-height: 22px;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description {
    grid-column: 2;
    align-self: center;
    padding: 0 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
    margin: 0 0 8px !important;
    color: #514650;
    font-size: 0.94rem !important;
    font-weight: 400;
    line-height: 1.6;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-cart-item__prices {
    margin: 0;
    color: #6d626b;
    font-size: 0.88rem;
    line-height: 1.5;
}

body.woocommerce-checkout .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-metadata__description {
    display: none !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
    grid-column: 3;
    align-self: center;
    min-width: 76px;
    padding: 0 !important;
    color: #514650;
    font-size: 0.9rem;
    font-weight: 400;
    text-align: right;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wc-block-components-totals-wrapper {
    border-color: #ded7dc !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block {
    border-top: 1px solid #ded7dc !important;
    border-bottom: 1px solid #ded7dc !important;
    padding: 0 !important;
}

body.woocommerce-checkout .wc-block-components-totals-coupon__button {
    min-height: 54px;
    padding: 14px 16px !important;
    font-size: 0.9rem;
    font-weight: 400;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block {
    padding: 10px 0 8px;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block {
    border: 0 !important;
    padding: 0 !important;
}

body.woocommerce-checkout .wc-block-components-totals-item {
    padding: 10px 16px !important;
}

body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__value {
    color: #514650;
    font-size: 0.9rem;
    font-weight: 400;
}

body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wc-block-components-totals-wrapper {
    border-top: 1px solid #ded7dc !important;
    padding: 8px 0 0 !important;
}

body.woocommerce-checkout .wc-block-components-totals-footer-item {
    padding: 12px 16px !important;
}

body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 1.08rem !important;
}

@media (max-width: 1023px) {
    body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
        padding: 24px 20px 28px;
    }
}

@media (max-width: 480px) {
    body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
        padding: 20px 16px 24px;
    }

    body.woocommerce-checkout .wc-block-components-order-summary-item {
        grid-template-columns: 58px minmax(0, 1fr) auto;
        column-gap: 10px;
        min-height: 80px;
    }

    body.woocommerce-checkout .wc-block-components-order-summary-item__image {
        width: 58px !important;
    }

    body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
        width: 50px !important;
        height: 60px !important;
    }

    body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
        min-width: 66px;
        font-size: 0.84rem;
    }
}


/* === MARLE Checkout: block error message 2026-06-25 === */
body.woocommerce-checkout .wc-block-components-error,
body.woocommerce-checkout .wc-block-error {
    max-width: 760px;
    margin: 80px auto 96px;
    padding: 0;
    text-align: center;
    background: transparent;
    border: 0;
    box-shadow: none;
}

body.woocommerce-checkout .wc-block-components-error__image,
body.woocommerce-checkout .wc-block-error__image,
body.woocommerce-checkout .wc-block-components-error button,
body.woocommerce-checkout .wc-block-error button,
body.woocommerce-checkout .wc-block-components-error__message,
body.woocommerce-checkout .wc-block-error__message {
    display: none !important;
}

body.woocommerce-checkout .wc-block-components-error__content,
body.woocommerce-checkout .wc-block-error__content {
    display: block;
    color: #57495a;
}

body.woocommerce-checkout .wc-block-components-error__header,
body.woocommerce-checkout .wc-block-error__header,
body.woocommerce-checkout .wc-block-components-error__text,
body.woocommerce-checkout .wc-block-error__text {
    margin: 0;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

body.woocommerce-checkout .wc-block-components-error__header::before,
body.woocommerce-checkout .wc-block-error__header::before {
    content: "ご購入手続きの読み込み中に問題が発生しました";
    display: block;
    color: #57495a;
    font-size: 1.35rem;
    line-height: 1.6;
    font-weight: 400;
    letter-spacing: 0;
    margin-bottom: 12px;
}

body.woocommerce-checkout .wc-block-components-error__text::before,
body.woocommerce-checkout .wc-block-error__text::before {
    content: "お手数ですが、少し時間をおいてからもう一度お試しください。解消しない場合は、お問い合わせフォームよりご連絡ください。";
    display: block;
    color: #57495a;
    font-size: 1rem;
    line-height: 1.8;
    letter-spacing: 0;
}

@media (max-width: 767px) {
    body.woocommerce-checkout .wc-block-components-error,
    body.woocommerce-checkout .wc-block-error {
        margin: 56px auto 80px;
        padding: 0 20px;
    }

    body.woocommerce-checkout .wc-block-components-error__header::before,
    body.woocommerce-checkout .wc-block-error__header::before {
        font-size: 1.12rem;
    }

    body.woocommerce-checkout .wc-block-components-error__text::before,
    body.woocommerce-checkout .wc-block-error__text::before {
        font-size: 0.95rem;
    }
}


/* === MARLE Checkout: block error text width fix 2026-06-25 === */
body.woocommerce-checkout .wc-block-components-error,
body.woocommerce-checkout .wc-block-error {
    display: block !important;
}

body.woocommerce-checkout .wc-block-components-error__content,
body.woocommerce-checkout .wc-block-error__content,
body.woocommerce-checkout .wc-block-components-error__header,
body.woocommerce-checkout .wc-block-error__header,
body.woocommerce-checkout .wc-block-components-error__text,
body.woocommerce-checkout .wc-block-error__text {
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    writing-mode: horizontal-tb !important;
}

body.woocommerce-checkout .wc-block-components-error__header::before,
body.woocommerce-checkout .wc-block-error__header::before,
body.woocommerce-checkout .wc-block-components-error__text::before,
body.woocommerce-checkout .wc-block-error__text::before {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    writing-mode: horizontal-tb !important;
}


/* === MARLE Checkout: form step spacing 2026-06-25 === */
body.woocommerce-checkout .wc-block-components-checkout-step__heading-container {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 10px !important;
    margin-bottom: 20px !important;
    border-bottom: 1px solid #aea9b1 !important;
    align-items: flex-start !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__title {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}


/* === MARLE Checkout: form step heading inner reset 2026-06-25 === */
body.woocommerce-checkout .wc-block-components-checkout-step__heading {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}


/* === MARLE Checkout: first address row spacing 2026-06-25 === */
body.woocommerce-checkout .wc-block-components-address-form__last_name,
body.woocommerce-checkout .wc-block-components-address-form__first_name {
    margin-top: 0 !important;
}


/* === MARLE Checkout: remove order summary outer shell 2026-06-25 === */
body.woocommerce-checkout .wc-block-checkout__sidebar {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}


/* === MARLE Checkout: coupon and quantity refinement 2026-06-25 === */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block {
    padding: 12px 0 18px !important;
}

body.woocommerce-checkout .wc-block-components-totals-coupon {
    padding: 0 16px !important;
}

body.woocommerce-checkout .wc-block-components-totals-coupon__content {
    margin-top: 12px !important;
    padding-bottom: 10px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item {
    position: relative !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image {
    position: static !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
    position: absolute !important;
    top: 44px !important;
    right: 0 !important;
    left: auto !important;
    z-index: 1 !important;
    min-width: auto !important;
    height: auto !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #55475b !important;
    font-size: 0.82rem !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
    transform: translateX(-12px) !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity span:not(.screen-reader-text)::before {
    content: "数量 ";
}


/* === MARLE Checkout: coupon spacing specificity fix 2026-06-25 === */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-coupon-form-block.wc-block-components-totals-wrapper {
    padding: 14px 0 18px !important;
}

body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-totals-coupon__content {
    margin-top: 12px !important;
    padding-bottom: 12px !important;
}

body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-totals-coupon__form {
    margin-bottom: 0 !important;
}


/* === MARLE Checkout: order summary polish 2026-06-25 === */
body.woocommerce-checkout .wc-block-components-order-summary-item {
    grid-template-columns: 74px minmax(0, 1fr) auto !important;
    column-gap: 16px !important;
    align-items: center !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image {
    position: relative !important;
    display: flex !important;
    grid-column: 1 !important;
    width: 74px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description {
    display: flex !important;
    grid-column: 2 !important;
    align-self: center !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
    position: absolute !important;
    top: -7px !important;
    right: 2px !important;
    left: auto !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #55475b !important;
    color: #fff !important;
    font-size: 0.75rem !important;
    line-height: 22px !important;
    white-space: nowrap !important;
    transform: none !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity span:not(.screen-reader-text) {
    color: #fff !important;
    font-size: 0.75rem !important;
    line-height: 22px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity span:not(.screen-reader-text)::before {
    content: none !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
    grid-column: 3 !important;
    grid-row: auto !important;
    align-self: center !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block.wc-block-components-totals-wrapper {
    border-top: 1px solid #ded7dc !important;
    border-bottom: 1px solid #ded7dc !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-discount-block:not(:has(.wc-block-components-totals-item__label)) {
    display: none !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block {
    border-top: 0 !important;
    padding-top: 0 !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block .wc-block-components-totals-item__label {
    font-size: 0 !important;
    line-height: 0 !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block .wc-block-components-totals-item__label::before {
    content: "送料" !important;
    display: inline !important;
    color: #55475b !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
}

body.woocommerce-checkout .wc-block-components-totals-wrapper:has(.wc-block-components-totals-footer-item) {
    border-top: 0 !important;
    padding-top: 0 !important;
}

body.woocommerce-checkout .wc-block-components-totals-footer-item {
    border-top: 1px solid #55475b !important;
}


/* MARLE: hide in-stock availability; keep out-of-stock visible */
.single-product .summary p.stock.in-stock,
.single-product .summary .woocommerce-variation-availability p.stock.in-stock {
    display: none !important;
}
