/* Shared storefront adaptations. Keep the desktop design and commerce behavior. */
.zen-cart-drawer, .acb-mobile-nav-drawer {
    visibility: hidden;
    transition: transform .35s ease, visibility 0s .35s;
}
.zen-cart-drawer.open, .acb-mobile-nav-drawer.open {
    visibility: visible;
    transition-delay: 0s;
}

@media (max-width: 1024px) {
    .acb-cat-img-box, .zen-product-img-wrap { height: auto; }
    .acb-cat-img-box img, .zen-product-img-wrap img {
        height: auto;
        object-fit: contain;
    }
    .acb-cat-card:hover .acb-cat-img-box img,
    .zen-product-card:hover .zen-product-img-wrap img { transform: none; }
    .acb-single-grid > *, .acb-brand-showcase-box > *,
    .acb-about-dual-grid > *, .acb-about-vision-showcase > *,
    .acb-narrative-body-grid > *, .acb-footer-grid > * {
        min-width: 0;
    }
    .acb-product-breadcrumb, .acb-archive-breadcrumb {
        flex-wrap: wrap;
        overflow-wrap: anywhere;
    }
    .acb-main-image-card img {
        height: auto;
        max-height: none;
        object-fit: contain;
    }
    .acb-main-image-card:hover img { transform: none; }
    .acb-page-content { overflow-wrap: anywhere; }
    .acb-page-content iframe, .acb-page-content video {
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    /* 16px fields avoid automatic zoom when focusing a field on iOS. */
    body input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
    body select, body textarea,
    #customer_login .woocommerce-Input,
    #customer_login input[type="text"],
    #customer_login input[type="password"],
    #customer_login input[type="email"] {
        font-size: 16px;
        max-width: 100%;
        min-width: 0;
    }
    .acb-mobile-menu-btn, .acb-mobile-search-toggle,
    .acb-cart-pill, .acb-mobile-drawer-header .close-btn,
    .zen-drawer-close, .acb-qty-selector .qty-btn {
        min-width: 44px;
        min-height: 44px;
    }
    .acb-btn-primary, .acb-btn-secondary, .acb-btn-add-cart,
    .acb-btn-buynow, .acb-btn-wa-order, .acb-btn-cart, .acb-btn-details,
    .acb-newsletter-form button, .woocommerce button.button,
    .woocommerce a.button, .woocommerce input.button {
        min-height: 44px;
    }
    .acb-btn-primary svg, .acb-btn-secondary svg,
    .acb-btn-add-cart svg, .acb-btn-buynow svg,
    .acb-btn-wa-order svg { flex-shrink: 0; }

    .acb-page-wrapper, .acb-default-wc-wrapper { padding: 32px 0 48px; }
    .acb-page-title, .acb-about-title { overflow-wrap: anywhere; }
    .acb-page-content h2, .acb-page-content h3 { overflow-wrap: anywhere; }
    .acb-product-full-desc-section { padding: 24px 18px; }
    .acb-specs-table { table-layout: fixed; }
    .acb-specs-table th, .acb-specs-table td {
        vertical-align: top;
        overflow-wrap: anywhere;
    }
    .acb-specs-table th { padding-right: 12px; }
    .acb-secondary-actions { grid-template-columns: minmax(0, 1fr); }
    .acb-gallery-badge { top: 16px; left: 16px; max-width: calc(100% - 32px); }
    .acb-gallery-watermark { overflow-wrap: anywhere; letter-spacing: .05em; }
    .acb-archive-grid-header { flex-wrap: wrap; gap: 12px; }
    .acb-archive-grid-header form { max-width: 100%; }
    .acb-archive-grid-header select { width: 100%; }

    /* Remove the second layer of desktop padding inside login cards. */
    .woocommerce #customer_login .u-column1,
    .woocommerce #customer_login .u-column2,
    #customer_login .col-1, #customer_login .col-2 {
        padding: 24px 18px !important;
        min-width: 0;
    }
    #customer_login form.login, #customer_login form.register {
        padding: 0;
        margin: 20px 0 0;
        border: 0;
    }
    .woocommerce-account .woocommerce-MyAccount-content {
        min-width: 0;
        min-height: 0;
    }
    .woocommerce .form-row-first, .woocommerce .form-row-last {
        float: none;
        width: 100%;
    }
    .woocommerce form .form-row input.input-text,
    .woocommerce form .form-row textarea,
    .woocommerce .select2-container { max-width: 100%; }
    .woocommerce table.shop_table { overflow-wrap: anywhere; }
    .woocommerce .woocommerce-message .button,
    .woocommerce .woocommerce-info .button { float: none; margin: 8px 0; }
    .wc-block-components-main, .wc-block-components-sidebar,
    .wc-block-components-address-form, .wc-block-components-order-summary-item__description {
        min-width: 0;
    }
    .wc-block-components-product-name,
    .wc-block-components-order-summary-item__description { overflow-wrap: anywhere; }
    .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
        min-height: 48px;
    }

    .acb-newsletter-form { width: 100%; gap: 4px; }
    .acb-newsletter-form input { width: 100%; flex: 1; padding-left: 10px; }
    .acb-newsletter-form button { flex-shrink: 0; padding: 8px 14px; }
    .acb-footer-links a { display: inline-block; padding: 8px 0; }
    .acb-floating-concierge {
        bottom: calc(16px + env(safe-area-inset-bottom, 0px));
        left: max(12px, env(safe-area-inset-left, 0px));
        right: max(12px, env(safe-area-inset-right, 0px));
    }
    .acb-mobile-nav-links a { min-height: 44px; }
    .acb-mobile-drawer-search input, .acb-mobile-search-row input { min-height: 44px; }
}

@media (max-width: 380px) {
    .acb-main-bar-inner { gap: 4px; }
    .acb-bar-left, .acb-luxury-brand, .acb-bar-right { gap: 4px; }
    .acb-title-main { font-size: .78rem; letter-spacing: 0; }
    .acb-royal-emblem-img { width: 30px; height: 30px; }
    .acb-product-summary { padding: 20px 14px; }
    .acb-showcase-brand { font-size: 1.4rem; }
    .acb-showcase-stats { gap: 10px; padding: 12px 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .zen-cart-drawer, .acb-mobile-nav-drawer { transition: none; }
}
