/* vesta-rs-charte.css — charte graphique Vesta RS
   Couleur RS  : #1E3563
   Crème       : #FCF9EB
   Beige sable : #E8DCC0
   Anthracite  : #333333
   Polices     : Playfair Display / Aboreto / Inter
   Toutes les tailles en px dur + !important
*/

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;0,900;1,400&family=Aboreto&family=Inter:wght@400;500;600&display=swap');

/* ── Kicker Aboreto ── */
.vrslg-form-kicker {
    font-family: Aboreto, 'Cormorant Garamond', Georgia, serif !important;
    font-size: 11px !important;
    line-height: 16px !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    color: #1E3563 !important;
    margin: 0 0 14px 0 !important;
    padding: 0 0 14px 0 !important;
    font-weight: 400 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.vrslg-form-kicker::before,
.vrslg-form-kicker::after {
    content: '' !important;
    flex: 1 !important;
    height: 1px !important;
    background: #E8DCC0 !important;
}

.vrslg-form-kicker::before {
    max-width: 32px !important;
    flex: none !important;
}

/* ── Titre Playfair ── */
.vrslg-form-title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 36px !important;
    line-height: 44px !important;
    color: #1E3563 !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
}

/* ── Sous-titre ── */
.vrslg-form-subtitle {
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 15px !important;
    line-height: 24px !important;
    color: #888888 !important;
    margin: 0 0 28px 0 !important;
    padding: 0 !important;
    max-width: 560px !important;
}

/* ── Séparateur de section ── */
.vrslg-section-label {
    font-family: Aboreto, Georgia, serif !important;
    font-size: 10px !important;
    line-height: 14px !important;
    letter-spacing: 2.5px !important;
    text-transform: uppercase !important;
    color: #1E3563 !important;
    border: none !important;
    border-bottom: 1px solid #E8DCC0 !important;
    padding: 0 0 10px 18px !important;
    margin: 28px 0 18px 0 !important;
    display: block !important;
    font-weight: 400 !important;
    position: relative !important;
}

.vrslg-section-label::before {
    content: '✦' !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    font-size: 8px !important;
    color: #1E3563 !important;
    line-height: 14px !important;
}

/* ── Astérisque requis ── */
.vrslg-required {
    color: #1E3563 !important;
    font-size: 13px !important;
}

/* ── Hint de champ ── */
.vrslg-field-hint {
    font-weight: 400 !important;
    font-size: 12px !important;
    color: #888888 !important;
}

/* ── Override couleur focus (charte RS) ── */
.vrslg-field input:focus,
.vrslg-field textarea:focus,
.vrslg-field select:focus {
    border-color: #1E3563 !important;
    box-shadow: 0 0 0 3px rgba(30, 53, 99, 0.13) !important;
}

/* ── Placeholder ── */
.vrslg-field input::placeholder,
.vrslg-field textarea::placeholder {
    color: #aaaaaa !important;
    font-size: 14px !important;
}

/* ── Zone upload ── */
.vrslg-upload-zone {
    position: relative !important;
    border: 2px dashed #E8DCC0 !important;
    border-radius: 10px !important;
    background: #FCF9EB !important;
    transition: border-color 0.18s, background 0.18s, box-shadow 0.18s !important;
    overflow: hidden !important;
}

.vrslg-upload-zone:hover,
.vrslg-upload-zone.vrslg-drag-over {
    border-color: #1E3563 !important;
    background: #edf2f9 !important;
    box-shadow: 0 0 0 3px rgba(30, 53, 99, 0.10) !important;
}

.vrslg-file-input {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
}

.vrslg-upload-label {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding: 32px 16px !important;
    cursor: pointer !important;
    gap: 8px !important;
}

.vrslg-upload-icon {
    font-size: 32px !important;
    line-height: 38px !important;
    opacity: 0.8 !important;
}

.vrslg-upload-text {
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #1E3563 !important;
    line-height: 20px !important;
}

.vrslg-upload-text strong {
    text-decoration: underline !important;
    text-decoration-color: #E8DCC0 !important;
    text-underline-offset: 2px !important;
}

.vrslg-upload-hint {
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 12px !important;
    color: #888888 !important;
    line-height: 16px !important;
}

/* ── Prévisualisation photos ── */
.vrslg-photo-preview {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 12px !important;
}

.vrslg-photo-thumb {
    position: relative !important;
    width: 72px !important;
    height: 72px !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    border: 1px solid #E8DCC0 !important;
    flex-shrink: 0 !important;
}

.vrslg-photo-thumb img {
    width: 72px !important;
    height: 72px !important;
    object-fit: cover !important;
    display: block !important;
}

