/**
 * PayPal Advanced Checkout - CSS Styles
 *
 * Styles for PayPal buttons, card fields, and Pay Later messaging
 */

/* ========================================
   PayPal Button Containers
   ======================================== */

#paypal-advanced-product-button,
#paypal-advanced-basket-button,
#paypal-advanced-button-container {
    margin: 15px 0;
    min-height: 45px;
    width: 100%;
}

/* Make PayPal Smart Buttons match the full container width so they line up
 * with the Apple Pay / Google Pay buttons stacked alongside them in the
 * checkout payment_box. The SDK iframe accepts the container width up to its
 * own max; setting max-width: none here removes that cap. */
#paypal-advanced-button-container .paypal-buttons,
#paypal-advanced-product-button .paypal-buttons,
#paypal-advanced-basket-button .paypal-buttons {
    width: 100% !important;
    max-width: none !important;
}

.paypal-loading {
    text-align: center;
    padding: 15px;
    color: #666;
    font-size: 14px;
}

.paypal-loading i {
    margin-right: 8px;
}

/* ========================================
   Card Fields Container
   ======================================== */

#paypal-advanced-card-container {
    margin-top: 20px;
}

.paypal-card-field {
    margin-bottom: 15px;
}

/* Individual card field styling (applied by PayPal SDK) */
#card-number-field,
#card-expiry-field,
#card-cvv-field {
    height: 45px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 10px;
    font-size: 16px;
    transition: border-color 0.2s ease;
}

#card-number-field:focus,
#card-expiry-field:focus,
#card-cvv-field:focus {
    border-color: #0070ba;
    outline: none;
    box-shadow: 0 0 0 2px rgba(0, 112, 186, 0.1);
}

/* Card field errors (applied by PayPal SDK) */
#card-number-field.invalid,
#card-expiry-field.invalid,
#card-cvv-field.invalid {
    border-color: #d32f2f;
}

/* Cardholder name field */
#card-name-field-group {
    margin-bottom: 15px;
}

#card-holder-name {
    width: 100%;
    height: 45px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 10px 12px;
    font-size: 16px;
    transition: border-color 0.2s ease;
}

#card-holder-name:focus {
    border-color: #0070ba;
    outline: none;
    box-shadow: 0 0 0 2px rgba(0, 112, 186, 0.1);
}

#card-holder-name::placeholder {
    color: #999;
}

/* Card submit button */
#paypal-card-submit-btn {
    width: 100%;
    height: 45px;
    background-color: #0070ba;
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease;
    margin-top: 10px;
}

#paypal-card-submit-btn:hover:not(:disabled) {
    background-color: #005a94;
}

#paypal-card-submit-btn:disabled {
    background-color: #ccc;
    cursor: not-allowed;
}

/* Card errors container */
#paypal-card-errors {
    display: none;
    margin-top: 15px;
    padding: 12px 15px;
    background-color: #ffebee;
    border: 1px solid #ef5350;
    border-radius: 4px;
    color: #c62828;
    font-size: 14px;
}

#paypal-card-errors.show {
    display: block;
    animation: slideDown 0.3s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ========================================
   Payment Separator (OR between PayPal and Card)
   ======================================== */

.payment-separator {
    position: relative;
    text-align: center;
    margin: 25px 0;
}

.payment-separator::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background-color: #e0e0e0;
    z-index: 1;
}

.payment-separator span {
    position: relative;
    z-index: 2;
    background-color: white;
    padding: 0 15px;
    color: #757575;
    font-size: 14px;
    font-weight: 500;
}

/* ========================================
   Pay Later Messaging
   ======================================== */

[data-paypal-message] {
    margin: 10px 0;
    min-height: 20px;
}

/* Product page messaging */
.product-paypal-message {
    margin-top: 15px;
    margin-bottom: 10px;
}

/* Cart page messaging */
.cart-paypal-message {
    margin: 15px 0;
    padding: 10px;
    background-color: #f5f5f5;
    border-radius: 4px;
}

/* Checkout page messaging */
.checkout-paypal-message {
    margin: 10px 0;
}

/* ========================================
   Payment Method Selection (in payment-methods.php)
   ======================================== */

.payment_method_paypal_advanced {
    position: relative;
}

.payment_method_paypal_advanced .payment_box {
    padding: 20px;
    background-color: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    margin-top: 15px;
}

/* Hide payment box by default, show when radio selected */
.payment_method_paypal_advanced .payment_box {
    display: none;
}

.payment_method_paypal_advanced.chosen .payment_box {
    display: block;
}

/* ========================================
   Responsive Styles
   ======================================== */

@media (max-width: 768px) {
    #paypal-advanced-product-button,
    #paypal-advanced-basket-button,
    #paypal-advanced-button-container {
        margin: 10px 0;
    }

    #card-holder-name,
    #paypal-card-submit-btn {
        font-size: 14px;
        height: 42px;
    }

    .payment-separator {
        margin: 20px 0;
    }
}

@media (max-width: 480px) {
    #paypal-advanced-card-container {
        margin-top: 15px;
    }

    .paypal-card-field {
        margin-bottom: 12px;
    }

    #card-holder-name,
    #paypal-card-submit-btn {
        height: 40px;
    }
}

/* ========================================
   Accessibility
   ======================================== */

#card-holder-name:focus-visible,
#paypal-card-submit-btn:focus-visible {
    outline: 2px solid #0070ba;
    outline-offset: 2px;
}

/* Screen reader only text */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* No prefers-color-scheme: dark block here. The OS-level dark-mode preference
 * was making the payment_box dark on light themes, leaving dark text unreadable
 * on a dark background. Theme dark-mode (when supported) is opted into via a
 * theme class — never via the OS preference directly. */

/* ========================================
   Loading States
   ======================================== */

.paypal-button-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.6;
}

.paypal-button-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 20px;
    border: 2px solid #fff;
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* ========================================
   Print Styles
   ======================================== */

@media print {
    #paypal-advanced-product-button,
    #paypal-advanced-basket-button,
    #paypal-advanced-button-container,
    #paypal-advanced-card-container,
    [data-paypal-message] {
        display: none !important;
    }
}
