/*
 * Arte Andino B2B Portal — Frontend Styles v1.1
 * Includes: Request Pricing button, Pricing modal, Quote form,
 *           Registration form, Quick Order table, Dashboard
 */

/* ================================================================
   PRICE-ON-REQUEST — Hide all WooCommerce prices
   ================================================================ */

.woocommerce .price,
.woocommerce-Price-amount,
span.amount,
.woocommerce-variation-price,
.summary > .price,
.woocommerce ul.products li.product .price {
    display: none !important;
}


/* ================================================================
   REQUEST PRICING BUTTON
   ================================================================ */

.aa-price-request-btn {
    display:        inline-flex;
    align-items:    center;
    gap:            7px;
    background:     transparent;
    border:         1px solid var(--aa-gold, #B8953A);
    color:          var(--aa-gold, #B8953A);
    padding:        8px 16px;
    font-size:      11px;
    font-family:    var(--aa-font-sans, 'Inter', sans-serif);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor:         pointer;
    border-radius:  2px;
    transition:     background 0.18s, color 0.18s;
    white-space:    nowrap;
    line-height:    1;
    margin-top:     6px;
}

.aa-price-request-btn:hover,
.aa-price-request-btn:focus {
    background: var(--aa-gold, #B8953A);
    color:      #fff;
    outline:    none;
}

.aa-price-request-gem {
    font-size:   13px;
    line-height: 1;
    opacity:     0.85;
}

/* Single product page — larger */
.aa-price-request-btn--single {
    padding:    12px 24px;
    font-size:  11px;
    margin-top: 12px;
}


/* ================================================================
   PRICING MODAL OVERLAY
   ================================================================ */

.aa-modal-overlay {
    position:        fixed;
    inset:           0;
    background:      rgba(26, 25, 22, 0.65);
    z-index:         99999;
    display:         flex;
    align-items:     center;
    justify-content: center;
    padding:         20px;
    backdrop-filter: blur(3px);
    animation:       aa-fade-in 0.18s ease;
}

@keyframes aa-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.aa-modal {
    background:    #fff;
    width:         100%;
    max-width:     520px;
    max-height:    90vh;
    overflow-y:    auto;
    border-radius: 2px;
    position:      relative;
    box-shadow:    0 20px 60px rgba(0,0,0,0.35);
    animation:     aa-slide-up 0.22s ease;
}

@keyframes aa-slide-up {
    from { transform: translateY(16px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}

.aa-modal-close {
    position:    absolute;
    top:         14px;
    right:       18px;
    background:  none;
    border:      none;
    font-size:   22px;
    color:       #9B9489;
    cursor:      pointer;
    line-height: 1;
    padding:     4px 6px;
    z-index:     1;
    transition:  color 0.15s;
}
.aa-modal-close:hover { color: var(--aa-charcoal, #2C2A27); }

.aa-modal-header {
    padding:       28px 32px 20px;
    border-bottom: 1px solid #F0EFec;
    text-align:    center;
}

.aa-modal-gem {
    display:       block;
    color:         var(--aa-gold, #B8953A);
    font-size:     22px;
    margin-bottom: 10px;
    line-height:   1;
}

.aa-modal-header h3 {
    font-family:    var(--aa-font-serif, 'Cormorant Garamond', Georgia, serif);
    font-weight:    400;
    font-size:      22px;
    color:          var(--aa-charcoal, #2C2A27);
    margin:         0 0 6px;
    letter-spacing: 0.02em;
}

.aa-modal-product-label {
    font-family:    var(--aa-font-sans, 'Inter', sans-serif);
    font-size:      11px;
    color:          var(--aa-gold, #B8953A);
    letter-spacing: 0.09em;
    text-transform: uppercase;
    margin:         0;
    min-height:     16px;
}

/* Info section */
.aa-modal-info {
    padding: 20px 32px;
}

.aa-modal-info > p {
    font-size:   13px;
    color:       #666;
    margin:      0 0 12px;
    line-height: 1.6;
}

.aa-modal-info ul {
    margin:     0;
    padding:    0;
    list-style: none;
}

.aa-modal-info ul li {
    font-size:     13px;
    color:         var(--aa-charcoal, #2C2A27);
    padding:       7px 0 7px 20px;
    position:      relative;
    line-height:   1.5;
    border-bottom: 1px solid #F5F4F1;
}
.aa-modal-info ul li:last-child { border-bottom: none; }

.aa-modal-info ul li::before {
    content:   '◈';
    position:  absolute;
    left:      0;
    top:       8px;
    color:     var(--aa-gold, #B8953A);
    font-size: 9px;
    line-height: 1;
}

.aa-modal-info ul li span {
    color:      #999;
    font-style: italic;
    font-size:  12px;
}

/* CTA button row */
#aa-modal-cta-wrap {
    padding:    0 32px 28px;
    text-align: center;
}

.aa-btn-gold {
    background:     var(--aa-gold, #B8953A) !important;
    color:          #fff !important;
    border:         none !important;
    border-radius:  2px !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size:      11px !important;
    padding:        12px 32px !important;
    cursor:         pointer;
    transition:     background 0.18s;
}
.aa-btn-gold:hover {
    background: var(--aa-gold-dark, #8A6E27) !important;
}

.aa-modal-divider {
    height:     1px;
    background: #F0EFec;
    margin:     0 0 20px;
}

/* ================================================================
   QUOTE FORM (inside modal)
   ================================================================ */

#aa-quote-form-wrap { padding: 0 32px 28px; }

#aa-quote-form .aa-form-row  { display: flex; gap: 16px; }
#aa-quote-form .aa-form-group { flex: 1; margin-bottom: 14px; }

#aa-quote-form label {
    display:        block;
    font-family:    var(--aa-font-sans, 'Inter', sans-serif);
    font-size:      10px;
    font-weight:    600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          #888;
    margin-bottom:  5px;
}

#aa-quote-form input,
#aa-quote-form textarea {
    width:         100%;
    box-sizing:    border-box;
    border:        1px solid #E0DED8;
    border-radius: 2px;
    padding:       9px 12px;
    font-size:     13px;
    font-family:   var(--aa-font-sans, 'Inter', sans-serif);
    color:         var(--aa-charcoal, #2C2A27);
    background:    #fff;
    transition:    border-color 0.15s;
}
#aa-quote-form input:focus,
#aa-quote-form textarea:focus {
    border-color: var(--aa-gold, #B8953A);
    outline:      none;
    box-shadow:   0 0 0 3px rgba(184,149,58,0.12);
}
#aa-quote-form textarea { resize: vertical; min-height: 68px; }

#aa-quote-notice {
    padding:       10px 14px;
    border-radius: 2px;
    font-size:     13px;
    margin-bottom: 14px;
    line-height:   1.5;
}
#aa-quote-notice.success { background:#E8F5EE; color:#1A6640; border:1px solid #1A664033; }
#aa-quote-notice.error   { background:#FBEAE8; color:#B82C1C; border:1px solid #B82C1C33; }

@media (max-width: 480px) {
    .aa-modal          { border-radius: 0; max-height: 100vh; }
    .aa-modal-overlay  { padding: 0; align-items: flex-end; }
    #aa-quote-form .aa-form-row { flex-direction: column; gap: 0; }
    .aa-modal-header, .aa-modal-info,
    #aa-modal-cta-wrap, #aa-quote-form-wrap { padding-left: 20px; padding-right: 20px; }
}


/* ================================================================
   REGISTRATION FORM
   ================================================================ */

.aa-register-form  { max-width: 680px; margin: 0 auto; }
.aa-form-wrap h2 {
    font-family:   var(--aa-font-serif, 'Cormorant Garamond', Georgia, serif);
    font-weight:   300;
    font-size:     32px;
    color:         var(--aa-charcoal, #2C2A27);
    margin-bottom: 8px;
}
.aa-form-subtitle { color: #888; font-size: 14px; margin-bottom: 28px; }

.aa-form-row { display: flex; gap: 20px; }
.aa-form-group { flex: 1; margin-bottom: 18px; }
.aa-form-group label {
    display:        block;
    font-size:      10px;
    font-weight:    600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          #888;
    margin-bottom:  6px;
}
.aa-form-group input,
.aa-form-group select,
.aa-form-group textarea {
    width:         100%;
    box-sizing:    border-box;
    border:        1px solid #E0DED8;
    border-radius: 2px;
    padding:       10px 13px;
    font-size:     13px;
    color:         var(--aa-charcoal, #2C2A27);
    font-family:   var(--aa-font-sans, 'Inter', sans-serif);
    transition:    border-color 0.15s;
}
.aa-form-group input:focus,
.aa-form-group select:focus {
    border-color: var(--aa-gold, #B8953A);
    outline:      none;
    box-shadow:   0 0 0 3px rgba(184,149,58,0.12);
}
.aa-form-group .required { color: var(--aa-gold, #B8953A); }

.aa-vat-row { display: flex; gap: 10px; align-items: flex-start; }
.aa-vat-row input { flex: 1; }
.aa-vat-status {
    font-size: 12px; margin-top: 5px; padding: 5px 10px; border-radius: 2px;
}
.aa-vat-status.valid    { background: #E8F5EE; color: #1A6640; }
.aa-vat-status.invalid  { background: #FBEAE8; color: #B82C1C; }
.aa-vat-status.checking { background: #FEF6E6; color: #7A4A10; }


/* ================================================================
   QUICK ORDER TABLE
   ================================================================ */

.aa-quick-order-wrap { overflow-x: auto; }

.aa-quick-order-table {
    width:           100%;
    border-collapse: collapse;
    font-size:       13px;
}
.aa-quick-order-table th {
    text-align:     left;
    padding:        10px 12px;
    font-size:      10px;
    font-weight:    600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          #888;
    border-bottom:  2px solid #E8E6E1;
}
.aa-quick-order-table td {
    padding:        10px 12px;
    border-bottom:  1px solid #F0EFec;
    vertical-align: middle;
}
.aa-quick-order-table tr:hover td { background: #F8F7F5; }

.aa-qty-input {
    width:      70px;
    text-align: center;
    border:     1px solid #ddd;
    padding:    6px 8px;
    font-size:  13px;
    border-radius: 2px;
}
.aa-qty-input:focus { border-color: var(--aa-gold, #B8953A); outline: none; }

.aa-category-heading td {
    background:     #F8F7F5;
    font-size:      10px;
    font-weight:    700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color:          #888;
    padding:        8px 12px;
}

/* Price-on-request label in quick-order */
.aa-por-label {
    font-size:      10px;
    color:          var(--aa-gold, #B8953A);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-style:     italic;
    white-space:    nowrap;
}

.aa-moq-badge {
    display:        inline-block;
    font-size:      9px;
    background:     #F0EFec;
    color:          #888;
    padding:        2px 6px;
    border-radius:  2px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-left:    4px;
}

.aa-moq-warn { font-size: 11px; color: #B82C1C; display: block; margin-top: 3px; }
.aa-out-of-stock td { color: #9B9489 !important; }


/* ================================================================
   DASHBOARD
   ================================================================ */

.aa-stat-cards { display: flex; gap: 16px; flex-wrap: wrap; margin: 0 0 28px; }
.aa-stat-card {
    flex:          1;
    min-width:     140px;
    background:    #F8F7F5;
    border:        1px solid #E8E6E1;
    border-radius: 2px;
    padding:       18px 20px;
}
.aa-stat-card .stat-label {
    font-size:      10px;
    font-weight:    600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          #888;
    margin-bottom:  6px;
}
.aa-stat-card .stat-value {
    font-family: var(--aa-font-serif, 'Cormorant Garamond', Georgia, serif);
    font-size:   28px;
    font-weight: 300;
    color:       var(--aa-charcoal, #2C2A27);
    line-height: 1;
}

.aa-orders-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.aa-orders-table th {
    text-align:    left;
    padding:       8px 12px;
    border-bottom: 2px solid #E8E6E1;
    font-size:     10px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color:         #888;
}
.aa-orders-table td { padding: 10px 12px; border-bottom: 1px solid #F0EFec; }

.aa-status-badge {
    font-size:      10px;
    padding:        3px 8px;
    border-radius:  2px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight:    600;
}
.aa-status-badge.completed  { background: #E8F5EE; color: #1A6640; }
.aa-status-badge.processing { background: #E3F0FC; color: #1A5A8A; }
.aa-status-badge.pending    { background: #FEF6E6; color: #7A4A10; }