.vrslg-photo-thumb-remove {
    position: absolute !important;
    top: 3px !important;
    right: 3px !important;
    width: 20px !important;
    height: 20px !important;
    background: rgba(0, 0, 0, 0.55) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 50% !important;
    font-size: 12px !important;
    line-height: 20px !important;
    text-align: center !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ── Mention légale ── */
.vrslg-legal {
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 11px !important;
    line-height: 16px !important;
    color: #888888 !important;
    margin: 10px 0 0 0 !important;
    padding: 0 !important;
}

/* ── Animation chargement ── */
.vrslg-loading {
    padding: 56px 0 !important;
    text-align: center !important;
}

.vrslg-loading-inner {
    max-width: 480px !important;
    margin: 0 auto !important;
    padding: 0 24px !important;
}

.vrslg-progress-bar {
    height: 4px !important;
    width: 100% !important;
    background: #E8DCC0 !important;
    border-radius: 2px !important;
    overflow: hidden !important;
    margin-bottom: 28px !important;
}

.vrslg-progress-fill {
    height: 4px !important;
    width: 0% !important;
    background: #1E3563 !important;
    border-radius: 2px !important;
    animation: vrslg-progress 6s ease-out forwards !important;
}

@keyframes vrslg-progress {
    0%   { width: 0%; }
    20%  { width: 20%; }
    40%  { width: 42%; }
    60%  { width: 63%; }
    80%  { width: 80%; }
    100% { width: 95%; }
}

.vrslg-loading-step {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-style: italic !important;
    font-weight: 400 !important;
    font-size: 20px !important;
    line-height: 30px !important;
    color: #1E3563 !important;
    min-height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: opacity 0.3s ease !important;
}

.vrslg-loading-step.vrslg-step-fade {
    opacity: 0 !important;
}

/* ── Carte résultat estimation ── */
.vrslg-result-card {
    background: #FCF9EB !important;
    border: 1.5px solid #E8DCC0 !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    animation: vrslg-fadein 0.45s ease !important;
    box-sizing: border-box !important;
    box-shadow: 0 8px 40px rgba(30, 53, 99, 0.13) !important;
}

.vrslg-result-header {
    background: linear-gradient(135deg, #1E3563 0%, #2a4a80 100%) !important;
    padding: 32px 36px 28px 36px !important;
}

.vrslg-result-body {
    padding: 28px 36px 32px 36px !important;
}

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

.vrslg-result-kicker {
    font-family: Aboreto, Georgia, serif !important;
    font-size: 10px !important;
    line-height: 14px !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    color: rgba(232, 220, 192, 0.9) !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    font-weight: 400 !important;
    display: block !important;
}

.vrslg-result-amount {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-weight: 900 !important;
    font-size: 52px !important;
    line-height: 60px !important;
    color: #ffffff !important;
    margin: 0 0 4px 0 !important;
    padding: 0 !important;
    display: block !important;
}

.vrslg-result-unit {
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 28px !important;
    color: #E8DCC0 !important;
}

.vrslg-result-meta {
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 13px !important;
    line-height: 20px !important;
    color: rgba(255, 255, 255, 0.75) !important;
    margin: 8px 0 0 0 !important;
    padding: 0 !important;
}

.vrslg-result-zone {
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 13px !important;
    line-height: 20px !important;
    color: #888888 !important;
    font-style: italic !important;
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
}

.vrslg-result-positifs {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 0 0 !important;
}

.vrslg-result-positifs li {
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 13px !important;
    line-height: 22px !important;
    color: #333333 !important;
    margin-bottom: 5px !important;
    padding-left: 18px !important;
    position: relative !important;
}

.vrslg-result-positifs li::before {
    content: '✦' !important;
    position: absolute !important;
    left: 0 !important;
    color: #1E3563 !important;
    font-size: 9px !important;
    top: 6px !important;
}

.vrslg-result-divider {
    border: none !important;
    border-top: 1px solid #E8DCC0 !important;
    margin: 20px 0 16px 0 !important;
}

.vrslg-result-disclaimer {
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 12px !important;
    line-height: 20px !important;
    color: #888888 !important;
}

.vrslg-result-disclaimer strong {
    color: #333333 !important;
    font-weight: 600 !important;
}

.vrslg-result-cta {
    margin-top: 20px !important;
    padding: 16px 20px !important;
    background: #1E3563 !important;
    border-radius: 8px !important;
    text-align: center !important;
    color: #ffffff !important;
    font-family: Inter, Calibri, sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 22px !important;
    letter-spacing: 0.2px !important;
    box-shadow: 0 4px 14px rgba(30, 53, 99, 0.25) !important;
}

/* ── Responsive carte ── */
@media (max-width: 560px) {
    .vrslg-result-header {
        padding: 24px !important;
    }
    .vrslg-result-body {
        padding: 20px 24px 24px 24px !important;
    }
    .vrslg-result-amount {
        font-size: 38px !important;
        line-height: 46px !important;
    }
}
