.ps-product-page { width: 100%; }
.ps-product-top { width: 100%; margin-bottom: 30px; padding: 25px; box-sizing: border-box; background: #ffffff; border-radius: 0px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25); border: 1px solid rgba(0, 0, 0, 0.1); }
.ps-product-middle { display: flex; gap: 1%; width: 100%; margin-bottom: 30px; }
.ps-product-form { width: 60%; box-sizing: border-box; padding: 25px; background: #ffffff; border-radius: 0px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25); border: 1px solid rgba(0, 0, 0, 0.1); min-height: 150px; color: #333333; }
.ps-product-calculator { width: 39%; box-sizing: border-box; padding: 25px; background: #006AD0; border-radius: 0px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25); border: 1px solid rgba(0, 0, 0, 0.1); min-height: 150px; color: #333333; }
.ps-product-bottom { width: 100%; padding: 25px; box-sizing: border-box; background: #ffffff; border-radius: 0px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25); border: 1px solid rgba(0, 0, 0, 0.1); min-height: 100px; color: #333333; }
.ps-product-top p, .ps-product-form p, .ps-product-bottom p { color: #333333; }
.ps-product-calculator p { color: #ffffff; }
.ps-form-content h3 { margin: 0 0 20px 0; font-size: 26px; font-weight: 600; color: #222222; }
.ps-form-section { padding: 20px; background: #f7f7f7; border-radius: 4px; }
.ps-form-section h4 { margin: 0 0 10px 0; font-size: 19px; font-weight: 600; color: #222222; }
.ps-form-section p { margin: 0; color: #555555; font-size: 15px; }
.ps-form-field { display: flex; align-items: center; margin-top: 10px; min-height: 38px; }
.ps-form-field > label:first-child { width: 150px; flex-shrink: 0; margin: 0 12px 0 0; font-size: 15px; font-weight: 600; color: #333333; }
.ps-form-field select, .ps-form-field input[type="number"], .ps-form-field textarea { width: 400px; box-sizing: border-box; }
.ps-form-field select, .ps-form-field input[type="number"] { height: 38px; padding: 0 10px; border: 1px solid #cccccc; border-radius: 4px; background: #ffffff; color: #333333; font-size: 14px; }
.ps-form-field textarea { height: 75px; padding: 8px 10px; border: 1px solid #cccccc; border-radius: 4px; background: #ffffff; color: #333333; font-size: 14px; resize: vertical; }
.ps-form-static { width: 400px; box-sizing: border-box; color: #333333; font-size: 14px; }
/* Optional Finishing: Horizontal Checkboxes */
.ps-checkbox-options { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 20px; width: 400px; max-width: 100%; }
.ps-checkbox-label { width: auto !important; display: inline-flex !important; align-items: center; flex: 0 0 auto; margin: 0 !important; font-weight: 400 !important; white-space: nowrap; }
.ps-checkbox-label input[type="checkbox"] { width: auto; margin: 0 8px 0 0; flex-shrink: 0; }

.ps-turnaround-description { width: 400px; box-sizing: border-box; margin: 4px 0 0 0; font-size: 11px; line-height: 1.4; color: #666666; }
.ps-form-field:has(.ps-turnaround-description) { align-items: flex-start; }
.ps-form-field:has(.ps-turnaround-description) > label:first-child { padding-top: 10px; }
.ps-form-field:has(.ps-turnaround-description) select { display: block; }
.ps-form-field:has(.ps-turnaround-description) { flex-wrap: wrap; }
.ps-form-field:has(.ps-turnaround-description) .ps-turnaround-description { margin-left: 162px; }
.ps-file-design-row { display: flex; align-items: center; gap: 12px; margin-left: 162px; width: 400px; }
/* File upload area */
.ps-file-design-row { display: flex; align-items: flex-start; gap: 12px; margin-left: 0; width: 100%; }
.ps-file-upload-area { width: 400px; max-width: 100%; min-width: 0; }
.ps-file-buttons { display: flex; align-items: center; gap: 10px; width: 100%; flex-wrap: nowrap; }
/* Choose File */
.ps-file-input { display: block; width: 110px; min-width: 110px; height: 40px; box-sizing: border-box; font-size: 0; flex: 0 0 110px; }
.ps-file-input::file-selector-button { width: 110px; height: 40px; padding: 0 8px; margin: 0; border: 1px solid #006AD0; border-radius: 4px; background: #ffffff; color: #006AD0; font-size: 13px; font-weight: 600; cursor: pointer; }
/* OR */
.ps-file-or { flex: 0 0 auto; font-size: 14px; color: #555555; white-space: nowrap; }
/* Start Designing */
.ps-design-button { width: 240px; min-width: 240px; height: 40px; padding: 0 8px; border: 1px solid #006AD0; border-radius: 4px; background: #ffffff; color: #006AD0; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer; flex: 0 0 160px; }
/* Selected file name */
.ps-file-name { margin-top: 5px; font-size: 11px; line-height: 1.4; color: #666666; overflow-wrap: anywhere; }
/* Add to Cart row */
.ps-form-field.ps-form-submit { align-items: center; margin-top: 12px; }
.ps-form-submit .ps-add-to-cart-button { width: 400px; max-width: 100%; height: 42px; box-sizing: border-box; padding: 0 18px; border: none; border-radius: 4px; background: #006AD0; color: #ffffff; font-size: 15px; font-weight: 600; cursor: pointer; flex: 0 1 400px; }
@media (max-width: 768px) { .ps-product-middle { flex-direction: column; gap: 30px; } .ps-product-form, .ps-product-calculator { width: 100%; } }
/* Calculator Content */
.ps-calculator-content { width: 100%; color: #ffffff; box-sizing: border-box; }
/* Calculate Item Price Button */
.ps-calculate-price-button { display: block; width: 100%; min-height: 42px; box-sizing: border-box; margin: 0 0 22px 0; padding: 10px 12px; border: 1px solid #ffffff; border-radius: 4px; background: #ffffff; color: #006AD0; font-size: 15px; font-weight: 600; text-align: center; cursor: pointer; }
/* Calculator Details */
.ps-calculator-details { width: 100%; color: #ffffff; box-sizing: border-box; }
/* Each Calculator Row */
.ps-calc-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 10px; align-items: start; width: 100%; box-sizing: border-box; padding: 7px 0; color: #ffffff; font-size: 14px; line-height: 1.4; }
/* Labels */
.ps-calc-label { color: #ffffff; font-weight: 600; }
/* Values */
.ps-calc-value { color: #ffffff; text-align: right; overflow-wrap: anywhere; }
/* Per Unit Text */
.ps-calc-label small { color: #ffffff; font-size: 12px; font-weight: 400; }
/* Separator Between Discount and Net Price */
.ps-calc-discount { margin-bottom: 2px; padding-bottom: 10px; border-bottom: 1px solid rgba(255, 255, 255, 0.75); }
/* Unit Net Price */
.ps-calc-net-price { padding-top: 8px; }
/* Total Before Tax */
.ps-calc-total { margin-top: 5px; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, 0.35); }
/* Pickup / Dispatch Date */
.ps-calc-pickup { margin-top: 5px; }
/* Shared Raised Button Effect */
.ps-form-submit .ps-add-to-cart-button,
.ps-calculate-price-button,
.ps-design-button {
    box-shadow:
            0 3px 6px rgba(0, 0, 0, 0.18),
            inset 0 1px 0 rgba(255, 255, 255, 0.35);
    transition:
            box-shadow 0.2s ease,
            transform 0.2s ease,
            background 0.2s ease;
}

/* Blue Buttons: Add to Cart */
.ps-form-submit .ps-add-to-cart-button {
    background: linear-gradient(180deg, #1680E8 0%, #006AD0 100%);
}

/* White Buttons: Calculate and Design */
.ps-calculate-price-button,
.ps-design-button {
    background: linear-gradient(180deg, #FFFFFF 0%, #EAF4FF 100%);
}

/* Hover: Slight Lift and Brighter Shadow */
.ps-form-submit .ps-add-to-cart-button:hover,
.ps-calculate-price-button:hover,
.ps-design-button:hover {
    box-shadow:
            0 6px 12px rgba(0, 0, 0, 0.22),
            0 0 8px rgba(255, 255, 255, 0.18);
    transform: translateY(-1px);
}

/* Pressed Button */
.ps-form-submit .ps-add-to-cart-button:active,
.ps-calculate-price-button:active,
.ps-design-button:active {
    transform: translateY(1px);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

/* Keyboard Focus */
.ps-form-submit .ps-add-to-cart-button:focus-visible,
.ps-calculate-price-button:focus-visible,
.ps-design-button:focus-visible {
    outline: 2px solid #FFCC66;
    outline-offset: 3px;
}

/* Product Top: List Text Visibility */
.ps-product-top ul,
.ps-product-top ol {
    color: #333333;
}

.ps-product-top ul li,
.ps-product-top ol li {
    color: #333333 !important;
}