/* Magnet Designer — Frontend Styles
   Skinny Wrist, LLC — skinnywrist.shop
   Upload to: wp-content/plugins/magnet-designer/magnet-designer.css
   Additional CSS in WordPress Customizer: leave EMPTY */

/* ======================================================
GLOBAL
====================================================== */
.woocommerce-breadcrumb { display: none !important; }

/* Short description — force visible (Astra collapses it) */
.magnet-short-desc ul,
.woocommerce-product-details__short-description ul {
    list-style: disc !important;
    padding-left: 22px !important;
    margin: 6px 0 12px !important;
}
.magnet-short-desc ul li,
.woocommerce-product-details__short-description ul li {
    display: list-item !important;
    font-size: 17px !important;
    color: #555 !important;
    line-height: 1.7 !important;
    margin-bottom: 4px !important;
}
.magnet-short-desc p,
.magnet-short-desc {
    font-size: 17px !important;
    color: #555 !important;
    line-height: 1.7 !important;
    margin-bottom: 16px !important;
}
.woocommerce-js .woocommerce-product-details__short-description,
.woocommerce-js div.product .woocommerce-product-details__short-description,
.woocommerce-js .entry-summary .woocommerce-product-details__short-description,
body.woocommerce-js .single-product .woocommerce-product-details__short-description,
body.single-product .woocommerce-product-details__short-description {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    transform: none !important;
    margin-top: 12px !important;
    margin-bottom: 20px !important;
    position: relative !important;
    z-index: 1 !important;
}
.woocommerce-js .woocommerce-product-details__short-description p,
body.single-product .woocommerce-product-details__short-description p {
    display: block !important;
    font-size: 17px !important;
    font-weight: 400 !important;
    color: #555 !important;
    line-height: 1.7 !important;
    margin-bottom: 8px !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* ======================================================
SHOP PAGE
====================================================== */
.woocommerce-result-count,
.woocommerce-ordering { display: none !important; }

.shop-intro-text {
    text-align: center;
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px;
    font-weight: 400;
    line-height: 26.4px;
    margin: 50px auto 20px;
    color: rgb(79,79,79);
    max-width: 700px;
}
.shop-intro-text .shop-intro-headline {
    display: block;
    font-family: 'Playfair Display', serif !important;
    font-size: 32px !important;
    font-weight: 600 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    margin-bottom: 8px;
    color: rgb(79,79,79);
    line-height: 1.2;
    white-space: nowrap;
}
.post-type-archive-product li.product {
    background: #f7f7f7;
    border: 1.5px solid #d0d0d0;
    border-radius: 14px;
    padding: 18px !important;
    margin: 0 !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.07);
    transition: transform 0.2s, box-shadow 0.2s;
    width: 100%;
}
.post-type-archive-product li.product:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.10);
    border-color: #d0d0d0;
}
.post-type-archive-product li.product img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: 10px;
    margin-bottom: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.10), 0 0 0 1px rgba(0,0,0,0.04);
    transition: opacity 0.2s;
}
.post-type-archive-product li.product a:hover img { opacity: 0.88; }
.post-type-archive-product li.product .woocommerce-LoopProduct-link::after,
.post-type-archive-product li.product a.woocommerce-loop-product__link::after { display: none !important; }

.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 240px)) !important;
    gap: 24px !important;
    justify-content: center !important;
    margin-top: 40px !important;
    margin-bottom: 80px !important;
    padding: 0 24px !important;
}
.post-type-archive-product .site-main,
.post-type-archive-product .content-area { padding-top: 50px !important; }

/* ======================================================
SHOP PAGE — product title, price, hide add-to-cart
====================================================== */
.post-type-archive-product li.product .woocommerce-loop-product__title {
    font-size: 14px !important;
    font-weight: 700 !important;
    margin-bottom: 4px;
    color: #37424A;
    line-height: 1.3;
}
.post-type-archive-product li.product .price,
.post-type-archive-product li.product .price .amount,
.post-type-archive-product li.product .price bdi {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #1B9C85 !important;
}
.post-type-archive-product li.product .button,
.post-type-archive-product li.product .add_to_cart_button { display: none !important; }
.single-product .related li.product .add_to_cart_button,
.single-product .upsells li.product .add_to_cart_button,
.single-product .related li.product .button,
.single-product .upsells li.product .button { display: none !important; }

