/* Print Configurator — stili */

.pc-configurator {
    font-family: inherit;
    max-width: 780px;
    margin: 0 auto;
}

.pc-title {
    font-size: 1.25rem;
    margin-bottom: 20px;
    border-bottom: 2px solid #e0e0e0;
    padding-bottom: 10px;
}

.pc-fields {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.pc-field-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pc-field-group > label {
    font-weight: 600;
    font-size: .9rem;
    color: #444;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.pc-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Bottoni opzione */
.pc-opt {
    padding: 8px 14px;
    border: 1.5px solid #d0d0d0;
    background: #f2f2f2;
    border-radius: 6px;
    cursor: pointer;
    font-size: .9rem;
    color: #444;
    transition: border-color .2s, background .2s, color .2s, box-shadow .2s;
}

.pc-opt:hover:not(.pc-selected) {
    border-color: #aaa;
    background: #e8e8e8;
    color: #222;
}

.pc-opt.pc-selected {
    border-color: #4caf50;
    background: #e8f5e9;
    color: #2e7d32;
    box-shadow: 0 0 0 2px rgba(76,175,80,0.25);
}

/* Quantità: bottoni più larghi */
.pc-qty-group .pc-opt {
    min-width: 70px;
    text-align: center;
    font-weight: 600;
}

/* Pannello prezzo */
.pc-price-panel {
    margin-top: 24px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 18px 20px;
    background: #f9f9f9;
}

.pc-price-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 4px 0;
    font-size: 1.05rem;
}

.pc-price-row .pc-label {
    color: #555;
}

.pc-price-row.pc-secondary {
    font-size: .88rem;
    color: #777;
    border-top: 1px solid #eee;
    padding-top: 8px;
    margin-top: 6px;
}

.pc-price-ivato strong {
    font-size: 1.5rem;
    color: #0073aa;
}

/* Bottone carrello */
.pc-add-cart {
    display: block;
    width: 100%;
    margin-top: 16px;
    padding: 12px;
    background: #0073aa;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
}

.pc-add-cart:hover:not(:disabled) { background: #005f8d; }
.pc-add-cart:disabled { background: #aaa; cursor: not-allowed; }

/* ══════════════════════════════════
   Area upload file grafico
══════════════════════════════════ */
.pc-upload-area {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #e0e0e0;
}

.pc-upload-label {
    display: block;
    font-weight: 600;
    font-size: .9rem;
    color: #444;
    margin-bottom: 6px;
}

.pc-upload-hint {
    font-weight: 400;
    font-size: .8rem;
    color: #888;
    display: block;
    margin-top: 2px;
}

.pc-dropzone {
    border: 2px dashed #b0b0b0;
    border-radius: 6px;
    padding: 20px;
    text-align: center;
    transition: border-color .2s, background .2s;
    background: #fafafa;
    min-height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pc-dropzone.pc-drag-over {
    border-color: #0073aa;
    background: #f0f7fb;
}

.pc-drop-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.pc-drop-icon { font-size: 2rem; line-height: 1; }

.pc-drop-text { color: #666; font-size: .9rem; }

.pc-browse-btn {
    margin-top: 4px;
}

/* File preview dopo upload riuscito */
.pc-file-preview {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
}

.pc-file-icon { font-size: 1.5rem; }

.pc-file-name {
    font-weight: 600;
    font-size: .9rem;
    color: #2e7d32;
    word-break: break-all;
    max-width: 260px;
}

.pc-file-size {
    color: #888;
    font-size: .8rem;
}

.pc-file-remove {
    background: none;
    border: none;
    color: #c00;
    cursor: pointer;
    font-size: 1rem;
    padding: 0 4px;
    line-height: 1;
}

/* Barra di progresso upload */
.pc-upload-progress {
    width: 100%;
    text-align: center;
}

.pc-progress-bar {
    height: 6px;
    background: #e0e0e0;
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 6px;
}

.pc-progress-fill {
    height: 100%;
    background: #0073aa;
    border-radius: 3px;
    width: 0%;
    transition: width .2s;
}

.pc-upload-status {
    font-size: .85rem;
    color: #555;
}

.pc-upload-note {
    font-size: .8rem;
    color: #888;
    margin-top: 8px;
    margin-bottom: 0;
}

/* ══ Cascata: stati loading e disabilitato ══ */
.pc-loading-inline {
    font-size: .85rem;
    color: #888;
    padding: 6px 0;
    display: inline-block;
}

.pc-field-group {
    flex-direction: column;
    gap: 8px;
    animation: pc-fadein .2s ease;
}

@keyframes pc-fadein {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Evidenzia il gruppo attivo (l'ultimo mostrato) */
.pc-field-group:last-of-type .pc-options .pc-opt:not(.pc-selected) {
    border-color: #aaa;
    color: #444;
}

/* ══════════════════════════════════════
   Bottoni con icona
══════════════════════════════════════ */
.pc-opt.pc-opt-has-icon {
    display:        inline-flex;
    flex-direction: column;
    align-items:    center;
    justify-content: center;
    padding:        10px 12px 8px;
    min-width:      80px;
    min-height:     90px;
    gap:            6px;
    text-align:     center;
}

.pc-btn-icon-svg,
.pc-btn-icon-img {
    display:    block;
    width:      52px;
    height:     52px;
    flex-shrink: 0;
}

.pc-btn-icon-svg svg {
    width:  100%;
    height: 100%;
}

.pc-btn-icon-img {
    object-fit: contain;
    border-radius: 4px;
}

.pc-btn-label {
    font-size:   11px;
    font-weight: 600;
    line-height: 1.2;
    color:       #444;
}

/* Stato selezionato con icona */
.pc-opt.pc-opt-has-icon.pc-selected .pc-btn-label {
    color: #2e7d32;
}
.pc-opt.pc-opt-has-icon.pc-selected .pc-btn-icon-svg svg rect,
.pc-opt.pc-opt-has-icon.pc-selected .pc-btn-icon-svg svg polygon {
    fill:   #c8e6c9;
    stroke: #4caf50;
}
.pc-opt.pc-opt-has-icon.pc-selected .pc-btn-icon-svg svg text {
    fill: #2e7d32;
}

/* Hover con icona */
.pc-opt.pc-opt-has-icon:hover:not(.pc-selected) {
    background:   #e8e8e8;
    border-color: #aaa;
}

/* Modulo preventivi personalizzati */
.pc-quote-request{border:1px solid #e2e2e2;border-radius:12px;padding:22px;background:#fff;margin:20px 0;max-width:900px}
.pc-quote-intro{color:#666;margin-top:-6px}.pc-quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.pc-quote-grid label,.pc-quote-notes,.pc-quote-file{display:block;font-weight:600;color:#222}.pc-quote-grid input,.pc-quote-grid select,.pc-quote-notes textarea{display:block;width:100%;margin-top:6px;border:1px solid #ccc;border-radius:8px;padding:10px;box-sizing:border-box}.pc-quote-file input{display:block;margin-top:8px}.pc-quote-submit{margin-top:14px}.pc-quote-message{margin-top:14px;padding:12px;border-radius:8px}.pc-quote-message.pc-ok{background:#e8f7ec;color:#176b2c}.pc-quote-message.pc-ko{background:#fdecec;color:#a32020}@media(max-width:700px){.pc-quote-grid{grid-template-columns:1fr}}

/* Delivery date selector */
.pc-delivery-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
}
.pc-delivery-date {
    max-width: 220px;
    padding: 10px 12px;
    border: 1px solid #d7dce2;
    border-radius: 8px;
    font-size: 15px;
}
.pc-delivery-help {
    color: #666;
    font-size: 12px;
    line-height: 1.35;
}
.pc-delivery-surcharge-row {
    color: #9a5b00;
}
