/**
 * Sara Counseling - Easy Digital Downloads Custom Styles
 *
 * Override degli stili default di EDD per adattarli al design del tema.
 *
 * @package SaraCounseling
 * @version 1.0.0
 */

/* ==========================================================================
   Downloads Grid ([downloads] shortcode)
   ========================================================================== */

.edd_downloads_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-xl);
    list-style: none;
    padding: 0;
    margin: 0;
}

.edd_download {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.edd_download:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.edd_download_inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Download Image */
.edd_download_image {
    position: relative;
    aspect-ratio: 2/3;
    overflow: hidden;
    background-color: var(--color-secondary);
}

.edd_download_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.edd_download:hover .edd_download_image img {
    transform: scale(1.05);
}

.edd_download_placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--color-text-light);
}

/* Badge */
.edd_download_badge {
    position: absolute;
    top: var(--spacing-md);
    right: var(--spacing-md);
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--font-size-xs);
    font-weight: 600;
    text-transform: uppercase;
    border-radius: var(--radius-sm);
}

.edd_download_badge--free {
    background-color: var(--color-success);
    color: var(--color-white);
}

/* Download Content */
.edd_download_content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: var(--spacing-lg);
}

.edd_download_title {
    font-family: var(--font-heading);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-heading);
    margin: 0 0 var(--spacing-sm);
    line-height: 1.3;
}

.edd_download_title a {
    color: var(--color-text);
    text-decoration: none;
}

.edd_download_title a:hover {
    color: var(--color-primary);
}

.edd_download_excerpt {
    font-size: var(--font-size-sm);
    color: var(--color-text-light);
    margin: 0 0 var(--spacing-md);
    line-height: 1.5;
    flex: 1;
}

/* Footer */
.edd_download_footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    margin-top: auto;
}

.edd_price {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-primary);
}

/* ==========================================================================
   Purchase Button
   ========================================================================== */

.edd-add-to-cart,
.edd_download_buy_button .edd-add-to-cart,
.edd-submit,
input[type="submit"].edd-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-sm) var(--spacing-lg);
    font-family: var(--font-body);
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-white);
    background-color: var(--color-primary);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-base);
    text-decoration: none;
}

.edd-add-to-cart:hover,
.edd_download_buy_button .edd-add-to-cart:hover,
.edd-submit:hover,
input[type="submit"].edd-submit:hover {
    background-color: var(--color-primary-dark);
    color: var(--color-white);
}

.edd-add-to-cart:focus,
.edd-submit:focus,
input[type="submit"].edd-submit:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(205, 180, 219, 0.4);
}

.edd-add-to-cart.edd-has-js:disabled,
.edd-add-to-cart[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Loading state */
.edd-add-to-cart.edd-loading {
    position: relative;
    color: transparent;
}

.edd-add-to-cart.edd-loading::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    border: 2px solid var(--color-white);
    border-top-color: transparent;
    border-radius: 50%;
    animation: edd-spin 0.8s linear infinite;
}

@keyframes edd-spin {
    to { transform: rotate(360deg); }
}

/* ==========================================================================
   Single Download Page
   ========================================================================== */

.single-download .edd_download_purchase_form {
    background-color: var(--color-white);
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    margin-top: var(--spacing-xl);
}

.single-download .edd_download_purchase_form .edd_price_options {
    margin-bottom: var(--spacing-lg);
}

.single-download .edd_download_purchase_form .edd_price_options li {
    margin-bottom: var(--spacing-sm);
}

.single-download .edd_download_purchase_form .edd_price_options label {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    cursor: pointer;
}

/* ==========================================================================
   Cart
   ========================================================================== */

.edd-cart {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    overflow: hidden;
}

.edd-cart-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--color-border);
}

.edd-cart-item:last-child {
    border-bottom: none;
}

.edd-cart-item-title {
    font-weight: 500;
}

.edd-cart-item-price {
    font-weight: 600;
    color: var(--color-primary);
}

.edd-remove-from-cart {
    color: var(--color-error);
    font-size: var(--font-size-sm);
    text-decoration: none;
}

.edd-remove-from-cart:hover {
    text-decoration: underline;
}

.edd_cart_total {
    display: flex;
    justify-content: space-between;
    padding: var(--spacing-lg);
    background-color: var(--color-background);
    font-weight: 600;
}

.edd_cart_total .edd_cart_amount {
    color: var(--color-primary);
    font-size: var(--font-size-lg);
}

/* ==========================================================================
   Checkout
   ========================================================================== */

#edd_checkout_form_wrap {
    max-width: 800px;
    margin: 0 auto;
}

#edd_checkout_form_wrap fieldset {
    background-color: var(--color-white);
    border: none;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
}

#edd_checkout_form_wrap legend {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-text);
    padding: 0;
    margin-bottom: var(--spacing-lg);
}

#edd_checkout_form_wrap label {
    display: block;
    font-weight: 500;
    margin-bottom: var(--spacing-sm);
    color: var(--color-text);
}

#edd_checkout_form_wrap input[type="text"],
#edd_checkout_form_wrap input[type="email"],
#edd_checkout_form_wrap input[type="tel"],
#edd_checkout_form_wrap input[type="password"],
#edd_checkout_form_wrap select,
#edd_checkout_form_wrap textarea {
    width: 100%;
    padding: var(--spacing-md);
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background-color: var(--color-white);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