/* ======================================================
GLOBAL BUTTONS — explicit list only, no broad :not() chain
====================================================== */
/* Teal pill style — only applied to these specific selectors */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.single-product .cart .button,
.magnet-upload-btn,
.btn-upload,
.finish-cart-btn,
.magnet-keep-shopping-btn,
.magnet-coupon-form .button,
.wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a {
    background: #45BCA6 !important;
    color: #fff !important;
    border: 2px solid #45BCA6 !important;
    padding: 14px 30px;
    border-radius: 50px !important;
    font-family: 'Karla', sans-serif !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    line-height: 1.3em !important;
    letter-spacing: -0.5px !important;
    cursor: pointer;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.single-product .cart .button:hover,
.magnet-upload-btn:hover,
.btn-upload:hover,
.finish-cart-btn:hover,
.magnet-coupon-form .button:hover,
.wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a:hover {
    background: #178E79 !important;
    color: #fff !important;
    border-color: #178E79 !important;
}

/* ======================================================
GLOBAL LINKS
====================================================== */
a, a:visited { color: #178E79; }
a:hover, a:focus { color: #45BCA6; text-decoration: none; }

/* ======================================================
HEADER NAV HOVER + ACTIVE STATE
====================================================== */
#masthead .main-header-menu .menu-item > a:hover,
#masthead .main-header-menu .menu-item > a:focus,
#masthead .main-header-menu .current-menu-item > a,
#masthead .main-header-menu .current_page_item > a,
#masthead .main-header-menu .current_page_ancestor > a,
#masthead .main-header-menu .current-menu-ancestor > a { color: #45BCA6 !important; }

header#masthead {
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    width: 100% !important;
}
html, body { overflow-x: clip !important; }
body { overflow-anchor: none; }

/* ======================================================
SINGLE PRODUCT PAGE — custom image + layout
====================================================== */
.single-product .woocommerce-product-gallery,
.single-product .flex-viewport,
.single-product .flex-control-thumbs { display: none !important; }
.single-product .wc-stripe-product-payment-request-button-separator,
.single-product .wc-stripe-product-payment-request-button-wrapper,
[class*="klarna"], [class*="afterpay"], [class*="sezzle"], [class*="affirm"],
.payment-method-messaging-element { display: none !important; }

.single-product div.product { display: block !important; }
.single-product .custom-product-wrap {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 40px;
    max-width: 1200px;
    margin: 20px auto;
}
.single-main-product-image {
    width: 380px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.custom-main-img-wrap {
    width: 100%;
    border-radius: 18px;
    overflow: hidden;
}
.custom-main-img-wrap img, #custom-main-img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    display: block;
    border-radius: 18px;
}
.custom-gallery-thumbs {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 10px;
    margin-top: 14px;
}
.custom-gallery-thumbs .custom-thumb {
    width: 80px;
    height: 80px;
    overflow: hidden;
    border-radius: 14px;
    flex-shrink: 0;
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color 0.15s;
}
.custom-gallery-thumbs .custom-thumb:hover { border-color: transparent; }
.custom-gallery-thumbs .custom-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 12px;
    display: block;
    pointer-events: none;
}
.single-product .summary,
.single-product .entry-summary {
    flex: 1 !important;
    max-width: 520px !important;
    min-width: 0 !important;
    width: auto !important;
    float: none !important;
    padding: 0 !important;
}
.single-product .product_title {
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin-bottom: 12px !important;
}
.single-product .cart {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
}
.single-product .cart .button,
.single-product .cart .magnet-upload-btn {
    display: inline-block !important;
    width: auto !important;
    min-width: 200px;
    text-align: center;
    box-sizing: border-box;
}

/* Qty stepper */
.single-product .quantity {
    display: flex !important;
    align-items: center;
    gap: 6px;
    margin-bottom: 16px;
}
.single-product .quantity .magnet-qty-minus,
.single-product .quantity .magnet-qty-plus {
    background: #f0f0f0 !important;
    color: #37424A !important;
    border: 1px solid #d0d0d0 !important;
    border-radius: 6px !important;
    padding: 0 !important;
    width: 30px !important;
    height: 30px !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 30px !important;
    text-align: center !important;
    cursor: pointer;
    box-shadow: none !important;
}
.single-product .quantity .magnet-qty-minus:hover,
.single-product .quantity .magnet-qty-plus:hover {
    background: #e0e0e0 !important;
    color: #37424A !important;
}
.single-product .quantity input.qty {
    width: 44px !important;
    height: 30px !important;
    text-align: center !important;
    border: 1px solid #d0d0d0 !important;
    border-radius: 6px !important;
    padding: 0 4px !important;
    font-size: 15px !important;
    -moz-appearance: textfield !important;
}
.single-product .quantity input.qty::-webkit-outer-spin-button,
.single-product .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}


/* ======================================================
ROUND PRODUCT — circle mask on slot thumbnails
====================================================== */
.magnet-slot-grid--round .magnet-slot--empty { border-radius: 50%; }
.magnet-slot-grid--round .magnet-slot-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}
.magnet-slot-grid--round .magnet-slot--filled {
    border-radius: 50%;
    overflow: visible;
    border-color: #4f4f4f;
}
.magnet-slot-grid--round .magnet-slot--filled .magnet-slot-img-wrap {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    overflow: hidden;
    position: absolute;
    inset: 0;
}
.magnet-slot-grid--round .magnet-slot--filled .magnet-slot-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
}
.magnet-cropper-round .cropper-view-box,
.magnet-cropper-round .cropper-face { border-radius: 50%; }
.magnet-cropper-round .cropper-face { background-color: inherit; }
.magnet-cropper-round .cropper-modal { background: rgba(0,0,0,0.55); }
.magnet-cropper-round .cropper-view-box {
    outline: 3px solid #4f4f4f;
    outline-color: rgba(79,79,79,0.9);
}
.magnet-cropper-round .cropper-dashed,
.magnet-cropper-round .cropper-center,
.magnet-cropper-round .cropper-line { display: none; }
.magnet-cropper-round .cropper-point {
    background: #4f4f4f;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    opacity: 0.9;
}
.cropper-view-box { outline: 2px solid #4f4f4f !important; outline-color: rgba(79,79,79,0.85) !important; }
.cropper-point { background: #4f4f4f !important; }
.cropper-line { background: rgba(79,79,79,0.5) !important; }
.magnet-circle-guide { display: none; }

/* ======================================================
UPLOAD PHOTOS PAGE
====================================================== */
.magnet-upload-page {
    max-width: 1100px;
    margin: 40px auto;
    text-align: center;
}
.magnet-intro {
    max-width: 900px;
    margin: 0 auto 50px;
}
.magnet-intro .intro-line-two {
    display: inline-block;
    margin-top: 6px;
    white-space: nowrap;
}
.magnet-columns { display: flex; gap: 40px; }
.magnet-col.soft-bg {
    flex: 1;
    background: #f5f5f5;
    padding: 35px;
    border-radius: 18px;
}
.center { text-align: center; }
.subtext { font-size: 15px; margin-bottom: 20px; }
.drop-zone {
    border: 2px dashed #ccc;
    padding: 50px;
    border-radius: 18px;
    cursor: pointer;
    margin-bottom: 20px;
    line-height: 1.4;
    background: #fafafa;
}
.drop-zone.tall { min-height: 180px; }
.drop-subtext { display: block; margin-top: 6px; }
.drop-zone.drag-over { border-color: #178E79; background: rgba(23,142,121,0.05); }
.drop-zone input { display: none; }
.crop-actions { display: flex; gap: 15px; justify-content: center; margin-bottom: 20px; }
button, .btn-upload {
    padding: 14px 30px;
    border-radius: 50px;
    border: 2px solid #45BCA6;
    background: #45BCA6;
    color: #fff;
    font-family: 'Karla', sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.3em;
    letter-spacing: -0.5px;
    cursor: pointer;
}
.crop-for-me-preview, .crop-your-own-preview {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 15px;
}
.preview-thumb { position: relative; width: 80px; height: 80px; }
.preview-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
    display: block;
    transition: opacity 0.2s;
}
.delete-thumb {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    background: #222;
    color: #fff;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 700;
    line-height: 20px;
    text-align: center;
    cursor: pointer;
    z-index: 10;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
@keyframes magnet-spin { to { transform: rotate(360deg); } }

/* ======================================================
SLOT GRID
====================================================== */
.magnet-slot-section { margin: 30px 0 20px; text-align: center; }
.slot-section-label { font-size: 16px; font-weight: 600; margin: 0 0 14px; color: #1a1a1a; }
.slot-section-sub { font-weight: normal; color: #666; font-size: 14px; }
.magnet-slot-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    padding: 16px;
    background: #f5f5f5;
    border-radius: 18px;
}
.magnet-slot {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    position: relative;
    flex-shrink: 0;
}
.magnet-slot--empty {
    border: 2px dashed #ccc;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}
.magnet-slot--empty:hover { border-color: #1B9C85; background: #f0faf8; }
.magnet-slot-num { font-size: 22px; font-weight: 700; color: #ccc; line-height: 1; pointer-events: none; }
.magnet-slot--filled {
    border: 2px solid #4f4f4f;
    overflow: visible;
    border-radius: 10px;
}
.magnet-slot--filled .magnet-slot-img-wrap {
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 10px;
    position: absolute;
    inset: 0;
}
.magnet-slot--filled .magnet-slot-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
    transition: opacity 0.2s;
}
.magnet-slot-delete {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 24px;
    height: 24px;
    background: #4f4f4f;
    color: #fff;
    border: 2px solid #fff;
    border-radius: 50%;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    z-index: 20;
    padding: 0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.35);
    display: flex;
    align-items: center;
    justify-content: center;
}
.magnet-slot-delete:hover { background: #3a3a3a; border-color: #fff; }
.magnet-zone--locked { opacity: 0.45; cursor: not-allowed !important; pointer-events: none; }
.magnet-slots-done { margin: 12px 0 0; color: #1B9C85; font-weight: 600; font-size: 15px; }
.magnet-qty-note {
    display: inline-block;
    margin: 0 0 14px;
    padding: 7px 16px;
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-radius: 10px;
    font-size: 14px;
    color: #5a4500;
}

/* ======================================================
SHARED COUNTER + FINISH BUTTON
====================================================== */
.shared-counter { margin: 40px 0 20px; font-size: 16px; font-weight: 600; }
.required-label { font-weight: normal; color: #666; }
.finish-wrapper { margin-top: 20px; margin-bottom: 60px; }
#cropper-image { max-width: 100%; display: block; }
.finish-cart-btn { opacity: 0.4; pointer-events: none; cursor: not-allowed; font-size: 16px; padding: 16px 40px; }
.finish-cart-btn:not([disabled]) { opacity: 1; pointer-events: auto; cursor: pointer; }

/* ======================================================
SOCIAL MEDIA CONSENT
====================================================== */
.magnet-social-consent {
    max-width: 700px;
    margin: 30px auto 10px;
    background: #f5f5f5;
    border-radius: 18px;
    padding: 30px 35px;
    text-align: center;
}
.social-consent-title { font-size: 18px; font-weight: 700; color: #1a1a1a; margin: 0 0 8px; }
.social-consent-desc { font-size: 14px; color: #555; margin: 0 0 22px; line-height: 1.5; }
.social-consent-options { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.social-option input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.social-option { cursor: pointer; flex: 1; min-width: 200px; max-width: 280px; }
.social-option-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 20px 16px;
    border-radius: 14px;
    border: 2px solid #ddd;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
    cursor: pointer;
}
.social-option-box:hover { border-color: #1B9C85; }
.social-option-box.selected {
    border-color: #1B9C85;
    box-shadow: 0 0 0 3px rgba(27,156,133,0.15);
    background: #f0faf8;
}
.social-option-icon { line-height: 1; display: block; color: #1a1a1a; }
.social-option-icon svg { display: block; fill: #1a1a1a; width: 30px; height: 30px; }
.social-option-box strong { font-size: 14px; color: #1a1a1a; display: block; }
.social-option-sub { font-size: 12px; color: #777; line-height: 1.4; display: block; }
.social-consent-required { color: #c0392b; font-size: 13px; margin: 12px 0 0; font-weight: 600; }

/* ======================================================
UPLOAD OVERLAY
====================================================== */
.magnet-uploading-box {
    background: #fff;
    border-radius: 24px;
    padding: 50px 60px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.14);
    text-align: center;
    max-width: 440px;
    width: 90%;
}

/* ======================================================
MOBILE RESPONSIVE — 768px and below
====================================================== */
@media (max-width: 768px) {
    body { -webkit-text-size-adjust: 100%; }
    .shop-intro-text { font-size: 20px; margin: 24px auto 30px; padding: 0 16px; }
    .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 16px !important; row-gap: 20px !important; }
    .post-type-archive-product li.product { padding: 20px !important; margin: 0 !important; }
    .magnet-upload-btn { display: block !important; width: 100% !important; text-align: center !important; box-sizing: border-box !important; margin-top: 12px !important; }
    .magnet-upload-page { margin: 20px auto; padding: 0 16px; }
    .magnet-upload-page h2 { font-size: 20px; }
    .magnet-intro { font-size: 14px; margin-bottom: 28px; }
    .magnet-intro .intro-line-two { white-space: normal; }
    .magnet-columns { flex-direction: column; gap: 20px; }
    .magnet-col.soft-bg { padding: 20px; }
    .drop-zone { padding: 30px 16px; font-size: 14px; }
    .drop-zone.tall { min-height: 120px; }
    .crop-actions { flex-wrap: wrap; }
    button, .btn-upload { padding: 12px 20px; font-size: 15px; }
    .magnet-slot-section { margin: 20px 0 16px; }
    .magnet-slot { width: 60px; height: 60px; border-radius: 10px; }
    .magnet-slot-num { font-size: 18px; }
    .magnet-slot-grid { gap: 8px; padding: 12px; }
    .magnet-slot-delete { width: 20px; height: 20px; font-size: 12px; line-height: 20px; top: -6px; right: -6px; }
    .magnet-qty-note { font-size: 13px; padding: 6px 12px; }
    .magnet-social-consent { padding: 20px 16px; margin: 20px auto 10px; }
    .social-consent-options { flex-direction: column; align-items: stretch; }
    .social-option { max-width: 100%; }
    .finish-wrapper { margin-bottom: 40px; }
    .finish-cart-btn { width: 100%; font-size: 15px; padding: 16px 20px; box-sizing: border-box; }
}
@media (max-width: 480px) {
    .shop-intro-text { font-size: 17px; }
    .custom-main-img-wrap img, #custom-main-img { height: 220px; }
    .magnet-slot { width: 52px; height: 52px; }
    .magnet-slot-num { font-size: 15px; }
    .magnet-slot-grid { gap: 6px; padding: 10px; }
    .magnet-upload-page h2 { font-size: 18px; }
    .social-option-box { padding: 14px 12px; }
}

/* ======================================================
WPFORMS — field borders, button
====================================================== */
.wpforms-field input[type="text"],
.wpforms-field input[type="email"],
.wpforms-field input[type="tel"],
.wpforms-field textarea,
.wpforms-field select {
    background: #fff !important;
    background-color: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
}
.wpforms-field input:focus,
.wpforms-field textarea:focus,
.wpforms-field select:focus {
    border-color: #4f4f4f !important;
    outline: none !important;
    box-shadow: none !important;
}
.wpforms-field-name .wpforms-field-label { padding-left: 0 !important; margin-left: 0 !important; display: block; margin-top: 0; margin-bottom: 8px; line-height: 1.2; }
.wpforms-field-name .wpforms-field-row { margin-left: 0 !important; }
.wpforms-submit,
.wpforms-form button[type=submit],
button.wpforms-submit {
    background: #1B9C85 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 18px !important;
    font-weight: 600 !important;
}
.wpforms-submit:hover,
.wpforms-form button[type=submit]:hover,
button.wpforms-submit:hover { background: #178E79 !important; color: #fff !important; }
/* ======================================================
TEXT MAGNET BUILDER
====================================================== */
.magnet-upload-page--text {
    max-width: 1100px;
    margin: 70px auto 40px;
    padding: 0 24px;
}
.magnet-text-page-h2 {
    display: block !important;
    text-align: center !important;
    font-family: 'Playfair Display', serif !important;
    font-size: 42px !important;
    font-weight: 600 !important;
    color: rgb(79,79,79) !important;
    margin: 0 0 12px !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
.magnet-text-page-sub {
    text-align: center !important;
    font-family: 'Open Sans', sans-serif !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    color: rgb(79,79,79) !important;
    margin: 0 auto 60px !important;
    line-height: 1.65 !important;
    max-width: 700px !important;
}
.magnet-text-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 36px;
    align-items: start;
    margin-top: 48px;
}
.magnet-text-layout__left {
    position: sticky;
    top: 80px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.magnet-text-upload-box { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.magnet-text-upload-trigger {
    display: inline-block !important;
    width: auto !important;
    max-width: 180px !important;
    padding-left: 28px !important;
    padding-right: 28px !important;
    margin-top: 4px;
}
.magnet-text-preview { display: flex; flex-direction: column; gap: 6px; width: 100%; }
.magnet-text-preview__frame {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    border: 1.5px dashed #d0d0d0;
    background: #f7f7f7;
    cursor: pointer;
    transition: border-color 0.2s;
    line-height: 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    aspect-ratio: 1;
    width: 100%;
}
.magnet-text-preview__frame:hover { border-color: #4f4f4f; }
.magnet-text-preview__frame.has-photo { border-style: solid; border-color: #d0d0d0; }
.magnet-preview-placeholder {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    pointer-events: none;
    text-align: center;
}
.magnet-preview-placeholder__icon { width: 36px; height: 36px; opacity: 0.3; }
.magnet-preview-placeholder__text { font-size: 13px; color: #999; line-height: 1.5; padding: 0 20px; }
#magnet-preview-canvas { width: 100% !important; height: auto !important; display: block; border-radius: 12px; }
.magnet-text-preview__note { font-size: 14px; color: rgb(79,79,79); text-align: center; margin: 0; line-height: 1.5; opacity: 0.85; }

.magnet-text-layout__right { display: flex; flex-direction: column; gap: 20px; }
.magnet-right-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    border: 1.5px dashed #ebebeb;
    border-radius: 14px;
    background: #fafafa;
    min-height: 60px;
}
.magnet-text-fields {
    display: flex;
    flex-direction: column;
    gap: 22px;
    background: #edf6ee;
    border-radius: 16px;
    padding: 26px 22px;
}
.magnet-text-field-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    text-align: left;
    width: 100%;
    min-width: 0;
}
.magnet-field-label { font-size: 13px; font-weight: 600; color: #37424A; margin: 0; text-align: left; display: block; width: 100%; }
.magnet-field-input,
.magnet-field-select {
    width: 100%;
    padding: 11px 36px 11px 14px;
    border: 1px solid #e0e0e0;
    border-radius: 9px;
    font-size: 14px;
    line-height: 1.4;
    color: #37424A;
    background: #fff;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    font-family: inherit;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2337424A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    overflow: visible;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.magnet-field-input:focus,
.magnet-field-select:focus { border-color: #45BCA6; box-shadow: 0 0 0 3px rgba(69,188,166,0.12); }
.magnet-field-input.magnet-field-error { border-color: #e53e3e; }

.magnet-text-color-toggle { display: flex; gap: 16px; align-items: center; justify-content: flex-start; }
.magnet-color-toggle-opt { display: flex; align-items: center; gap: 7px; cursor: pointer; font-size: 14px; color: #37424A; }
.magnet-toggle-swatch { display: inline-block; width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0; }
.magnet-swatch-picker { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-start; }
.magnet-swatch-opt { cursor: pointer; }
.magnet-swatch-opt input[type=radio] { display: none; }
.magnet-swatch {
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2.5px solid transparent;
    transition: border-color 0.15s, transform 0.15s;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.10);
}
.magnet-swatch-opt input[type=radio]:checked + .magnet-swatch { border-color: #45BCA6; transform: scale(1.18); }
.magnet-swatch-opt:hover .magnet-swatch { transform: scale(1.08); }
.magnet-text-required-msg { color: #e53e3e; font-size: 13px; margin: 0; }

/* Template grid */
.magnet-template-section { display: flex; flex-direction: column; gap: 8px; }
.magnet-template-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; align-items: stretch; }
.magnet-template-row > * { min-height: 0; }
.magnet-tmpl-col__header {
    background: linear-gradient(160deg, #fff 0%, #f4f4f4 100%);
    border: 1.5px solid #d0d0d0;
    border-radius: 10px;
    padding: 5px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    gap: 3px;
    overflow: hidden;
}
.magnet-tmpl-col__icon-wrap { background: #fff; border-radius: 6px; padding: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); display: flex; align-items: center; justify-content: center; }
.magnet-tmpl-col__title { font-size: 11px !important; font-weight: 400 !important; color: rgb(79,79,79) !important; margin: 0 !important; line-height: 1.3 !important; font-family: inherit !important; }
.magnet-tmpl-col__sub { font-size: 10px !important; font-weight: 400 !important; color: rgb(79,79,79) !important; margin: 0 !important; line-height: 1.4 !important; opacity: 0.75; font-family: inherit !important; }
.magnet-template-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    border: 2px solid #d0d0d0;
    border-radius: 10px;
    padding: 5px;
    background: #fff;
    transition: border-color 0.15s, opacity 0.2s;
    text-align: center;
    z-index: 1;
}
.magnet-template-card__img-wrap { width: 100%; aspect-ratio: 1; overflow: visible; border-radius: 6px; position: relative; z-index: 1; }
.magnet-template-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 6px; transition: transform 0.25s ease, box-shadow 0.25s ease; transform-origin: center center; }
.magnet-template-card:hover { border-color: #45BCA6; z-index: 10; }
.magnet-template-card:hover .magnet-template-card__img-wrap img { transform: scale(1.6); box-shadow: 0 8px 28px rgba(0,0,0,0.22); border-radius: 8px; position: relative; z-index: 10; }
.magnet-template-card.selected { border-color: #45BCA6; background: #edf6ee; }
.magnet-template-card.dimmed { opacity: 0.28; pointer-events: none; }
.magnet-template-label { font-size: 10px !important; font-weight: 400 !important; color: rgb(79,79,79) !important; line-height: 1.3 !important; padding: 0 2px 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; font-family: inherit !important; }
.magnet-change-template-btn { display: inline-block !important; width: auto !important; }
.magnet-change-template-wrap { text-align: center; margin-top: 4px; }

/* Radio buttons in text fields */
.magnet-text-fields input[type="radio"],
.magnet-color-toggle-opt input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid #d0d0d0;
    border-radius: 50%;
    cursor: pointer;
    flex-shrink: 0;
    position: relative;
    transition: border-color 0.15s, background 0.15s;
    background: #fff;
}
.magnet-text-fields input[type="radio"]:checked,
.magnet-color-toggle-opt input[type="radio"]:checked { border-color: #45BCA6; background: #45BCA6; box-shadow: inset 0 0 0 3px #fff; }
.magnet-text-fields input[type="radio"]:hover,
.magnet-color-toggle-opt input[type="radio"]:hover { border-color: #45BCA6; }

.magnet-bw-note { display: flex; align-items: flex-start; gap: 6px; font-size: 12px; color: #666; background: rgba(255,255,255,0.7); border-radius: 8px; padding: 8px 12px; margin: 0; line-height: 1.4; }
.magnet-bw-note span { flex: 1; }

/* Select field */
select.magnet-field-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2337424A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-color: #fff;
    padding-right: 36px;
    cursor: pointer;
}
.magnet-text-color-toggle,
.magnet-swatch-picker { margin-top: 2px; }
.magnet-placeholder-icon-wrap,
.magnet-tmpl-col__icon-wrap { background: #fff; border-radius: 8px; padding: 6px; box-shadow: 0 1px 4px rgba(0,0,0,0.10); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 4px; }
.magnet-upload-page--text { margin-top: 70px !important; }
.magnet-text-layout { margin-top: 56px !important; }
.magnet-text-fields .magnet-text-field-row + .magnet-text-field-row { margin-top: 2px; }
.magnet-text-fields .magnet-field-input,
.magnet-text-fields .magnet-field-select { margin-top: 4px; }
#row-text-color { gap: 8px !important; }
#row-strip-color { gap: 8px !important; }
#row-name-color { gap: 8px !important; }

@media (max-width: 900px) {
    .magnet-text-layout { grid-template-columns: 1fr; gap: 24px; }
    .magnet-text-layout__left { position: static; }
    .magnet-template-row { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 580px) {
    .magnet-template-row { grid-template-columns: repeat(2, 1fr); }
    .magnet-tmpl-col__header { grid-column: span 2; min-height: auto; padding: 14px; }
    .magnet-tmpl-col__sub { display: none; }
}

/* Proof acknowledge */
.magnet-proof-product-note {
    margin-top: 12px !important;
    font-size: 14px !important;
    color: #4f4f4f !important;
    line-height: 1.5 !important;
    background: #edf6ee;
    border-left: 3px solid #45BCA6;
    padding: 10px 14px;
    border-radius: 0 8px 8px 0;
    max-width: 420px;
}
.magnet-proof-acknowledge {
    background: #f7f7f7;
    border: 1.5px solid #d0d0d0;
    border-radius: 18px;
    padding: 20px 22px;
    margin-top: 28px;
}
.magnet-proof-ack-title { font-size: 15px; font-weight: 700; color: #37424A; margin: 0 0 12px; text-align: center; }
.magnet-proof-ack-label { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.magnet-proof-ack-label input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    min-width: 22px;
    border: 2px solid #d0d0d0;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    margin-top: 1px;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
    flex-shrink: 0;
}
.magnet-proof-ack-label input[type="checkbox"]:checked { background: #45BCA6; border-color: #45BCA6; }
.magnet-proof-ack-label input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 2px;
    width: 6px;
    height: 11px;
    border: 2.5px solid #fff;
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
}
.magnet-proof-ack-label input[type="checkbox"]:hover { border-color: #45BCA6; }
.magnet-proof-ack-text { font-size: 14px; color: #4f4f4f; line-height: 1.6; }
.magnet-proof-ack-required { color: #e53e3e; font-size: 13px; margin: 10px 0 0 34px; }

/* Select override */
.magnet-text-fields select.magnet-field-select,
.magnet-text-layout__right select.magnet-field-select,
.magnet-text-field-row select {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    height: 46px !important;
    padding: 0 36px 0 14px !important;
    line-height: 46px !important;
    font-size: 14px !important;
    vertical-align: middle !important;
    overflow: visible !important;
}

/* ======================================================
QTY MODE CHOICE — duplicate vs unique photos
====================================================== */
.magnet-qty-choice {
    background: #edf6ee;
    border: 1.5px solid #45BCA6;
    border-radius: 14px;
    padding: 16px 20px;
    margin-bottom: 16px;
}
.magnet-qty-choice-label { font-size: 14px; color: #37424A; margin: 0 0 12px; }
.magnet-qty-options { display: flex; gap: 12px; flex-wrap: wrap; }
.magnet-qty-option { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; flex: 1; min-width: 200px; }
.magnet-qty-option input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 2px solid #d0d0d0;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    margin-top: 2px;
    flex-shrink: 0;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
}
.magnet-qty-option input[type="radio"]:checked { border-color: #45BCA6; background: #45BCA6; }
.magnet-qty-option input[type="radio"]:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
}
.magnet-qty-option input[type="radio"]:hover { border-color: #45BCA6; }
.magnet-qty-option-box { display: flex; flex-direction: column; gap: 3px; }
.magnet-qty-option-box strong { font-size: 14px; color: #37424A; }
.magnet-qty-option-box span { font-size: 12px; color: #888; line-height: 1.4; }


/* ======================================================
CART — NAV ICON
====================================================== */
.sw-cart-nav-item { display: flex !important; align-items: center !important; }
.sw-cart-nav-item a,
.sw-cart-nav-link {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    color: #ffffff !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    text-decoration: none !important;
}
.sw-cart-nav-link:hover { color: #ffffff !important; background: none !important; opacity: 0.85; }
.sw-cart-nav-link svg { stroke: #ffffff !important; }
.sw-cart-icon { width: 22px; height: 22px; }
.sw-cart-badge,
.sw-cart-count {
    background: #45BCA6;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    line-height: 1;
}
.sw-cart-empty { display: none; }


/* ======================================================
CART — COUPON FORM
====================================================== */
.magnet-coupon-wrap {
    width: 70%;
    margin: 0 auto 20px;
    text-align: center;
}
.magnet-coupon-label {
    font-size: 14px;
    font-weight: 600;
    color: #37424A;
    margin-bottom: 8px;
    font-family: 'Open Sans', sans-serif;
}
.magnet-coupon-form {
    display: flex;
    gap: 8px;
    justify-content: center;
}
.magnet-coupon-form input {
    flex: 1;
    max-width: 280px;
    padding: 10px 14px;
    border: 1.5px solid #d0d0d0;
    border-radius: 50px;
    font-size: 14px;
    font-family: 'Open Sans', sans-serif;
    outline: none;
}
.magnet-coupon-form input:focus { border-color: #45BCA6; }
.magnet-coupon-form .button {
    padding: 10px 24px !important;
    font-size: 14px !important;
}

/* ======================================================
CART — ACTIONS ROW (Keep Shopping + Update Cart)
====================================================== */
/* Hide WooCommerce default coupon field — using custom one above */
.woocommerce-cart .coupon { display: none !important; }
/* Keep Shopping button */
.magnet-keep-shopping-btn {
    float: left;
    padding: 12px 28px;
    background: transparent;
    border: 2px solid #45BCA6;
    border-radius: 50px;
    color: #45BCA6;
    font: 700 16px/1 'Karla', sans-serif;
    text-decoration: none;
    transition: all 0.2s;
    margin-right: 10px;
}
.magnet-keep-shopping-btn:hover {
    background: #45BCA6;
    color: #fff;
}

/* ======================================================
CART — MOBILE FIXES
====================================================== */
@media (max-width: 768px) {
    /* Update cart + Keep Shopping — auto width to match Proceed to Checkout */
    .woocommerce-cart-form .actions .button[name="update_cart"],
    button[name="update_cart"] {
        border-radius: 50px !important;
        width: auto !important;
        display: inline-block !important;
        box-sizing: border-box !important;
        margin-bottom: 10px !important;
        float: none !important;
    }
    /* Keep Shopping — auto width on mobile */
    .magnet-keep-shopping-btn {
        float: none !important;
        display: inline-block !important;
        width: auto !important;
        text-align: center !important;
        margin-right: 0 !important;
        margin-bottom: 10px !important;
    }
    /* Actions row — center both buttons */
    .woocommerce-cart-form .actions {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 10px !important;
    }
    /* Coupon field — full width */
    .magnet-coupon-wrap {
        width: 100% !important;
        padding: 0 !important;
    }
    .magnet-coupon-form {
        flex-direction: row !important;
        width: 100% !important;
    }
    .magnet-coupon-form input {
        flex: 1 !important;
        min-width: 0 !important;
        max-width: none !important;
    }
    /* Mobile cart icon — show in hamburger menu */
    #ast-mobile-header .sw-cart-nav-item,
    .ast-mobile-popup-content .sw-cart-nav-item,
    .ast-mobile-popup-drawer .sw-cart-nav-item {
        display: flex !important;
        justify-content: flex-start !important;
        text-align: left !important;
    }
    #ast-mobile-header .sw-cart-nav-link,
    .ast-mobile-popup-content .sw-cart-nav-link,
    .ast-mobile-popup-drawer .sw-cart-nav-link {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 6px !important;
        color: #37424A !important;
        padding: 15px 20px !important;
        text-decoration: none !important;
        text-align: left !important;
        width: 100% !important;
    }
    #ast-mobile-header .sw-cart-nav-link svg,
    .ast-mobile-popup-content .sw-cart-nav-link svg,
    .ast-mobile-popup-drawer .sw-cart-nav-link svg { stroke: #37424A !important; }
    #ast-mobile-header .sw-cart-count,
    .ast-mobile-popup-content .sw-cart-count,
    .ast-mobile-popup-drawer .sw-cart-count {
        background: #45BCA6;
        color: #fff;
        font-size: 11px;
        font-weight: 700;
        min-width: 18px;
        height: 18px;
        border-radius: 9px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 4px;
    }
}

/* Proceed to checkout */
.woocommerce-cart .wc-proceed-to-checkout { text-align: center !important; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    display: inline-block !important;
    width: auto !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    padding-left: 30px !important;
    padding-right: 30px !important;
    border-radius: 50px !important;
    line-height: 1.3em !important;
    min-height: unset !important;
    height: auto !important;
    box-sizing: border-box !important;
}
a.checkout-button.button.alt.wc-forward,
.wc-forward.button.alt {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    padding-left: 30px !important;
    padding-right: 30px !important;
    line-height: 1.3em !important;
    min-height: unset !important;
    height: auto !important;
    box-sizing: border-box !important;
}

/* Return to shop button — exact classes from inspector */
a.button.wc-backward,
.wc-backward.button {
    background: #45BCA6 !important;
    color: #fff !important;
    border: 2px solid #45BCA6 !important;
    padding: 14px 30px !important;
    border-radius: 50px !important;
    font-family: 'Karla', sans-serif !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    line-height: 1.3em !important;
    letter-spacing: -0.5px !important;
    min-height: unset !important;
    height: auto !important;
    display: inline-block !important;
    box-sizing: border-box !important;
}
a.button.wc-backward:hover,
.wc-backward.button:hover {
    background: #178E79 !important;
    border-color: #178E79 !important;
    color: #fff !important;
}

/* ======================================================
CART — SHIPPING ROW
====================================================== */
.cart_totals tr.woocommerce-shipping-totals th,
.cart_totals tr.woocommerce-shipping-totals td {
    font-size: inherit;
    font-weight: 400;
}
.cart_totals tr.woocommerce-shipping-totals td * { font-weight: 400 !important; }
.cart_totals .woocommerce-shipping-totals .shipping-calculator-button { display: none !important; }
.woocommerce-shipping-destination { display: none !important; }

/* ======================================================
CART — HIDE PAYPAL MESSAGES
====================================================== */
.ppcp-messages,
.ppcp-message,
.wc-ppcp-cart-bnpl-messages { display: none !important; }
/* PayPal button — prevent touching border */
.woocommerce-checkout div.ppc-button-wrapper { padding-bottom: 20px !important; }

/* ======================================================
CHECKOUT — COUPON (handled on cart)
====================================================== */
.woocommerce-checkout .woocommerce-form-coupon-toggle { display: none !important; }
.woocommerce-checkout .woocommerce-form-coupon { display: none !important; }

/* ======================================================
CHECKOUT — OR DIVIDER (Stripe injects dynamically — also removed via JS)
====================================================== */
.wc-stripe-express-checkout-or-separator,
.wc-stripe-or-separator,
#wc-stripe-express-checkout-element ~ p,
.wc-stripe-express-checkout-element-or-separator { display: none !important; }


/* Place Order button — teal pill */
#place_order {
    background: #45BCA6 !important;
    border-color: #45BCA6 !important;
    color: #fff !important;
    border-radius: 50px !important;
    font: 700 18px/1 'Karla', sans-serif !important;
    padding: 16px !important;
    width: 100% !important;
    margin-top: 16px !important;
}
#place_order:hover {
    background: #178E79 !important;
    border-color: #178E79 !important;
}



/* ======================================================
CHECKOUT — STRIPE LINK FLOATING BUTTON
====================================================== */
iframe[src*="js.stripe.com"][style*="position: fixed"],
iframe[src*="js.stripe.com"][style*="position:fixed"],
div[style*="position: fixed"][style*="z-index: 2147483647"],
div[style*="position:fixed"][style*="z-index:2147483647"] {
    display: none !important;
}

/* TEXT MAGNET — hide qty stepper on text magnet product pages */
.is-text-magnet-product .quantity,
.is-text-magnet-product .magnet-qty-minus,
.is-text-magnet-product .magnet-qty-plus,
.is-text-magnet-product input.qty { display: none !important; }

/* TEXT MAGNET — design complete message */
.magnet-design-complete {
    display: none;
    margin-top: 12px;
    padding: 10px 14px;
    background: #EDF6EE;
    border-left: 4px solid #1B9C85;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #1B9C85;
    font-family: 'Open Sans', sans-serif;
}

/* TEXT MAGNET — choose different design link */
.magnet-change-template-link {
    display: inline-block;
    font-size: 13px;
    color: #178E79;
    text-decoration: underline;
    cursor: pointer;
    margin-top: 8px;
    font-family: 'Open Sans', sans-serif;
}
.magnet-change-template-link:hover { color: #1B9C85; }

/* ======================================================
CHECKOUT — ORDER REVIEW SHIPPING ROW
====================================================== */
/* Hide rate label text (e.g. "via Flat Rate") — show price only */
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td { font-size: 0 !important; }
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td .amount {
    font-size: 14px !important;
    font-weight: 400 !important;
}
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td .shipping-calculator-button,
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td p,
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td br { display: none !important; }

/* ======================================================
WOOCOMMERCE NOTICES — override any theme neon green
====================================================== */
.woocommerce-info {
    border-top-color: #1B9C85 !important;
    background-color: #f7f7f7 !important;
    color: #37424A !important;
}
.woocommerce-info::before,
.woocommerce-message::before { color: #1B9C85 !important; }
/* Override Astra neon green on the icon specifically */
.woocommerce-info:before,
.woocommerce-message:before {
    color: #1B9C85 !important;
    border-color: #1B9C85 !important;
}
.woocommerce-message {
    border-top-color: #1B9C85 !important;
    background-color: #f7f7f7 !important;
    color: #37424A !important;
}
.woocommerce-error {
    border-top-color: #e2401c !important;
    background-color: #f7f7f7 !important;
    color: #37424A !important;
}

/* SLOT — uploading spinner while server processes */
.magnet-slot--uploading {
    position: relative;
}
.magnet-slot--uploading::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.7);
    border-radius: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
}
.magnet-slot--uploading::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    border: 3px solid #d0d0d0;
    border-top-color: #45BCA6;
    border-radius: 50%;
    animation: slot-spin 0.7s linear infinite;
    z-index: 2;
}
@keyframes slot-spin { to { transform: rotate(360deg); } }

/* TEXT MAGNET — order process note below upload button */
.magnet-order-process-note {
    margin-top: 16px;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    line-height: 1.6;
    color: #4f4f4f;
    text-align: center;
    opacity: 0.85;
}

/* ── Text magnet design complete callout — identical to .magnet-proof-product-note ── */
.magnet-design-cta {
    margin-top: 18px;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    color: #4f4f4f;
    line-height: 1.5;
    background: #edf6ee;
    border-left: 3px solid #45BCA6;
    padding: 10px 14px;
    border-radius: 0 8px 8px 0;
    max-width: 420px;
}
.magnet-design-cta strong {
    font-weight: 700;
    color: #1B9C85;
}

/* ======================================================
POPUP MAKER — MOBILE RESPONSIVE FIX
====================================================== */
@media (max-width: 480px) {
    .pum-container {
        width: 80% !important;
        max-width: 80% !important;
        left: 10% !important;
        right: 10% !important;
    }
}