#edd_checkout_form_wrap input:focus,
#edd_checkout_form_wrap select:focus,
#edd_checkout_form_wrap textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(205, 180, 219, 0.25);
}

#edd_checkout_form_wrap .edd-input-row {
    margin-bottom: var(--spacing-lg);
}

/* Checkout cart summary */
#edd_checkout_cart {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--spacing-xl);
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
}

#edd_checkout_cart th {
    background-color: var(--color-background);
    padding: var(--spacing-md) var(--spacing-lg);
    text-align: left;
    font-weight: 600;
    font-size: var(--font-size-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-light);
}

#edd_checkout_cart td {
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--color-border);
}

#edd_checkout_cart tr:last-child td {
    border-bottom: none;
}

#edd_checkout_cart .edd_cart_total {
    background-color: var(--color-background);
    font-weight: 600;
}

#edd_checkout_cart .edd_cart_total .edd_cart_amount {
    color: var(--color-primary);
    font-size: var(--font-size-lg);
}

/* Payment icons */
#edd_payment_mode_select {
    margin-bottom: var(--spacing-xl);
}

#edd_payment_mode_select .edd-gateway-option {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-sm);
    cursor: pointer;
    transition: border-color var(--transition-fast);
}

#edd_payment_mode_select .edd-gateway-option:hover {
    border-color: var(--color-primary);
}

#edd_payment_mode_select .edd-gateway-option.selected {
    border-color: var(--color-primary);
    background-color: rgba(124, 152, 133, 0.05);
}

/* Purchase button */
#edd_purchase_submit {
    text-align: center;
    margin-top: var(--spacing-xl);
}

#edd-purchase-button {
    padding: var(--spacing-lg) var(--spacing-3xl);
    font-size: var(--font-size-lg);
}

/* ==========================================================================
   Purchase Confirmation
   ========================================================================== */

.edd-alert {
    padding: var(--spacing-lg);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-lg);
}

.edd-alert-success {
    background-color: rgba(92, 184, 92, 0.1);
    border: 1px solid var(--color-success);
    color: var(--color-success);
}

.edd-alert-error {
    background-color: rgba(214, 69, 69, 0.1);
    border: 1px solid var(--color-error);
    color: var(--color-error);
}

/* Download links */
.edd_download_file {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md) var(--spacing-lg);
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-sm);
    transition: border-color var(--transition-fast);
}

.edd_download_file:hover {
    border-color: var(--color-primary);
}

.edd_download_file a {
    font-weight: 600;
    color: var(--color-primary);
}

/* ==========================================================================
   Purchase History
   ========================================================================== */

#edd_user_history {
    width: 100%;
    border-collapse: collapse;
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
}

#edd_user_history th {
    background-color: var(--color-background);
    padding: var(--spacing-md) var(--spacing-lg);
    text-align: left;
    font-weight: 600;
    font-size: var(--font-size-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-light);
}

#edd_user_history td {
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--color-border);
}

#edd_user_history tr:last-child td {
    border-bottom: none;
}

#edd_user_history .edd_purchase_status {
    display: inline-block;
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--font-size-xs);
    font-weight: 600;
    border-radius: var(--radius-sm);
}

#edd_user_history .edd_purchase_status.complete {
    background-color: rgba(92, 184, 92, 0.1);
    color: var(--color-success);
}

/* ==========================================================================
   Profile Editor
   ========================================================================== */

#edd_profile_editor_form {
    background-color: var(--color-white);
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

#edd_profile_editor_form fieldset {
    border: none;
    padding: 0;
    margin-bottom: var(--spacing-xl);
}

#edd_profile_editor_form legend {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    font-weight: 600;
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-sm);
    border-bottom: 2px solid var(--color-secondary);
    width: 100%;
}

#edd_profile_editor_form p {
    margin-bottom: var(--spacing-lg);
}

#edd_profile_editor_form label {
    display: block;
    font-weight: 500;
    margin-bottom: var(--spacing-sm);
}

#edd_profile_editor_form input[type="text"],
#edd_profile_editor_form input[type="email"],
#edd_profile_editor_form input[type="password"] {
    width: 100%;
    padding: var(--spacing-md);
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

#edd_profile_editor_form input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(205, 180, 219, 0.25);
}

/* ==========================================================================
   Login/Register Forms
   ========================================================================== */

.edd_form {
    background-color: var(--color-white);
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    max-width: 450px;
    margin: 0 auto;
}

.edd_form p {
    margin-bottom: var(--spacing-lg);
}

.edd_form label {
    display: block;
    font-weight: 500;
    margin-bottom: var(--spacing-sm);
}

.edd_form input[type="text"],
.edd_form input[type="email"],
.edd_form input[type="password"] {
    width: 100%;
    padding: var(--spacing-md);
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.edd_form input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(205, 180, 219, 0.25);
}

.edd_form .edd-submit {
    width: 100%;
}

/* Lost password link */
.edd_lost_password a {
    font-size: var(--font-size-sm);
    color: var(--color-text-light);
}

.edd_lost_password a:hover {
    color: var(--color-primary);
}