/**
 * Delta CHF Simulator - Design System CSS
 * Charte Graphique: Constantin-Vallet - Corporate Premium
 *
 * @package DeltaCHF
 * @version 1.6.0
 *
 * Architecture:
 * 1. Design Tokens (CSS Custom Properties)
 * 2. Typography (Google Fonts)
 * 3. Reset & Base Styles
 * 4. Layout Components
 * 5. Form Components
 * 6. UI Components
 * 7. Step Navigation
 * 8. Progress Bar
 * 9. Results Screen
 * 10. Animations
 * 11. Utilities
 * 12. Responsive
 * 13. Developer Panel
 */

/* ==========================================================================
   1. DESIGN TOKENS - CHARTE CONSTANTIN-VALLET
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap');

:root {
    /* === COULEURS PRINCIPALES CONSTANTIN-VALLET === */
    --dchf-color-bg-greige: #EBEBE6;
    --dchf-color-bg-greige-light: #F0F0EE;
    --dchf-color-bg-greige-dark: #E2E2DC;

    --dchf-color-petrol: #2A3B4C;
    --dchf-color-petrol-hover: #1E2D3C;
    --dchf-color-petrol-light: #3A4D5E;

    --dchf-color-charbon: #1A1A1A;
    --dchf-color-charbon-light: #333333;

    /* === COULEURS SEMANTIQUES === */
    --dchf-color-success: #2E7D5A;
    --dchf-color-success-light: #E8F5EE;
    --dchf-color-success-dark: #1B5E42;

    --dchf-color-warning: #B8860B;
    --dchf-color-warning-light: #FDF5E6;
    --dchf-color-warning-dark: #8B6508;

    --dchf-color-error: #A94442;
    --dchf-color-error-light: #F9ECEC;
    --dchf-color-error-dark: #843534;

    --dchf-color-info: #2A3B4C;
    --dchf-color-info-light: #E8EBED;

    /* Accent dore - pour mise en valeur sobre */
    --dchf-color-gold: #B8A068;
    --dchf-color-gold-light: #D4C89C;
    --dchf-color-gold-dark: #9A8652;

    /* === COULEURS NEUTRES === */
    --dchf-color-white: #FAFAF8;
    --dchf-color-black: #1A1A1A;
    --dchf-color-gray-100: #F5F5F3;
    --dchf-color-gray-200: #E8E8E4;
    --dchf-color-gray-300: #D4D4CF;
    --dchf-color-gray-400: #A8A8A2;
    --dchf-color-gray-500: #7A7A74;
    --dchf-color-gray-600: #5C5C57;
    --dchf-color-gray-700: #3D3D39;
    --dchf-color-gray-800: #2A2A27;

    /* === COULEURS TEXTE === */
    --dchf-color-text: #1A1A1A;
    --dchf-color-text-muted: #5C5C57;
    --dchf-color-text-light: #7A7A74;
    --dchf-color-text-inverse: #FAFAF8;

    /* === COULEURS BACKGROUND === */
    --dchf-color-bg: #EBEBE6;
    --dchf-color-bg-alt: #F0F0EE;
    --dchf-color-bg-muted: #E2E2DC;
    --dchf-color-bg-card: #F5F5F3;

    /* === COULEURS BORDURES === */
    --dchf-color-border: #D4D4CF;
    --dchf-color-border-light: #E8E8E4;
    --dchf-color-border-focus: #2A3B4C;
    --dchf-color-border-error: #A94442;

    /* === TYPOGRAPHIE === */
    --dchf-font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --dchf-font-sans: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --dchf-font-mono: 'SF Mono', Monaco, Consolas, monospace;

    --dchf-font-size-xs: 0.75rem;
    --dchf-font-size-sm: 0.875rem;
    --dchf-font-size-base: 1rem;
    --dchf-font-size-lg: 1.125rem;
    --dchf-font-size-xl: 1.25rem;
    --dchf-font-size-2xl: 1.5rem;
    --dchf-font-size-3xl: 2rem;
    --dchf-font-size-4xl: 2.5rem;
    --dchf-font-size-5xl: 3rem;

    --dchf-font-weight-normal: 400;
    --dchf-font-weight-medium: 500;
    --dchf-font-weight-semibold: 600;
    --dchf-font-weight-bold: 700;

    --dchf-line-height-tight: 1.2;
    --dchf-line-height-normal: 1.5;
    --dchf-line-height-relaxed: 1.75;

    --dchf-letter-spacing-tight: -0.02em;
    --dchf-letter-spacing-normal: 0;
    --dchf-letter-spacing-wide: 0.05em;
    --dchf-letter-spacing-wider: 0.1em;

    /* === ESPACEMENTS === */
    --dchf-space-1: 4px;
    --dchf-space-2: 8px;
    --dchf-space-3: 12px;
    --dchf-space-4: 16px;
    --dchf-space-5: 20px;
    --dchf-space-6: 24px;
    --dchf-space-8: 32px;
    --dchf-space-10: 40px;
    --dchf-space-12: 48px;
    --dchf-space-16: 64px;
    --dchf-space-20: 80px;

    /* === BORDURES === */
    --dchf-border-width: 1px;
    --dchf-border-width-2: 2px;

    --dchf-radius-none: 0;
    --dchf-radius-sm: 2px;
    --dchf-radius-md: 4px;
    --dchf-radius-lg: 8px;
    --dchf-radius-full: 9999px;

    /* === OMBRES SUBTILES === */
    --dchf-shadow-sm: 0 1px 2px rgba(26, 26, 26, 0.04);
    --dchf-shadow-md: 0 2px 8px rgba(26, 26, 26, 0.06);
    --dchf-shadow-lg: 0 4px 16px rgba(26, 26, 26, 0.08);

    /* === FOCUS === */
    --dchf-ring-width: 2px;
    --dchf-ring-color: rgba(42, 59, 76, 0.3);
    --dchf-ring-offset: 2px;

    /* === ANIMATIONS === */
    --dchf-duration-fast: 150ms;
    --dchf-duration-normal: 250ms;
    --dchf-duration-slow: 400ms;

    --dchf-easing-default: cubic-bezier(0.4, 0, 0.2, 1);
    --dchf-easing-in: cubic-bezier(0.4, 0, 1, 1);
    --dchf-easing-out: cubic-bezier(0, 0, 0.2, 1);

    /* === ANIMATIONS PREMIUM (Awwwards) === */
    --dchf-stagger-delay: 60ms;
    --dchf-transition-duration: 450ms;
    --dchf-easing-smooth: cubic-bezier(0.22, 1, 0.36, 1);
    --dchf-easing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);

    /* === DIMENSIONS === */
    --dchf-input-height: 52px;
    --dchf-input-height-sm: 44px;
    --dchf-button-height: 52px;
    --dchf-button-height-sm: 44px;
    --dchf-touch-target: 44px;

    /* === Z-INDEX === */
    --dchf-z-base: 0;
    --dchf-z-dropdown: 100;
    --dchf-z-modal: 300;
    --dchf-z-dev-panel: 9999;

    /* === TYPEFORM TOKENS === */
    --dchf-typeform-min-height: 520px;
    --dchf-typeform-max-width: 640px;
    --dchf-typeform-question-size: clamp(1.75rem, 4vw, 2.25rem);
}

/* ==========================================================================
   2. RESET & BASE STYLES
   ========================================================================== */

body .elementor-widget-container .dchf-simulator,
body .elementor .dchf-simulator,
body .dchf-simulator {
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    line-height: var(--dchf-line-height-normal);
    color: var(--dchf-color-text);
    background-color: var(--dchf-color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body .elementor-widget-container .dchf-simulator *,
body .elementor .dchf-simulator *,
body .dchf-simulator *,
body .elementor-widget-container .dchf-simulator *::before,
body .elementor .dchf-simulator *::before,
body .dchf-simulator *::before,
body .elementor-widget-container .dchf-simulator *::after,
body .elementor .dchf-simulator *::after,
body .dchf-simulator *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* ==========================================================================
   3. LAYOUT - CONTENEUR PRINCIPAL
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-container,
body .elementor .dchf-simulator .dchf-container,
body .dchf-simulator .dchf-container {
    max-width: var(--dchf-typeform-max-width);
    min-height: var(--dchf-typeform-min-height);
    margin: 0 auto;
    padding: var(--dchf-space-12) var(--dchf-space-8);
    display: flex;
    flex-direction: column;
}

/* === HEADER === */
body .elementor-widget-container .dchf-simulator .dchf-header,
body .elementor .dchf-simulator .dchf-header,
body .dchf-simulator .dchf-header {
    text-align: center;
    margin-bottom: var(--dchf-space-10);
    padding-bottom: var(--dchf-space-8);
    border-bottom: 1px solid var(--dchf-color-border);
}

body .elementor-widget-container .dchf-simulator .dchf-header__title,
body .elementor .dchf-simulator .dchf-header__title,
body .dchf-simulator .dchf-header__title {
    margin: 0 0 var(--dchf-space-3);
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-3xl);
    font-weight: var(--dchf-font-weight-normal);
    color: var(--dchf-color-petrol);
    letter-spacing: var(--dchf-letter-spacing-tight);
    line-height: var(--dchf-line-height-tight);
}

body .elementor-widget-container .dchf-simulator .dchf-header__subtitle,
body .elementor .dchf-simulator .dchf-header__subtitle,
body .dchf-simulator .dchf-header__subtitle {
    margin: 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    font-weight: var(--dchf-font-weight-normal);
    color: var(--dchf-color-text-muted);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
}

/* Header hidden state (from step 1 onwards) */
body .elementor-widget-container .dchf-simulator .dchf-header.dchf-header--hidden,
body .elementor .dchf-simulator .dchf-header.dchf-header--hidden,
body .dchf-simulator .dchf-header.dchf-header--hidden {
    display: none;
}

/* === CONTENT === */
body .elementor-widget-container .dchf-simulator .dchf-content,
body .elementor .dchf-simulator .dchf-content,
body .dchf-simulator .dchf-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative;
}

/* === FOOTER === */
body .elementor-widget-container .dchf-simulator .dchf-footer,
body .elementor .dchf-simulator .dchf-footer,
body .dchf-simulator .dchf-footer {
    margin-top: var(--dchf-space-10);
    padding-top: var(--dchf-space-6);
    border-top: 1px solid var(--dchf-color-border);
}

/* ==========================================================================
   4. TYPOGRAPHY - TITRES SERIF, CORPS SANS-SERIF
   ========================================================================== */

/* Titres Serif - Style Editorial */
body .elementor-widget-container .dchf-simulator .dchf-heading-1,
body .elementor .dchf-simulator .dchf-heading-1,
body .dchf-simulator .dchf-heading-1,
body .elementor-widget-container .dchf-simulator h1,
body .elementor .dchf-simulator h1,
body .dchf-simulator h1 {
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-4xl);
    font-weight: var(--dchf-font-weight-normal);
    line-height: var(--dchf-line-height-tight);
    letter-spacing: var(--dchf-letter-spacing-tight);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-heading-2,
body .elementor .dchf-simulator .dchf-heading-2,
body .dchf-simulator .dchf-heading-2,
body .elementor-widget-container .dchf-simulator h2,
body .elementor .dchf-simulator h2,
body .dchf-simulator h2 {
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-3xl);
    font-weight: var(--dchf-font-weight-normal);
    line-height: var(--dchf-line-height-tight);
    letter-spacing: var(--dchf-letter-spacing-tight);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-heading-3,
body .elementor .dchf-simulator .dchf-heading-3,
body .dchf-simulator .dchf-heading-3,
body .elementor-widget-container .dchf-simulator h3,
body .elementor .dchf-simulator h3,
body .dchf-simulator h3 {
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-xl);
    font-weight: var(--dchf-font-weight-medium);
    line-height: var(--dchf-line-height-tight);
    color: var(--dchf-color-petrol);
}

/* Corps Sans-Serif */
body .elementor-widget-container .dchf-simulator .dchf-text,
body .elementor .dchf-simulator .dchf-text,
body .dchf-simulator .dchf-text,
body .elementor-widget-container .dchf-simulator p,
body .elementor .dchf-simulator p,
body .dchf-simulator p {
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    line-height: var(--dchf-line-height-relaxed);
    color: var(--dchf-color-text);
}

body .elementor-widget-container .dchf-simulator .dchf-text--muted,
body .elementor .dchf-simulator .dchf-text--muted,
body .dchf-simulator .dchf-text--muted {
    color: var(--dchf-color-text-muted);
}

body .elementor-widget-container .dchf-simulator .dchf-text--sm,
body .elementor .dchf-simulator .dchf-text--sm,
body .dchf-simulator .dchf-text--sm {
    font-size: var(--dchf-font-size-sm);
}

/* Labels - Modern minimal style */
body .elementor-widget-container .dchf-simulator .dchf-label,
body .elementor .dchf-simulator .dchf-label,
body .dchf-simulator .dchf-label,
body .elementor-widget-container .dchf-simulator .dchf-field__label,
body .elementor .dchf-simulator .dchf-field__label,
body .dchf-simulator .dchf-field__label {
    display: block;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-normal);
    color: var(--dchf-color-text-muted);
    letter-spacing: var(--dchf-letter-spacing-normal);
    text-transform: none;
    margin-bottom: var(--dchf-space-2);
    line-height: var(--dchf-line-height-normal);
}

/* ==========================================================================
   5. FORM COMPONENTS - INPUTS (Underline style)
   ========================================================================== */

/* Honeypot anti-spam - champ invisible pour les humains */
body .elementor-widget-container .dchf-simulator .dchf-hp-field,
body .elementor .dchf-simulator .dchf-hp-field,
body .dchf-simulator .dchf-hp-field {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body .elementor-widget-container .dchf-simulator .dchf-input,
body .elementor .dchf-simulator .dchf-input,
body .dchf-simulator .dchf-input,
body .elementor-widget-container .dchf-simulator .dchf-field__input,
body .elementor .dchf-simulator .dchf-field__input,
body .dchf-simulator .dchf-field__input {
    display: block;
    width: 100%;
    min-height: var(--dchf-input-height);
    padding: var(--dchf-space-3) var(--dchf-space-4);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    line-height: var(--dchf-line-height-normal);
    color: var(--dchf-color-text);
    background-color: #FFFFFF;
    border: none;
    border-bottom: 2px solid var(--dchf-color-border);
    border-radius: 0;
    transition: border-color var(--dchf-duration-fast) var(--dchf-easing-default),
                background-color var(--dchf-duration-fast) var(--dchf-easing-default);
    appearance: none;
    -webkit-appearance: none;
}

body .elementor-widget-container .dchf-simulator .dchf-input::placeholder,
body .elementor .dchf-simulator .dchf-input::placeholder,
body .dchf-simulator .dchf-input::placeholder,
body .elementor-widget-container .dchf-simulator .dchf-field__input::placeholder,
body .elementor .dchf-simulator .dchf-field__input::placeholder,
body .dchf-simulator .dchf-field__input::placeholder {
    color: var(--dchf-color-gray-400);
    opacity: 1;
    font-weight: var(--dchf-font-weight-normal);
}

body .elementor-widget-container .dchf-simulator .dchf-input:hover:not(:focus):not(:disabled),
body .elementor .dchf-simulator .dchf-input:hover:not(:focus):not(:disabled),
body .dchf-simulator .dchf-input:hover:not(:focus):not(:disabled),
body .elementor-widget-container .dchf-simulator .dchf-field__input:hover:not(:focus):not(:disabled),
body .elementor .dchf-simulator .dchf-field__input:hover:not(:focus):not(:disabled),
body .dchf-simulator .dchf-field__input:hover:not(:focus):not(:disabled) {
    border-bottom-color: var(--dchf-color-gray-500);
}

body .elementor-widget-container .dchf-simulator .dchf-input:focus,
body .elementor .dchf-simulator .dchf-input:focus,
body .dchf-simulator .dchf-input:focus,
body .elementor-widget-container .dchf-simulator .dchf-field__input:focus,
body .elementor .dchf-simulator .dchf-field__input:focus,
body .dchf-simulator .dchf-field__input:focus {
    outline: none;
    border-bottom-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-input:disabled,
body .elementor .dchf-simulator .dchf-input:disabled,
body .dchf-simulator .dchf-input:disabled,
body .elementor-widget-container .dchf-simulator .dchf-field__input:disabled,
body .elementor .dchf-simulator .dchf-field__input:disabled,
body .dchf-simulator .dchf-field__input:disabled {
    background-color: var(--dchf-color-greige);
    color: var(--dchf-color-text-light);
    border-bottom-style: dashed;
    cursor: not-allowed;
    opacity: 0.6;
}

body .elementor-widget-container .dchf-simulator .dchf-input--error,
body .elementor .dchf-simulator .dchf-input--error,
body .dchf-simulator .dchf-input--error,
body .elementor-widget-container .dchf-simulator .dchf-field__input--error,
body .elementor .dchf-simulator .dchf-field__input--error,
body .dchf-simulator .dchf-field__input--error {
    border-bottom-color: var(--dchf-color-error);
    background-color: #FFFFFF;
    animation: dchf-shake 400ms var(--dchf-easing-default);
}

/* ==========================================================================
   MICRO-INTERACTIONS CHAMPS - PREMIUM (Awwwards)
   ========================================================================== */

/* Ligne de focus animee sous l'input */
body .dchf-simulator .dchf-field {
    position: relative;
}

body .dchf-simulator .dchf-field::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background-color: var(--dchf-color-petrol);
    transition: width 300ms var(--dchf-easing-smooth),
                left 300ms var(--dchf-easing-smooth);
}

body .dchf-simulator .dchf-field:focus-within::after {
    width: 100%;
    left: 0;
}

/* Etat de succes avec animation */
body .dchf-simulator .dchf-input--success,
body .dchf-simulator .dchf-field__input--success {
    border-bottom-color: var(--dchf-color-success);
    animation: dchf-field-success 400ms var(--dchf-easing-bounce);
}

/* Ripple effect au clic */
body .dchf-simulator .dchf-field__input:active,
body .dchf-simulator .dchf-input:active {
    transform: scale(0.995);
}

@keyframes dchf-field-success {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.01); }
}

/* Shake subtil - adapte au ton institutionnel DA */
@keyframes dchf-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-3px); }
    50% { transform: translateX(3px); }
    75% { transform: translateX(-2px); }
}

/* Select - Underline style */
body .elementor-widget-container .dchf-simulator .dchf-select,
body .elementor .dchf-simulator .dchf-select,
body .dchf-simulator .dchf-select,
body .elementor-widget-container .dchf-simulator .dchf-field__select,
body .elementor .dchf-simulator .dchf-field__select,
body .dchf-simulator .dchf-field__select {
    display: block;
    width: 100%;
    min-height: var(--dchf-input-height);
    padding: var(--dchf-space-3) var(--dchf-space-8) var(--dchf-space-3) var(--dchf-space-4);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    color: var(--dchf-color-text);
    background-color: #FFFFFF;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237A7A74' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--dchf-space-3) center;
    background-size: 16px;
    border: none;
    border-bottom: 2px solid var(--dchf-color-border);
    border-radius: 0;
    cursor: pointer;
    transition: border-color var(--dchf-duration-fast) var(--dchf-easing-default),
                background-color var(--dchf-duration-fast) var(--dchf-easing-default);
    appearance: none;
    -webkit-appearance: none;
}

body .elementor-widget-container .dchf-simulator .dchf-select:focus,
body .elementor .dchf-simulator .dchf-select:focus,
body .dchf-simulator .dchf-select:focus {
    outline: none;
    border-bottom-color: var(--dchf-color-petrol);
}

/* Textarea - Underline style with subtle border */
body .elementor-widget-container .dchf-simulator .dchf-textarea,
body .elementor .dchf-simulator .dchf-textarea,
body .dchf-simulator .dchf-textarea {
    min-height: 100px;
    padding: var(--dchf-space-3) var(--dchf-space-4);
    background-color: #FFFFFF;
    border: none;
    border-bottom: 2px solid var(--dchf-color-border);
    border-radius: 0;
    resize: vertical;
    transition: border-color var(--dchf-duration-fast) var(--dchf-easing-default),
                background-color var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-textarea:focus,
body .elementor .dchf-simulator .dchf-textarea:focus,
body .dchf-simulator .dchf-textarea:focus {
    outline: none;
    border-bottom-color: var(--dchf-color-petrol);
}

/* Checkbox & Radio */
body .elementor-widget-container .dchf-simulator .dchf-checkbox,
body .elementor .dchf-simulator .dchf-checkbox,
body .dchf-simulator .dchf-checkbox,
body .elementor-widget-container .dchf-simulator .dchf-radio,
body .elementor .dchf-simulator .dchf-radio,
body .dchf-simulator .dchf-radio {
    display: flex;
    align-items: flex-start;
    gap: var(--dchf-space-3);
    cursor: pointer;
    min-height: var(--dchf-touch-target);
    padding: var(--dchf-space-2) 0;
}

body .elementor-widget-container .dchf-simulator .dchf-checkbox__input,
body .elementor .dchf-simulator .dchf-checkbox__input,
body .dchf-simulator .dchf-checkbox__input,
body .elementor-widget-container .dchf-simulator .dchf-radio__input,
body .elementor .dchf-simulator .dchf-radio__input,
body .dchf-simulator .dchf-radio__input {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 2px;
    appearance: none;
    -webkit-appearance: none;
    background-color: var(--dchf-color-white);
    border: 1px solid var(--dchf-color-border);
    cursor: pointer;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-checkbox__input,
body .elementor .dchf-simulator .dchf-checkbox__input,
body .dchf-simulator .dchf-checkbox__input {
    border-radius: var(--dchf-radius-sm);
}

body .elementor-widget-container .dchf-simulator .dchf-radio__input,
body .elementor .dchf-simulator .dchf-radio__input,
body .dchf-simulator .dchf-radio__input {
    border-radius: var(--dchf-radius-full);
}

body .elementor-widget-container .dchf-simulator .dchf-checkbox__input:checked,
body .elementor .dchf-simulator .dchf-checkbox__input:checked,
body .dchf-simulator .dchf-checkbox__input:checked,
body .elementor-widget-container .dchf-simulator .dchf-radio__input:checked,
body .elementor .dchf-simulator .dchf-radio__input:checked,
body .dchf-simulator .dchf-radio__input:checked {
    background-color: var(--dchf-color-petrol);
    border-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-checkbox__input:checked,
body .elementor .dchf-simulator .dchf-checkbox__input:checked,
body .dchf-simulator .dchf-checkbox__input:checked {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FAFAF8' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
    background-size: 14px;
    background-position: center;
    background-repeat: no-repeat;
}

body .elementor-widget-container .dchf-simulator .dchf-checkbox__label,
body .elementor .dchf-simulator .dchf-checkbox__label,
body .dchf-simulator .dchf-checkbox__label,
body .elementor-widget-container .dchf-simulator .dchf-radio__label,
body .elementor .dchf-simulator .dchf-radio__label,
body .dchf-simulator .dchf-radio__label {
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    color: var(--dchf-color-text);
    user-select: none;
}

/* Error Message */
body .elementor-widget-container .dchf-simulator .dchf-error-message,
body .elementor .dchf-simulator .dchf-error-message,
body .dchf-simulator .dchf-error-message {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-2);
    margin-top: var(--dchf-space-2);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-error);
}

/* ==========================================================================
   6. BUTTONS - STYLE PILLULE OUTLINE
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-btn,
body .elementor .dchf-simulator .dchf-btn,
body .dchf-simulator .dchf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-3);
    min-height: var(--dchf-button-height);
    padding: var(--dchf-space-4) var(--dchf-space-8);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    border: 1px solid transparent;
    border-radius: var(--dchf-radius-full);
    cursor: pointer;
    user-select: none;
    transition: all var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-btn:focus,
body .elementor .dchf-simulator .dchf-btn:focus,
body .dchf-simulator .dchf-btn:focus {
    outline: none;
}

body .elementor-widget-container .dchf-simulator .dchf-btn:focus-visible,
body .elementor .dchf-simulator .dchf-btn:focus-visible,
body .dchf-simulator .dchf-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

body .elementor-widget-container .dchf-simulator .dchf-btn:disabled,
body .elementor .dchf-simulator .dchf-btn:disabled,
body .dchf-simulator .dchf-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* Primary Button - Plein */
body .elementor-widget-container .dchf-simulator .dchf-btn--primary,
body .elementor .dchf-simulator .dchf-btn--primary,
body .dchf-simulator .dchf-btn--primary {
    background-color: var(--dchf-color-petrol);
    border-color: var(--dchf-color-petrol);
    color: var(--dchf-color-text-inverse);
}

body .elementor-widget-container .dchf-simulator .dchf-btn--primary:hover:not(:disabled),
body .elementor .dchf-simulator .dchf-btn--primary:hover:not(:disabled),
body .dchf-simulator .dchf-btn--primary:hover:not(:disabled) {
    background-color: var(--dchf-color-petrol-hover);
    border-color: var(--dchf-color-petrol-hover);
}

/* Secondary Button - Outline */
body .elementor-widget-container .dchf-simulator .dchf-btn--secondary,
body .elementor .dchf-simulator .dchf-btn--secondary,
body .dchf-simulator .dchf-btn--secondary {
    background-color: transparent;
    border-color: var(--dchf-color-petrol);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-btn--secondary:hover:not(:disabled),
body .elementor .dchf-simulator .dchf-btn--secondary:hover:not(:disabled),
body .dchf-simulator .dchf-btn--secondary:hover:not(:disabled) {
    background-color: var(--dchf-color-petrol);
    color: var(--dchf-color-text-inverse);
}

/* Ghost Button */
body .elementor-widget-container .dchf-simulator .dchf-btn--ghost,
body .elementor .dchf-simulator .dchf-btn--ghost,
body .dchf-simulator .dchf-btn--ghost {
    background-color: transparent;
    border-color: transparent;
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-btn--ghost:hover:not(:disabled),
body .elementor .dchf-simulator .dchf-btn--ghost:hover:not(:disabled),
body .dchf-simulator .dchf-btn--ghost:hover:not(:disabled) {
    background-color: var(--dchf-color-bg-muted);
}

/* Button Sizes */
body .elementor-widget-container .dchf-simulator .dchf-btn--sm,
body .elementor .dchf-simulator .dchf-btn--sm,
body .dchf-simulator .dchf-btn--sm {
    min-height: var(--dchf-button-height-sm);
    padding: var(--dchf-space-3) var(--dchf-space-6);
    font-size: var(--dchf-font-size-xs);
}

body .elementor-widget-container .dchf-simulator .dchf-btn--large,
body .elementor .dchf-simulator .dchf-btn--large,
body .dchf-simulator .dchf-btn--large,
body .elementor-widget-container .dchf-simulator .dchf-btn--lg,
body .elementor .dchf-simulator .dchf-btn--lg,
body .dchf-simulator .dchf-btn--lg {
    min-height: 56px;
    padding: var(--dchf-space-5) var(--dchf-space-10);
    font-size: var(--dchf-font-size-base);
}

body .elementor-widget-container .dchf-simulator .dchf-btn--full,
body .elementor .dchf-simulator .dchf-btn--full,
body .dchf-simulator .dchf-btn--full {
    width: 100%;
}

/* Button Icon */
body .elementor-widget-container .dchf-simulator .dchf-btn__icon,
body .elementor .dchf-simulator .dchf-btn__icon,
body .dchf-simulator .dchf-btn__icon {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
}

/* Button Loading */
body .elementor-widget-container .dchf-simulator .dchf-btn--loading,
body .elementor .dchf-simulator .dchf-btn--loading,
body .dchf-simulator .dchf-btn--loading {
    position: relative;
    color: transparent;
    pointer-events: none;
}

body .elementor-widget-container .dchf-simulator .dchf-btn--loading::after,
body .elementor .dchf-simulator .dchf-btn--loading::after,
body .dchf-simulator .dchf-btn--loading::after {
    content: "";
    position: absolute;
    width: 18px;
    height: 18px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: var(--dchf-radius-full);
    animation: dchf-spin 0.75s linear infinite;
}

/* ==========================================================================
   7. STEP NAVIGATION - BARRE DE PROGRESSION
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-progress,
body .elementor .dchf-simulator .dchf-progress,
body .dchf-simulator .dchf-progress {
    position: relative;
    width: 100%;
    margin-bottom: var(--dchf-space-8);
    padding-bottom: var(--dchf-space-4);
    overflow: hidden;
}

/* Track de fond */
body .elementor-widget-container .dchf-simulator .dchf-progress__track,
body .elementor .dchf-simulator .dchf-progress__track,
body .dchf-simulator .dchf-progress__track {
    position: relative;
    height: 3px;
    background-color: var(--dchf-color-gray-200);
    overflow: hidden;
}

body .elementor-widget-container .dchf-simulator .dchf-progress__bar,
body .elementor .dchf-simulator .dchf-progress__bar,
body .dchf-simulator .dchf-progress__bar {
    position: relative;
    height: 3px;
    background: linear-gradient(90deg,
        var(--dchf-color-petrol) 0%,
        var(--dchf-color-petrol-light) 100%
    );
    transition: width 500ms var(--dchf-easing-smooth);
    overflow: hidden;
}

/* Effet de brillance en mouvement */
body .elementor-widget-container .dchf-simulator .dchf-progress__bar::after,
body .elementor .dchf-simulator .dchf-progress__bar::after,
/* Shimmer subtil - ton institutionnel DA */
body .dchf-simulator .dchf-progress__bar::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.25) 50%,
        transparent 100%
    );
    transform: translateX(-100%);
    animation: dchf-progress-shimmer 3s ease-in-out 1;
}

@keyframes dchf-progress-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

body .elementor-widget-container .dchf-simulator .dchf-progress__text,
body .elementor .dchf-simulator .dchf-progress__text,
body .dchf-simulator .dchf-progress__text {
    display: block;
    margin-top: var(--dchf-space-3);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-xs);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text-muted);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
    text-align: center;
}

/* Etat complete */
body .dchf-simulator .dchf-progress--complete .dchf-progress__bar {
    background: var(--dchf-color-success);
}

body .dchf-simulator .dchf-progress--complete .dchf-progress__bar::after {
    animation: none;
}

/* ==========================================================================
   8. STEP CONTENT - QUESTION CENTREE
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-step,
body .elementor .dchf-simulator .dchf-step,
body .dchf-simulator .dchf-step {
    display: none;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity var(--dchf-duration-slow) var(--dchf-easing-out),
                transform var(--dchf-duration-slow) var(--dchf-easing-out);
}

body .elementor-widget-container .dchf-simulator .dchf-step--active,
body .elementor .dchf-simulator .dchf-step--active,
body .dchf-simulator .dchf-step--active {
    display: flex;
    opacity: 1;
    transform: translateY(0);
}

/* ==========================================================================
   TRANSITIONS ETAPES - NIVEAU AWWWARDS (Staggered Animations)
   ========================================================================== */

/* Elements enfants - animation echelonnee a l'entree */
body .dchf-simulator .dchf-step--active .dchf-step__content > * {
    opacity: 0;
    transform: translateY(30px);
    animation: dchf-stagger-in var(--dchf-transition-duration) var(--dchf-easing-smooth) forwards;
}

/* Delais echelonnes pour chaque element */
body .dchf-simulator .dchf-step--active .dchf-step-0__badge,
body .dchf-simulator .dchf-step--active .dchf-step__question {
    animation-delay: calc(var(--dchf-stagger-delay) * 1);
}

body .dchf-simulator .dchf-step--active .dchf-step__description {
    animation-delay: calc(var(--dchf-stagger-delay) * 2);
}

body .dchf-simulator .dchf-step--active .dchf-step__fields,
body .dchf-simulator .dchf-step--active .dchf-step-0__choices {
    animation-delay: calc(var(--dchf-stagger-delay) * 3);
}

body .dchf-simulator .dchf-step--active .dchf-step__hint,
body .dchf-simulator .dchf-step--active .dchf-step-5__actions {
    animation-delay: calc(var(--dchf-stagger-delay) * 4);
}

/* Animation de sortie - direction forward (vers la gauche) */
body .dchf-simulator .dchf-step--exit-forward {
    animation: dchf-exit-forward 350ms var(--dchf-easing-smooth) forwards;
}

/* Animation de sortie - direction backward (vers la droite) */
body .dchf-simulator .dchf-step--exit-backward {
    animation: dchf-exit-backward 350ms var(--dchf-easing-smooth) forwards;
}

/* Animation d'entree depuis la droite (forward) */
body .dchf-simulator .dchf-step--enter-forward .dchf-step__content > * {
    transform: translateX(40px) translateY(0);
}

/* Animation d'entree depuis la gauche (backward) */
body .dchf-simulator .dchf-step--enter-backward .dchf-step__content > * {
    transform: translateX(-40px) translateY(0);
}

@keyframes dchf-stagger-in {
    0% {
        opacity: 0;
        transform: translateY(30px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes dchf-exit-forward {
    0% {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateX(-60px) scale(0.98);
    }
}

@keyframes dchf-exit-backward {
    0% {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateX(60px) scale(0.98);
    }
}

body .elementor-widget-container .dchf-simulator .dchf-step__content,
body .elementor .dchf-simulator .dchf-step__content,
body .dchf-simulator .dchf-step__content {
    max-width: 100%;
    width: 100%;
    margin: 0 auto;
    text-align: center;
}

/* Question Title - Serif Editorial */
body .elementor-widget-container .dchf-simulator .dchf-step__question,
body .elementor .dchf-simulator .dchf-step__question,
body .dchf-simulator .dchf-step__question {
    margin: 0 0 var(--dchf-space-4);
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-typeform-question-size);
    font-weight: var(--dchf-font-weight-normal);
    line-height: var(--dchf-line-height-tight);
    letter-spacing: var(--dchf-letter-spacing-tight);
    color: var(--dchf-color-petrol);
}

/* Description */
body .elementor-widget-container .dchf-simulator .dchf-step__description,
body .elementor .dchf-simulator .dchf-step__description,
body .dchf-simulator .dchf-step__description {
    margin: 0 0 var(--dchf-space-10);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    color: var(--dchf-color-text-muted);
    line-height: var(--dchf-line-height-relaxed);
}

/* Fields Container */
body .elementor-widget-container .dchf-simulator .dchf-step__fields,
body .elementor .dchf-simulator .dchf-step__fields,
body .dchf-simulator .dchf-step__fields {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-4);
    max-width: 400px;
    margin: 0 auto;
    text-align: left;
}

/* Hint Text */
body .elementor-widget-container .dchf-simulator .dchf-step__hint,
body .elementor .dchf-simulator .dchf-step__hint,
body .dchf-simulator .dchf-step__hint {
    display: flex;
    align-items: flex-start;
    gap: var(--dchf-space-2);
    margin-top: var(--dchf-space-6);
    padding: var(--dchf-space-4);
    background-color: var(--dchf-color-bg-alt);
    border-left: 2px solid var(--dchf-color-petrol);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
    text-align: left;
}

body .elementor-widget-container .dchf-simulator .dchf-step__hint-icon,
body .elementor .dchf-simulator .dchf-step__hint-icon,
body .dchf-simulator .dchf-step__hint-icon {
    flex-shrink: 0;
    color: var(--dchf-color-petrol);
}

/* ==========================================================================
   9. STEP 0 - CHOICE CARDS
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-step-0__badge,
body .elementor .dchf-simulator .dchf-step-0__badge,
body .dchf-simulator .dchf-step-0__badge {
    display: inline-flex;
    align-items: center;
    gap: var(--dchf-space-2);
    margin-bottom: var(--dchf-space-6);
    padding: var(--dchf-space-2) var(--dchf-space-4);
    background-color: var(--dchf-color-success-light);
    color: var(--dchf-color-success-dark);
    font-size: var(--dchf-font-size-xs);
    font-weight: var(--dchf-font-weight-medium);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
    border-radius: var(--dchf-radius-full);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__badge-icon,
body .elementor .dchf-simulator .dchf-step-0__badge-icon,
body .dchf-simulator .dchf-step-0__badge-icon {
    width: 14px;
    height: 14px;
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__choices,
body .elementor .dchf-simulator .dchf-step-0__choices,
body .dchf-simulator .dchf-step-0__choices {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-4);
    max-width: 440px;
    margin: 0 auto;
}

/* Choice Card */
body .elementor-widget-container .dchf-simulator .dchf-step-0__card,
body .elementor .dchf-simulator .dchf-step-0__card,
body .dchf-simulator .dchf-step-0__card {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-4);
    width: 100%;
    padding: var(--dchf-space-5) var(--dchf-space-6);
    background-color: var(--dchf-color-white);
    border: 1px solid var(--dchf-color-border);
    border-radius: var(--dchf-radius-none);
    cursor: pointer;
    text-align: left;
    transition: all var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card:hover,
body .elementor .dchf-simulator .dchf-step-0__card:hover,
body .dchf-simulator .dchf-step-0__card:hover {
    border-color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-bg-alt);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card--primary:hover,
body .elementor .dchf-simulator .dchf-step-0__card--primary:hover,
body .dchf-simulator .dchf-step-0__card--primary:hover {
    background-color: var(--dchf-color-petrol);
    color: var(--dchf-color-text-inverse);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-title,
body .elementor .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-title,
body .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-title,
body .elementor-widget-container .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-desc,
body .elementor .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-desc,
body .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-desc {
    color: var(--dchf-color-text-inverse);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card-icon,
body .elementor .dchf-simulator .dchf-step-0__card-icon,
body .dchf-simulator .dchf-step-0__card-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card-icon svg,
body .elementor .dchf-simulator .dchf-step-0__card-icon svg,
body .dchf-simulator .dchf-step-0__card-icon svg {
    width: 32px;
    height: 32px;
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card-content,
body .elementor .dchf-simulator .dchf-step-0__card-content,
body .dchf-simulator .dchf-step-0__card-content {
    flex: 1;
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card-title,
body .elementor .dchf-simulator .dchf-step-0__card-title,
body .dchf-simulator .dchf-step-0__card-title {
    display: block;
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-lg);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
    margin-bottom: var(--dchf-space-1);
    transition: color var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card-desc,
body .elementor .dchf-simulator .dchf-step-0__card-desc,
body .dchf-simulator .dchf-step-0__card-desc {
    display: block;
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
    transition: color var(--dchf-duration-normal) var(--dchf-easing-default);
}

/* Arrow Icon */
body .elementor-widget-container .dchf-simulator .dchf-step-0__card-arrow,
body .elementor .dchf-simulator .dchf-step-0__card-arrow,
body .dchf-simulator .dchf-step-0__card-arrow {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--dchf-color-petrol);
    opacity: 0;
    transform: translateX(-8px);
    transition: all var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card:hover .dchf-step-0__card-arrow,
body .elementor .dchf-simulator .dchf-step-0__card:hover .dchf-step-0__card-arrow,
body .dchf-simulator .dchf-step-0__card:hover .dchf-step-0__card-arrow {
    opacity: 1;
    transform: translateX(0);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-arrow,
body .elementor .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-arrow,
body .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-arrow,
body .elementor-widget-container .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-icon,
body .elementor .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-icon,
body .dchf-simulator .dchf-step-0__card--primary:hover .dchf-step-0__card-icon {
    color: var(--dchf-color-text-inverse);
}

/* Divider */
body .elementor-widget-container .dchf-simulator .dchf-step-0__divider,
body .elementor .dchf-simulator .dchf-step-0__divider,
body .dchf-simulator .dchf-step-0__divider {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-4);
    color: var(--dchf-color-text-light);
    font-size: var(--dchf-font-size-xs);
    font-weight: var(--dchf-font-weight-medium);
    letter-spacing: var(--dchf-letter-spacing-wider);
    text-transform: uppercase;
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__divider::before,
body .elementor .dchf-simulator .dchf-step-0__divider::before,
body .dchf-simulator .dchf-step-0__divider::before,
body .elementor-widget-container .dchf-simulator .dchf-step-0__divider::after,
body .elementor .dchf-simulator .dchf-step-0__divider::after,
body .dchf-simulator .dchf-step-0__divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background-color: var(--dchf-color-border);
}

/* Step 0 - Callback Form Grid */
body .elementor-widget-container .dchf-simulator .dchf-step-0__callback-form,
body .elementor .dchf-simulator .dchf-step-0__callback-form,
body .dchf-simulator .dchf-step-0__callback-form {
    margin-top: var(--dchf-space-8);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__form-title,
body .elementor .dchf-simulator .dchf-step-0__form-title,
body .dchf-simulator .dchf-step-0__form-title {
    margin: 0 0 var(--dchf-space-6);
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-xl);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__form-grid,
body .elementor .dchf-simulator .dchf-step-0__form-grid,
body .dchf-simulator .dchf-step-0__form-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--dchf-space-8) var(--dchf-space-6) !important;
    margin-bottom: var(--dchf-space-8);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__field,
body .elementor .dchf-simulator .dchf-step-0__field,
body .dchf-simulator .dchf-step-0__field {
    margin-bottom: 0;
}

/* Step 0 field label - inherit modern style */
body .elementor-widget-container .dchf-simulator .dchf-step-0__field .dchf-field__label,
body .elementor .dchf-simulator .dchf-step-0__field .dchf-field__label,
body .dchf-simulator .dchf-step-0__field .dchf-field__label {
    margin-bottom: var(--dchf-space-2);
}

body .elementor-widget-container .dchf-simulator .dchf-step-0__form-actions,
body .elementor .dchf-simulator .dchf-step-0__form-actions,
body .dchf-simulator .dchf-step-0__form-actions {
    display: flex;
    gap: var(--dchf-space-4);
    justify-content: flex-end;
}

/* ==========================================================================
   10. NAVIGATION BUTTONS
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-navigation,
body .elementor .dchf-simulator .dchf-navigation,
body .dchf-simulator .dchf-navigation {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--dchf-space-4);
}

/* ==========================================================================
   11. RESULTS SCREEN - STYLE EDITORIAL PREMIUM CONSTANTIN-VALLET
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-results,
body .elementor .dchf-simulator .dchf-results,
body .dchf-simulator .dchf-results {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
}

/* Hero Block - Bloc de mise en avant principal */
body .elementor-widget-container .dchf-simulator .dchf-results__hero,
body .elementor .dchf-simulator .dchf-results__hero,
body .dchf-simulator .dchf-results__hero {
    position: relative;
    margin-bottom: var(--dchf-space-10);
    padding: var(--dchf-space-12) var(--dchf-space-8);
    background-color: var(--dchf-color-petrol);
    color: var(--dchf-color-text-inverse);
}

/* Filet decoratif superieur - style editorial */
body .elementor-widget-container .dchf-simulator .dchf-results__hero::before,
body .elementor .dchf-simulator .dchf-results__hero::before,
body .dchf-simulator .dchf-results__hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: var(--dchf-space-8);
    right: var(--dchf-space-8);
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--dchf-color-gold) 20%,
        var(--dchf-color-gold) 80%,
        transparent 100%
    );
    opacity: 0.6;
}

/* Label - Style categorie editoriale */
body .elementor-widget-container .dchf-simulator .dchf-results__label,
body .elementor .dchf-simulator .dchf-results__label,
body .dchf-simulator .dchf-results__label {
    display: block;
    margin-bottom: var(--dchf-space-5);
    font-family: var(--dchf-font-sans);
    font-size: 11px;
    font-weight: var(--dchf-font-weight-medium);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--dchf-color-gold);
}

/* Montant principal - Typographie serif impactante */
body .elementor-widget-container .dchf-simulator .dchf-results__amount,
body .elementor .dchf-simulator .dchf-results__amount,
body .dchf-simulator .dchf-results__amount {
    display: block;
    position: relative;
    overflow: hidden;
    font-family: var(--dchf-font-serif);
    font-size: clamp(2.5rem, 8vw, 4rem);
    font-weight: var(--dchf-font-weight-normal);
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--dchf-color-text-inverse);
}

/* Separateur sous le montant */
body .elementor-widget-container .dchf-simulator .dchf-results__hero::after,
body .elementor .dchf-simulator .dchf-results__hero::after,
body .dchf-simulator .dchf-results__hero::after {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    margin: var(--dchf-space-6) auto 0;
    background-color: var(--dchf-color-gold);
    opacity: 0.5;
}

/* Message contextuel */
body .elementor-widget-container .dchf-simulator .dchf-results__message,
body .elementor .dchf-simulator .dchf-results__message,
body .dchf-simulator .dchf-results__message {
    max-width: 480px;
    margin: 0 auto var(--dchf-space-8);
    padding: 0 var(--dchf-space-4);
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-lg);
    font-weight: var(--dchf-font-weight-normal);
    line-height: var(--dchf-line-height-relaxed);
    color: var(--dchf-color-text);
}

/* Details Accordion - Style editorial minimaliste */
body .elementor-widget-container .dchf-simulator .dchf-results__details,
body .elementor .dchf-simulator .dchf-results__details,
body .dchf-simulator .dchf-results__details {
    margin-bottom: var(--dchf-space-10);
    text-align: left;
}

body .elementor-widget-container .dchf-simulator .dchf-results__details summary,
body .elementor .dchf-simulator .dchf-results__details summary,
body .dchf-simulator .dchf-results__details summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-3);
    padding: var(--dchf-space-4) var(--dchf-space-6);
    background-color: transparent;
    border: 1px solid var(--dchf-color-charbon);
    border-radius: var(--dchf-radius-full);
    cursor: pointer;
    font-family: var(--dchf-font-sans);
    font-size: 11px;
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-charbon);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    list-style: none;
    transition: all var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-results__details summary::-webkit-details-marker,
body .elementor .dchf-simulator .dchf-results__details summary::-webkit-details-marker,
body .dchf-simulator .dchf-results__details summary::-webkit-details-marker {
    display: none;
}

body .elementor-widget-container .dchf-simulator .dchf-results__details summary::after,
body .elementor .dchf-simulator .dchf-results__details summary::after,
body .dchf-simulator .dchf-results__details summary::after {
    content: "+";
    font-size: 16px;
    font-weight: var(--dchf-font-weight-normal);
    line-height: 1;
    transition: transform var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-results__details[open] summary,
body .elementor .dchf-simulator .dchf-results__details[open] summary,
body .dchf-simulator .dchf-results__details[open] summary {
    background-color: var(--dchf-color-charbon);
    color: var(--dchf-color-text-inverse);
    border-color: var(--dchf-color-charbon);
}

body .elementor-widget-container .dchf-simulator .dchf-results__details[open] summary::after,
body .elementor .dchf-simulator .dchf-results__details[open] summary::after,
body .dchf-simulator .dchf-results__details[open] summary::after {
    transform: rotate(45deg);
}

body .elementor-widget-container .dchf-simulator .dchf-results__details summary:hover,
body .elementor .dchf-simulator .dchf-results__details summary:hover,
body .dchf-simulator .dchf-results__details summary:hover {
    background-color: var(--dchf-color-charbon);
    color: var(--dchf-color-text-inverse);
    border-color: var(--dchf-color-charbon);
}

body .elementor-widget-container .dchf-simulator .dchf-results__details-content,
body .elementor .dchf-simulator .dchf-results__details-content,
body .dchf-simulator .dchf-results__details-content {
    margin-top: var(--dchf-space-6);
    padding: var(--dchf-space-6);
    background-color: var(--dchf-color-white);
    border: none;
    border-top: 1px solid var(--dchf-color-border);
}

/* Details Grid - Style registre/journal */
body .elementor-widget-container .dchf-simulator .dchf-details-grid,
body .elementor .dchf-simulator .dchf-details-grid,
body .dchf-simulator .dchf-details-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-details-section,
body .elementor .dchf-simulator .dchf-details-section,
body .dchf-simulator .dchf-details-section {
    padding: var(--dchf-space-5) 0;
    border-bottom: 1px solid var(--dchf-color-border);
}

body .elementor-widget-container .dchf-simulator .dchf-details-section:first-child,
body .elementor .dchf-simulator .dchf-details-section:first-child,
body .dchf-simulator .dchf-details-section:first-child {
    padding-top: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-details-section:last-child,
body .elementor .dchf-simulator .dchf-details-section:last-child,
body .dchf-simulator .dchf-details-section:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

/* Titre de section - Style label categorie */
body .elementor-widget-container .dchf-simulator .dchf-details-section h4,
body .elementor .dchf-simulator .dchf-details-section h4,
body .dchf-simulator .dchf-details-section h4 {
    margin: 0 0 var(--dchf-space-4) 0;
    font-family: var(--dchf-font-sans);
    font-size: 10px;
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

/* Lignes de donnees - Style tableau editorial */
body .elementor-widget-container .dchf-simulator .dchf-details-row,
body .elementor .dchf-simulator .dchf-details-row,
body .dchf-simulator .dchf-details-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: var(--dchf-space-2) 0;
    font-size: var(--dchf-font-size-sm);
    border-bottom: 1px dotted var(--dchf-color-border-light);
}

body .elementor-widget-container .dchf-simulator .dchf-details-row:last-of-type,
body .elementor .dchf-simulator .dchf-details-row:last-of-type,
body .dchf-simulator .dchf-details-row:last-of-type {
    border-bottom: none;
}

body .elementor-widget-container .dchf-simulator .dchf-details-row span,
body .elementor .dchf-simulator .dchf-details-row span,
body .dchf-simulator .dchf-details-row span {
    color: var(--dchf-color-text-muted);
    font-family: var(--dchf-font-sans);
}

body .elementor-widget-container .dchf-simulator .dchf-details-row strong,
body .elementor .dchf-simulator .dchf-details-row strong,
body .dchf-simulator .dchf-details-row strong {
    color: var(--dchf-color-text);
    font-family: var(--dchf-font-sans);
    font-weight: var(--dchf-font-weight-semibold);
    font-variant-numeric: tabular-nums;
}

/* Ligne mise en valeur */
body .elementor-widget-container .dchf-simulator .dchf-details-row--highlight,
body .elementor .dchf-simulator .dchf-details-row--highlight,
body .dchf-simulator .dchf-details-row--highlight {
    background-color: transparent;
    padding: var(--dchf-space-3) 0;
    margin: var(--dchf-space-2) 0 0 0;
    border-radius: 0;
    border-bottom: none;
    border-top: 1px solid var(--dchf-color-border);
}

body .elementor-widget-container .dchf-simulator .dchf-details-row--highlight span,
body .elementor .dchf-simulator .dchf-details-row--highlight span,
body .dchf-simulator .dchf-details-row--highlight span {
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text);
}

/* Ligne total - Style premium */
body .elementor-widget-container .dchf-simulator .dchf-details-row--total,
body .elementor .dchf-simulator .dchf-details-row--total,
body .dchf-simulator .dchf-details-row--total {
    margin-top: var(--dchf-space-4);
    padding: var(--dchf-space-4) 0 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    border-bottom: none;
    font-size: var(--dchf-font-size-base);
}

body .elementor-widget-container .dchf-simulator .dchf-details-row--total span,
body .elementor .dchf-simulator .dchf-details-row--total span,
body .dchf-simulator .dchf-details-row--total span {
    font-family: var(--dchf-font-sans);
    font-size: 10px;
    font-weight: var(--dchf-font-weight-semibold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

body .elementor-widget-container .dchf-simulator .dchf-details-row--total strong,
body .elementor .dchf-simulator .dchf-details-row--total strong,
body .dchf-simulator .dchf-details-row--total strong {
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-2xl);
    font-weight: var(--dchf-font-weight-normal);
    letter-spacing: -0.01em;
}

body .elementor-widget-container .dchf-simulator .dchf-text--success,
body .elementor .dchf-simulator .dchf-text--success,
body .dchf-simulator .dchf-text--success {
    color: var(--dchf-color-success, #22c55e) !important;
}

body .elementor-widget-container .dchf-simulator .dchf-text--danger,
body .elementor .dchf-simulator .dchf-text--danger,
body .dchf-simulator .dchf-text--danger {
    color: var(--dchf-color-error, #ef4444) !important;
}

body .elementor-widget-container .dchf-simulator .dchf-text--warning,
body .elementor .dchf-simulator .dchf-text--warning,
body .dchf-simulator .dchf-text--warning {
    color: var(--dchf-color-warning, #B8860B) !important;
}

/* Explanation - Style note editoriale */
body .elementor-widget-container .dchf-simulator .dchf-results__explanation,
body .elementor .dchf-simulator .dchf-results__explanation,
body .dchf-simulator .dchf-results__explanation {
    max-width: 640px;
    margin: 0 auto var(--dchf-space-10);
    padding: var(--dchf-space-5) var(--dchf-space-6);
    background-color: transparent;
    border: none;
    border-top: 1px solid var(--dchf-color-border);
    text-align: justify;
}

body .elementor-widget-container .dchf-simulator .dchf-results__explanation p,
body .elementor .dchf-simulator .dchf-results__explanation p,
body .dchf-simulator .dchf-results__explanation p {
    margin: 0 0 var(--dchf-space-4) 0;
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-sm);
    font-style: italic;
    color: var(--dchf-color-text-muted);
    line-height: var(--dchf-line-height-relaxed);
}

body .elementor-widget-container .dchf-simulator .dchf-results__explanation p:last-child,
body .elementor .dchf-simulator .dchf-results__explanation p:last-child,
body .dchf-simulator .dchf-results__explanation p:last-child {
    margin-bottom: 0;
}

/* Warning Block - Avertissement gain negatif */
body .elementor-widget-container .dchf-simulator .dchf-results__warning,
body .elementor .dchf-simulator .dchf-results__warning,
body .dchf-simulator .dchf-results__warning {
    max-width: 640px;
    margin: 0 auto var(--dchf-space-10);
    padding: var(--dchf-space-6);
    background-color: #fffbeb;
    border: 1px solid #fbbf24;
    border-left: 4px solid #f59e0b;
    border-radius: var(--dchf-radius-md);
    text-align: left;
}

body .elementor-widget-container .dchf-simulator .dchf-results__warning p,
body .elementor .dchf-simulator .dchf-results__warning p,
body .dchf-simulator .dchf-results__warning p {
    margin: 0 0 var(--dchf-space-4) 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: #92400e;
    line-height: var(--dchf-line-height-relaxed);
}

body .elementor-widget-container .dchf-simulator .dchf-results__warning p:last-child,
body .elementor .dchf-simulator .dchf-results__warning p:last-child,
body .dchf-simulator .dchf-results__warning p:last-child {
    margin-bottom: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-results__warning strong,
body .elementor .dchf-simulator .dchf-results__warning strong,
body .dchf-simulator .dchf-results__warning strong {
    color: #b45309;
    font-weight: var(--dchf-font-weight-semibold);
}

/* Hero Warning State - Gain negatif */
body .elementor-widget-container .dchf-simulator .dchf-results__hero--warning,
body .elementor .dchf-simulator .dchf-results__hero--warning,
body .dchf-simulator .dchf-results__hero--warning {
    border: 2px solid #f59e0b;
    background-color: #fffbeb;
}

body .elementor-widget-container .dchf-simulator .dchf-results__hero--warning::before,
body .elementor .dchf-simulator .dchf-results__hero--warning::before,
body .dchf-simulator .dchf-results__hero--warning::before {
    background-color: #f59e0b;
}

body .elementor-widget-container .dchf-simulator .dchf-results__hero--warning::after,
body .elementor .dchf-simulator .dchf-results__hero--warning::after,
body .dchf-simulator .dchf-results__hero--warning::after {
    background-color: #f59e0b;
}

body .elementor-widget-container .dchf-simulator .dchf-results__hero--warning .dchf-results__amount,
body .elementor .dchf-simulator .dchf-results__hero--warning .dchf-results__amount,
body .dchf-simulator .dchf-results__hero--warning .dchf-results__amount {
    color: #b45309;
}

/* Results Container Warning State */
body .elementor-widget-container .dchf-simulator .dchf-results--warning .dchf-results__message,
body .elementor .dchf-simulator .dchf-results--warning .dchf-results__message,
body .dchf-simulator .dchf-results--warning .dchf-results__message {
    color: #92400e;
}

/* CTA Container */
body .elementor-widget-container .dchf-simulator .dchf-results__cta,
body .elementor .dchf-simulator .dchf-results__cta,
body .dchf-simulator .dchf-results__cta {
    text-align: center;
}

/* CTA Text - Style question editoriale */
body .elementor-widget-container .dchf-simulator .dchf-results__cta-text,
body .elementor .dchf-simulator .dchf-results__cta-text,
body .dchf-simulator .dchf-results__cta-text {
    margin-bottom: var(--dchf-space-5);
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-xl);
    font-weight: var(--dchf-font-weight-normal);
    color: var(--dchf-color-text);
    line-height: var(--dchf-line-height-normal);
}

/* CTA Primary - Juste sous le hero */
body .elementor-widget-container .dchf-simulator .dchf-results__cta--primary,
body .elementor .dchf-simulator .dchf-results__cta--primary,
body .dchf-simulator .dchf-results__cta--primary {
    margin: 0 0 var(--dchf-space-10) 0;
}

/* ==========================================================================
   RESULTS REVEAL - CELEBRATION SEQUENCE (Awwwards)
   ========================================================================== */

/* Animation du hero au reveal */
body .dchf-simulator .dchf-results--reveal .dchf-results__hero {
    animation: dchf-hero-reveal 800ms var(--dchf-easing-smooth) forwards;
}

body .dchf-simulator .dchf-results--reveal .dchf-results__label {
    opacity: 0;
    animation: dchf-label-in 400ms 200ms var(--dchf-easing-out) forwards;
}

body .dchf-simulator .dchf-results--reveal .dchf-results__amount {
    opacity: 0;
    transform: scale(0.9);
    animation: dchf-amount-reveal 600ms 400ms var(--dchf-easing-bounce) forwards;
}

/* Effet de brillance qui traverse le montant */
body .elementor-widget-container .dchf-simulator .dchf-results--reveal .dchf-results__amount::before,
body .elementor .dchf-simulator .dchf-results--reveal .dchf-results__amount::before,
body .dchf-simulator .dchf-results--reveal .dchf-results__amount::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.3) 50%,
        transparent 100%
    );
    animation: dchf-shine 1200ms 1000ms var(--dchf-easing-out) forwards;
}

/* CTA avec animation reveal */
body .dchf-simulator .dchf-results--reveal .dchf-results__cta--primary {
    opacity: 0;
    transform: translateY(20px);
    animation: dchf-cta-reveal 500ms 1200ms var(--dchf-easing-smooth) forwards;
}

/* Message avec animation */
body .dchf-simulator .dchf-results--reveal .dchf-results__message {
    opacity: 0;
    animation: dchf-message-reveal 400ms 900ms var(--dchf-easing-out) forwards;
}

@keyframes dchf-hero-reveal {
    0% {
        opacity: 0;
        transform: translateY(40px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes dchf-label-in {
    0% { opacity: 0; transform: translateY(-10px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes dchf-amount-reveal {
    0% {
        opacity: 0;
        transform: scale(0.9);
    }
    60% {
        opacity: 1;
        transform: scale(1.05);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes dchf-shine {
    0% { left: -100%; }
    100% { left: 100%; }
}

@keyframes dchf-message-reveal {
    0% { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes dchf-cta-reveal {
    0% { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* CTA Secondary - Separateur editorial */
body .elementor-widget-container .dchf-simulator .dchf-results__cta--secondary,
body .elementor .dchf-simulator .dchf-results__cta--secondary,
body .dchf-simulator .dchf-results__cta--secondary {
    position: relative;
    margin-top: var(--dchf-space-8);
    padding-top: var(--dchf-space-10);
}

/* Filet decoratif central */
body .elementor-widget-container .dchf-simulator .dchf-results__cta--secondary::before,
body .elementor .dchf-simulator .dchf-results__cta--secondary::before,
body .dchf-simulator .dchf-results__cta--secondary::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 1px;
    background-color: var(--dchf-color-border);
}

/* Pulse animation for primary CTA - Subtile et elegante */
@keyframes dchf-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(42, 59, 76, 0.25); }
    50% { box-shadow: 0 0 0 8px rgba(42, 59, 76, 0); }
}

body .elementor-widget-container .dchf-simulator .dchf-btn--pulse,
body .elementor .dchf-simulator .dchf-btn--pulse,
body .dchf-simulator .dchf-btn--pulse {
    animation: dchf-pulse 2.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

body .elementor-widget-container .dchf-simulator .dchf-btn--pulse:hover,
body .elementor .dchf-simulator .dchf-btn--pulse:hover,
body .dchf-simulator .dchf-btn--pulse:hover {
    animation: none;
}

/* ==========================================================================
   FEEDBACK STATES - COMPREHENSIVE (Awwwards)
   ========================================================================== */

/* Loading state sur les boutons */
body .dchf-simulator .dchf-btn--loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}

body .dchf-simulator .dchf-btn--loading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    border: 2px solid var(--dchf-color-text-inverse);
    border-right-color: transparent;
    border-radius: 50%;
    animation: dchf-spin 0.6s linear infinite;
}

body .dchf-simulator .dchf-btn--secondary.dchf-btn--loading::after {
    border-color: var(--dchf-color-petrol);
    border-right-color: transparent;
}

/* Message d'erreur avec animation d'entree */
body .dchf-simulator .dchf-error-message {
    display: block;
    margin-top: var(--dchf-space-2);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-error);
    opacity: 0;
    transform: translateY(-8px);
    animation: dchf-error-appear 250ms var(--dchf-easing-out) forwards;
}

@keyframes dchf-error-appear {
    0% { opacity: 0; transform: translateY(-8px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* Icone d'erreur inline */
body .dchf-simulator .dchf-error-message::before {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-right: var(--dchf-space-1);
    vertical-align: text-bottom;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A94442' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Bouton CTA Results - Style Ghost/Outline selon DA */
body .elementor-widget-container .dchf-simulator .dchf-results .dchf-btn--primary,
body .elementor .dchf-simulator .dchf-results .dchf-btn--primary,
body .dchf-simulator .dchf-results .dchf-btn--primary {
    background-color: transparent;
    border: 1px solid var(--dchf-color-charbon);
    color: var(--dchf-color-charbon);
}

body .elementor-widget-container .dchf-simulator .dchf-results .dchf-btn--primary:hover:not(:disabled),
body .elementor .dchf-simulator .dchf-results .dchf-btn--primary:hover:not(:disabled),
body .dchf-simulator .dchf-results .dchf-btn--primary:hover:not(:disabled) {
    background-color: var(--dchf-color-charbon);
    border-color: var(--dchf-color-charbon);
    color: var(--dchf-color-text-inverse);
}

/* Outline button variant - Style pillule Ghost DA */
body .elementor-widget-container .dchf-simulator .dchf-btn--outline,
body .elementor .dchf-simulator .dchf-btn--outline,
body .dchf-simulator .dchf-btn--outline {
    background-color: transparent;
    border: 1px solid var(--dchf-color-charbon);
    color: var(--dchf-color-charbon);
}

body .elementor-widget-container .dchf-simulator .dchf-btn--outline:hover:not(:disabled),
body .elementor .dchf-simulator .dchf-btn--outline:hover:not(:disabled),
body .dchf-simulator .dchf-btn--outline:hover:not(:disabled) {
    background-color: var(--dchf-color-charbon);
    border-color: var(--dchf-color-charbon);
    color: var(--dchf-color-text-inverse);
}

/* Details note styling - Style editorial */
body .elementor-widget-container .dchf-simulator .dchf-details-note,
body .elementor .dchf-simulator .dchf-details-note,
body .dchf-simulator .dchf-details-note {
    margin: var(--dchf-space-4) 0 0 0;
    padding: 0;
    background-color: transparent;
    border-radius: 0;
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-xs);
    font-style: italic;
    color: var(--dchf-color-text-muted);
    line-height: var(--dchf-line-height-relaxed);
}

body .elementor-widget-container .dchf-simulator .dchf-details-note--legal,
body .elementor .dchf-simulator .dchf-details-note--legal,
body .dchf-simulator .dchf-details-note--legal {
    padding-top: var(--dchf-space-3);
    border-top: 1px solid var(--dchf-color-border-light);
    border-left: none;
}

/* Details section result - Bloc de mise en avant final */
body .elementor-widget-container .dchf-simulator .dchf-details-section--result,
body .elementor .dchf-simulator .dchf-details-section--result,
body .dchf-simulator .dchf-details-section--result {
    position: relative;
    background-color: var(--dchf-color-petrol);
    padding: var(--dchf-space-6) var(--dchf-space-6) var(--dchf-space-5);
    margin: var(--dchf-space-6) calc(-1 * var(--dchf-space-6)) calc(-1 * var(--dchf-space-6));
    border-radius: 0;
    border-bottom: none;
}

/* Filet dore decoratif */
body .elementor-widget-container .dchf-simulator .dchf-details-section--result::before,
body .elementor .dchf-simulator .dchf-details-section--result::before,
body .dchf-simulator .dchf-details-section--result::before {
    content: "";
    position: absolute;
    top: 0;
    left: var(--dchf-space-6);
    right: var(--dchf-space-6);
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--dchf-color-gold) 30%,
        var(--dchf-color-gold) 70%,
        transparent 100%
    );
    opacity: 0.4;
}

body .elementor-widget-container .dchf-simulator .dchf-details-section--result h4,
body .elementor .dchf-simulator .dchf-details-section--result h4,
body .dchf-simulator .dchf-details-section--result h4 {
    color: var(--dchf-color-gold);
    text-align: center;
    margin-bottom: var(--dchf-space-5);
}

body .elementor-widget-container .dchf-simulator .dchf-details-section--result .dchf-details-row,
body .elementor .dchf-simulator .dchf-details-section--result .dchf-details-row,
body .dchf-simulator .dchf-details-section--result .dchf-details-row {
    border-bottom: none;
    flex-direction: column;
    align-items: center;
    gap: var(--dchf-space-2);
    text-align: center;
}

body .elementor-widget-container .dchf-simulator .dchf-details-section--result .dchf-details-row span,
body .elementor .dchf-simulator .dchf-details-section--result .dchf-details-row span,
body .dchf-simulator .dchf-details-section--result .dchf-details-row span {
    color: rgba(255, 255, 255, 0.7);
    font-size: 10px;
    letter-spacing: 0.1em;
}

body .elementor-widget-container .dchf-simulator .dchf-details-section--result .dchf-details-row strong,
body .elementor .dchf-simulator .dchf-details-section--result .dchf-details-row strong,
body .dchf-simulator .dchf-details-section--result .dchf-details-row strong {
    color: var(--dchf-color-text-inverse);
    font-family: var(--dchf-font-serif);
    font-size: clamp(1.75rem, 5vw, 2.25rem);
    font-weight: var(--dchf-font-weight-normal);
    letter-spacing: -0.01em;
}

body .elementor-widget-container .dchf-simulator .dchf-details-section--result .dchf-details-row--total,
body .elementor .dchf-simulator .dchf-details-section--result .dchf-details-row--total,
body .dchf-simulator .dchf-details-section--result .dchf-details-row--total {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-details-section--result .dchf-details-note,
body .elementor .dchf-simulator .dchf-details-section--result .dchf-details-note,
body .dchf-simulator .dchf-details-section--result .dchf-details-note {
    background-color: transparent;
    color: rgba(255, 255, 255, 0.6);
    border-left: none;
    text-align: center;
    padding: var(--dchf-space-4) 0 0 0;
    margin-top: var(--dchf-space-4);
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

/* Details section info - Bloc informatif neutre */
body .elementor-widget-container .dchf-simulator .dchf-details-section--info,
body .elementor .dchf-simulator .dchf-details-section--info,
body .dchf-simulator .dchf-details-section--info {
    background-color: var(--dchf-color-bg-light);
    border-radius: var(--dchf-radius-lg);
    padding: var(--dchf-space-4);
    margin-top: var(--dchf-space-4);
}

body .elementor-widget-container .dchf-simulator .dchf-details-section--info h4,
body .elementor .dchf-simulator .dchf-details-section--info h4,
body .dchf-simulator .dchf-details-section--info h4 {
    color: var(--dchf-color-text-secondary);
    font-size: var(--dchf-text-sm);
}

body .elementor-widget-container .dchf-simulator .dchf-details-section--info .dchf-details-note,
body .elementor .dchf-simulator .dchf-details-section--info .dchf-details-note,
body .dchf-simulator .dchf-details-section--info .dchf-details-note {
    background-color: transparent;
    border-left: none;
    padding: var(--dchf-space-2) 0 0 0;
    margin-top: var(--dchf-space-2);
    font-size: var(--dchf-text-xs);
    color: var(--dchf-color-text-muted);
}

/* Loader */
body .elementor-widget-container .dchf-simulator .dchf-loader,
body .elementor .dchf-simulator .dchf-loader,
body .dchf-simulator .dchf-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-4);
    padding: var(--dchf-space-16);
}

body .elementor-widget-container .dchf-simulator .dchf-loader__spinner,
body .elementor .dchf-simulator .dchf-loader__spinner,
body .dchf-simulator .dchf-loader__spinner {
    width: 32px;
    height: 32px;
    border: 2px solid var(--dchf-color-border);
    border-top-color: var(--dchf-color-petrol);
    border-radius: var(--dchf-radius-full);
    animation: dchf-spin 0.8s linear infinite;
}

body .elementor-widget-container .dchf-simulator .dchf-loader__text,
body .elementor .dchf-simulator .dchf-loader__text,
body .dchf-simulator .dchf-loader__text {
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
}

/* ==========================================================================
   12. CONTACT FORM STYLES
   ========================================================================== */

/* Contact Step Container */
body .elementor-widget-container .dchf-simulator .dchf-step--contact .dchf-step__content,
body .elementor .dchf-simulator .dchf-step--contact .dchf-step__content,
body .dchf-simulator .dchf-step--contact .dchf-step__content {
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}

/* Upload Section */
body .elementor-widget-container .dchf-simulator .dchf-contact__upload,
body .elementor .dchf-simulator .dchf-contact__upload,
body .dchf-simulator .dchf-contact__upload {
    margin-bottom: var(--dchf-space-6);
}

/* Form Section */
body .elementor-widget-container .dchf-simulator .dchf-contact__form,
body .elementor .dchf-simulator .dchf-contact__form,
body .dchf-simulator .dchf-contact__form {
    margin-top: var(--dchf-space-6);
}

/* Divider */
body .elementor-widget-container .dchf-simulator .dchf-divider,
body .elementor .dchf-simulator .dchf-divider,
body .dchf-simulator .dchf-divider {
    border: none;
    border-top: 1px solid var(--dchf-color-border);
    margin: var(--dchf-space-10) 0;
}

/* Section Title */
body .elementor-widget-container .dchf-simulator .dchf-contact__section-title,
body .elementor .dchf-simulator .dchf-contact__section-title,
body .dchf-simulator .dchf-contact__section-title {
    margin: 0 0 var(--dchf-space-3);
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-xl);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
}

/* Section Description */
body .elementor-widget-container .dchf-simulator .dchf-contact__section-desc,
body .elementor .dchf-simulator .dchf-contact__section-desc,
body .dchf-simulator .dchf-contact__section-desc {
    margin: 0 0 var(--dchf-space-6);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
    line-height: var(--dchf-line-height-relaxed);
}

/* Suggested Documents Box */
body .elementor-widget-container .dchf-simulator .dchf-contact__suggested-docs,
body .elementor .dchf-simulator .dchf-contact__suggested-docs,
body .dchf-simulator .dchf-contact__suggested-docs {
    margin-bottom: var(--dchf-space-6);
    padding: var(--dchf-space-4) var(--dchf-space-5);
    background-color: var(--dchf-color-bg-alt);
    border-left: 2px solid var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-contact__suggested-label,
body .elementor .dchf-simulator .dchf-contact__suggested-label,
body .dchf-simulator .dchf-contact__suggested-label {
    margin: 0 0 var(--dchf-space-2);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text);
}

body .elementor-widget-container .dchf-simulator .dchf-contact__suggested-list,
body .elementor .dchf-simulator .dchf-contact__suggested-list,
body .dchf-simulator .dchf-contact__suggested-list {
    margin: 0;
    padding-left: var(--dchf-space-5);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
}

body .elementor-widget-container .dchf-simulator .dchf-contact__suggested-list li,
body .elementor .dchf-simulator .dchf-contact__suggested-list li,
body .dchf-simulator .dchf-contact__suggested-list li {
    margin-bottom: var(--dchf-space-1);
}

/* Form Row - Two Column Grid Layout with airy spacing */
body .elementor-widget-container .dchf-simulator .dchf-form-row,
body .elementor .dchf-simulator .dchf-form-row,
body .dchf-simulator .dchf-form-row {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--dchf-space-8) var(--dchf-space-6) !important;
    margin-bottom: var(--dchf-space-2);
}

body .elementor-widget-container .dchf-simulator .dchf-form-row > .dchf-form-group,
body .elementor .dchf-simulator .dchf-form-row > .dchf-form-group,
body .dchf-simulator .dchf-form-row > .dchf-form-group {
    margin-bottom: 0;
    width: 100% !important;
    max-width: none !important;
}

/* Form Group - Generous vertical spacing */
body .elementor-widget-container .dchf-simulator .dchf-form-group,
body .elementor .dchf-simulator .dchf-form-group,
body .dchf-simulator .dchf-form-group {
    margin-bottom: var(--dchf-space-6);
}

/* Checkbox Form Group - Adequate top margin */
body .elementor-widget-container .dchf-simulator .dchf-form-group--checkbox,
body .elementor .dchf-simulator .dchf-form-group--checkbox,
body .dchf-simulator .dchf-form-group--checkbox {
    margin-top: var(--dchf-space-4);
    margin-bottom: var(--dchf-space-6);
}

/* Submit Button Container */
body .elementor-widget-container .dchf-simulator .dchf-contact__form > .dchf-btn,
body .elementor .dchf-simulator .dchf-contact__form > .dchf-btn,
body .dchf-simulator .dchf-contact__form > .dchf-btn {
    margin-top: var(--dchf-space-4);
}

/* Field Required - Subtle asterisk */
body .elementor-widget-container .dchf-simulator .dchf-field__required,
body .elementor .dchf-simulator .dchf-field__required,
body .dchf-simulator .dchf-field__required {
    color: var(--dchf-color-petrol);
    font-weight: var(--dchf-font-weight-normal);
    margin-left: 2px;
}

/* Alerts */
body .elementor-widget-container .dchf-simulator .dchf-alert,
body .elementor .dchf-simulator .dchf-alert,
body .dchf-simulator .dchf-alert {
    display: flex;
    gap: var(--dchf-space-3);
    padding: var(--dchf-space-4) var(--dchf-space-5);
    margin-top: var(--dchf-space-4);
    border-left: 2px solid;
}

/* Respect hidden attribute */
body .elementor-widget-container .dchf-simulator .dchf-alert[hidden],
body .elementor .dchf-simulator .dchf-alert[hidden],
body .dchf-simulator .dchf-alert[hidden] {
    display: none !important;
}

body .elementor-widget-container .dchf-simulator .dchf-alert--success,
body .elementor .dchf-simulator .dchf-alert--success,
body .dchf-simulator .dchf-alert--success {
    background-color: var(--dchf-color-success-light);
    border-color: var(--dchf-color-success);
    color: var(--dchf-color-success-dark);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    text-align: center;
}

body .elementor-widget-container .dchf-simulator .dchf-alert--success[hidden],
body .elementor .dchf-simulator .dchf-alert--success[hidden],
body .dchf-simulator .dchf-alert--success[hidden] {
    display: none !important;
}

body .elementor-widget-container .dchf-simulator .dchf-btn--restart,
body .elementor .dchf-simulator .dchf-btn--restart,
body .dchf-simulator .dchf-btn--restart {
    margin-top: 0.5rem;
}

body .elementor-widget-container .dchf-simulator .dchf-alert--error,
body .elementor .dchf-simulator .dchf-alert--error,
body .dchf-simulator .dchf-alert--error {
    background-color: var(--dchf-color-error-light);
    border-color: var(--dchf-color-error);
    color: var(--dchf-color-error-dark);
}

body .elementor-widget-container .dchf-simulator .dchf-alert p,
body .elementor .dchf-simulator .dchf-alert p,
body .dchf-simulator .dchf-alert p {
    margin: 0;
    font-size: var(--dchf-font-size-sm);
}

/* ==========================================================================
   13. FILE UPLOADER
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-dropzone,
body .elementor .dchf-simulator .dchf-dropzone,
body .dchf-simulator .dchf-dropzone {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-3);
    padding: var(--dchf-space-10) var(--dchf-space-6);
    background-color: var(--dchf-color-white);
    border: 1px dashed var(--dchf-color-border);
    cursor: pointer;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-dropzone:hover,
body .elementor .dchf-simulator .dchf-dropzone:hover,
body .dchf-simulator .dchf-dropzone:hover {
    border-color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-bg-alt);
}

body .elementor-widget-container .dchf-simulator .dchf-dropzone__icon,
body .elementor .dchf-simulator .dchf-dropzone__icon,
body .dchf-simulator .dchf-dropzone__icon {
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-dropzone__title,
body .elementor .dchf-simulator .dchf-dropzone__title,
body .dchf-simulator .dchf-dropzone__title {
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-lg);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-dropzone__subtitle,
body .elementor .dchf-simulator .dchf-dropzone__subtitle,
body .dchf-simulator .dchf-dropzone__subtitle {
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
}

body .elementor-widget-container .dchf-simulator .dchf-dropzone__input,
body .elementor .dchf-simulator .dchf-dropzone__input,
body .dchf-simulator .dchf-dropzone__input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

/**
 * Dropzone Info (formats + size)
 * Purpose: Secondary info displayed below the main CTA.
 * Provides immediate context about constraints without cluttering the UI.
 */
body .elementor-widget-container .dchf-simulator .dchf-dropzone__info,
body .elementor .dchf-simulator .dchf-dropzone__info,
body .dchf-simulator .dchf-dropzone__info {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-3);
    margin-top: var(--dchf-space-2);
    font-size: var(--dchf-font-size-xs);
    color: var(--dchf-color-text-light);
}

body .elementor-widget-container .dchf-simulator .dchf-dropzone__separator,
body .elementor .dchf-simulator .dchf-dropzone__separator,
body .dchf-simulator .dchf-dropzone__separator {
    color: var(--dchf-color-border);
}

/**
 * Dropzone Dragover State
 * Purpose: Provides visual feedback when files are being dragged over.
 * UX: Immediate confirmation that the drop target is active.
 * Animation: Subtle scale + border color change (200ms ease-out)
 */
body .elementor-widget-container .dchf-simulator .dchf-dropzone--dragover,
body .elementor .dchf-simulator .dchf-dropzone--dragover,
body .dchf-simulator .dchf-dropzone--dragover {
    border-color: var(--dchf-color-petrol);
    border-style: solid;
    background-color: var(--dchf-color-info-light);
    transform: scale(1.005);
}

body .elementor-widget-container .dchf-simulator .dchf-dropzone--dragover .dchf-dropzone__icon,
body .elementor .dchf-simulator .dchf-dropzone--dragover .dchf-dropzone__icon,
body .dchf-simulator .dchf-dropzone--dragover .dchf-dropzone__icon {
    transform: translateY(-2px);
    transition: transform var(--dchf-duration-fast) var(--dchf-easing-out);
}

/**
 * Dropzone Disabled State
 * Purpose: Prevents interaction when max files reached.
 */
body .elementor-widget-container .dchf-simulator .dchf-dropzone--disabled,
body .elementor .dchf-simulator .dchf-dropzone--disabled,
body .dchf-simulator .dchf-dropzone--disabled {
    opacity: 0.5;
    pointer-events: none;
    cursor: not-allowed;
}

/* --------------------------------------------------------------------------
   FILE LIST
   Purpose: Container for uploaded file items
   Animation: List items stagger in with slide-up effect
   -------------------------------------------------------------------------- */

body .elementor-widget-container .dchf-simulator .dchf-file-list,
body .elementor .dchf-simulator .dchf-file-list,
body .dchf-simulator .dchf-file-list {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-3);
    margin-top: var(--dchf-space-4);
}

body .elementor-widget-container .dchf-simulator .dchf-file-list:empty,
body .elementor .dchf-simulator .dchf-file-list:empty,
body .dchf-simulator .dchf-file-list:empty {
    display: none;
}

/* --------------------------------------------------------------------------
   FILE ITEM
   Purpose: Individual uploaded file with name, size, status, and remove action
   UX: Provides clear feedback on upload status (uploading/success/error)
   Animation: Slides in on add, fades out on remove (300ms)
   -------------------------------------------------------------------------- */

body .elementor-widget-container .dchf-simulator .dchf-file-item,
body .elementor .dchf-simulator .dchf-file-item,
body .dchf-simulator .dchf-file-item {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-3);
    padding: var(--dchf-space-3) var(--dchf-space-4);
    background-color: var(--dchf-color-white);
    border: 1px solid var(--dchf-color-border);
    animation: dchf-slide-up var(--dchf-duration-normal) var(--dchf-easing-out);
}

/**
 * File Item Icon
 * Purpose: Visual type indicator (PDF, image, generic file)
 * Uses line-style icons per DA guidelines
 */
body .elementor-widget-container .dchf-simulator .dchf-file-item__icon,
body .elementor .dchf-simulator .dchf-file-item__icon,
body .dchf-simulator .dchf-file-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-bg-alt);
    border-radius: var(--dchf-radius-sm);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__icon svg,
body .elementor .dchf-simulator .dchf-file-item__icon svg,
body .dchf-simulator .dchf-file-item__icon svg {
    width: 20px;
    height: 20px;
}

/**
 * File Item Info
 * Purpose: Contains name, size, status, and progress bar
 */
body .elementor-widget-container .dchf-simulator .dchf-file-item__info,
body .elementor .dchf-simulator .dchf-file-item__info,
body .dchf-simulator .dchf-file-item__info {
    flex: 1;
    min-width: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__name,
body .elementor .dchf-simulator .dchf-file-item__name,
body .dchf-simulator .dchf-file-item__name {
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__meta,
body .elementor .dchf-simulator .dchf-file-item__meta,
body .dchf-simulator .dchf-file-item__meta {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-2);
    margin-top: var(--dchf-space-1);
    font-size: var(--dchf-font-size-xs);
    color: var(--dchf-color-text-muted);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__size,
body .elementor .dchf-simulator .dchf-file-item__size,
body .dchf-simulator .dchf-file-item__size {
    color: var(--dchf-color-text-light);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__status,
body .elementor .dchf-simulator .dchf-file-item__status,
body .dchf-simulator .dchf-file-item__status {
    color: var(--dchf-color-text-muted);
}

/**
 * Progress Bar
 * Purpose: Visual feedback during upload
 * Animation: Width animates smoothly (150ms)
 */
body .elementor-widget-container .dchf-simulator .dchf-file-item__progress,
body .elementor .dchf-simulator .dchf-file-item__progress,
body .dchf-simulator .dchf-file-item__progress {
    position: relative;
    height: 3px;
    margin-top: var(--dchf-space-2);
    background-color: var(--dchf-color-border-light);
    overflow: hidden;
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__progress-bar,
body .elementor .dchf-simulator .dchf-file-item__progress-bar,
body .dchf-simulator .dchf-file-item__progress-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background-color: var(--dchf-color-petrol);
    transition: width var(--dchf-duration-fast) linear;
}

/**
 * Remove Button
 * Purpose: Delete action for uploaded files
 * UX: Ghost style per DA, subtle hover feedback
 */
body .elementor-widget-container .dchf-simulator .dchf-file-item__remove,
body .elementor .dchf-simulator .dchf-file-item__remove,
body .dchf-simulator .dchf-file-item__remove {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    color: var(--dchf-color-text-muted);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--dchf-radius-full);
    cursor: pointer;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__remove:hover,
body .elementor .dchf-simulator .dchf-file-item__remove:hover,
body .dchf-simulator .dchf-file-item__remove:hover {
    color: var(--dchf-color-error);
    background-color: var(--dchf-color-error-light);
    border-color: var(--dchf-color-error-light);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__remove:focus-visible,
body .elementor .dchf-simulator .dchf-file-item__remove:focus-visible,
body .dchf-simulator .dchf-file-item__remove:focus-visible {
    outline: var(--dchf-ring-width) solid var(--dchf-ring-color);
    outline-offset: var(--dchf-ring-offset);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item__remove svg,
body .elementor .dchf-simulator .dchf-file-item__remove svg,
body .dchf-simulator .dchf-file-item__remove svg {
    width: 16px;
    height: 16px;
}

/* --------------------------------------------------------------------------
   FILE ITEM STATES
   Purpose: Visual differentiation for upload status
   -------------------------------------------------------------------------- */

/**
 * Uploading State
 * Border indicates active process
 */
body .elementor-widget-container .dchf-simulator .dchf-file-item--uploading,
body .elementor .dchf-simulator .dchf-file-item--uploading,
body .dchf-simulator .dchf-file-item--uploading {
    border-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item--uploading .dchf-file-item__status,
body .elementor .dchf-simulator .dchf-file-item--uploading .dchf-file-item__status,
body .dchf-simulator .dchf-file-item--uploading .dchf-file-item__status {
    color: var(--dchf-color-petrol);
}

/**
 * Success State
 * Subtle green accent confirms completion
 */
body .elementor-widget-container .dchf-simulator .dchf-file-item--success,
body .elementor .dchf-simulator .dchf-file-item--success,
body .dchf-simulator .dchf-file-item--success {
    border-color: var(--dchf-color-success);
    background-color: var(--dchf-color-success-light);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item--success .dchf-file-item__icon,
body .elementor .dchf-simulator .dchf-file-item--success .dchf-file-item__icon,
body .dchf-simulator .dchf-file-item--success .dchf-file-item__icon {
    color: var(--dchf-color-success);
    background-color: var(--dchf-color-success-light);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item--success .dchf-file-item__status,
body .elementor .dchf-simulator .dchf-file-item--success .dchf-file-item__status,
body .dchf-simulator .dchf-file-item--success .dchf-file-item__status {
    color: var(--dchf-color-success);
}

/**
 * Error State
 * Red accent indicates failure
 */
body .elementor-widget-container .dchf-simulator .dchf-file-item--error,
body .elementor .dchf-simulator .dchf-file-item--error,
body .dchf-simulator .dchf-file-item--error {
    border-color: var(--dchf-color-error);
    background-color: var(--dchf-color-error-light);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item--error .dchf-file-item__icon,
body .elementor .dchf-simulator .dchf-file-item--error .dchf-file-item__icon,
body .dchf-simulator .dchf-file-item--error .dchf-file-item__icon {
    color: var(--dchf-color-error);
    background-color: var(--dchf-color-error-light);
}

body .elementor-widget-container .dchf-simulator .dchf-file-item--error .dchf-file-item__status,
body .elementor .dchf-simulator .dchf-file-item--error .dchf-file-item__status,
body .dchf-simulator .dchf-file-item--error .dchf-file-item__status {
    color: var(--dchf-color-error);
}

/**
 * Removing State (fade-out animation)
 * Animation: 300ms fade + scale down before DOM removal
 */
body .elementor-widget-container .dchf-simulator .dchf-file-item--removing,
body .elementor .dchf-simulator .dchf-file-item--removing,
body .dchf-simulator .dchf-file-item--removing {
    animation: dchf-file-item-remove var(--dchf-duration-normal) var(--dchf-easing-in) forwards;
}

@keyframes dchf-file-item-remove {
    0% {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateX(10px) scale(0.98);
        height: 0;
        padding-top: 0;
        padding-bottom: 0;
        margin-bottom: 0;
    }
}

/* --------------------------------------------------------------------------
   FILE UPLOADER ERROR MESSAGE
   Purpose: Global error display (max files, validation)
   -------------------------------------------------------------------------- */

body .elementor-widget-container .dchf-simulator .dchf-file-uploader__error,
body .elementor .dchf-simulator .dchf-file-uploader__error,
body .dchf-simulator .dchf-file-uploader__error {
    padding: var(--dchf-space-3) var(--dchf-space-4);
    margin-top: var(--dchf-space-3);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-error);
    background-color: var(--dchf-color-error-light);
    border-left: 2px solid var(--dchf-color-error);
    animation: dchf-fade-in var(--dchf-duration-fast) var(--dchf-easing-out);
}

/* ==========================================================================
   14. ANIMATIONS
   ========================================================================== */

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

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

@keyframes dchf-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    body .elementor-widget-container .dchf-simulator *,
    body .elementor .dchf-simulator *,
    body .dchf-simulator *,
    body .elementor-widget-container .dchf-simulator *::before,
    body .elementor .dchf-simulator *::before,
    body .dchf-simulator *::before,
    body .elementor-widget-container .dchf-simulator *::after,
    body .elementor .dchf-simulator *::after,
    body .dchf-simulator *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* ==========================================================================
   15. UTILITIES
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-hidden,
body .elementor .dchf-simulator .dchf-hidden,
body .dchf-simulator .dchf-hidden {
    display: none !important;
}

body .elementor-widget-container .dchf-simulator .dchf-sr-only,
body .elementor .dchf-simulator .dchf-sr-only,
body .dchf-simulator .dchf-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-text-center,
body .elementor .dchf-simulator .dchf-text-center,
body .dchf-simulator .dchf-text-center {
    text-align: center;
}

/* ==========================================================================
   STEP 2 - LOAN AMOUNT FIELDS (CHF/EUR)
   Modern currency input layout with inline suffix badges
   ========================================================================== */

/**
 * Amount Fields Container
 * Purpose: Creates a balanced horizontal layout with visual separator.
 * The flexbox layout ensures equal distribution of space.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-2__amount-fields,
body .elementor .dchf-simulator .dchf-step-2__amount-fields,
body .dchf-simulator .dchf-step-2__amount-fields {
    display: flex;
    align-items: flex-start;
    gap: var(--dchf-space-4);
    margin-bottom: var(--dchf-space-6);
}

/**
 * Individual Currency Field
 * Purpose: Container for label, input wrapper, and potential error message.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-2__field,
body .elementor .dchf-simulator .dchf-step-2__field,
body .dchf-simulator .dchf-step-2__field {
    flex: 1;
    min-width: 0;
}

/**
 * Input Wrapper with Currency Badge
 * Purpose: Contains the input and currency suffix as a unified element.
 * The relative positioning enables the absolute badge placement.
 */
body .elementor-widget-container .dchf-simulator .dchf-field__input-wrapper,
body .elementor .dchf-simulator .dchf-field__input-wrapper,
body .dchf-simulator .dchf-field__input-wrapper {
    position: relative;
    display: flex;
    align-items: stretch;
}

/**
 * Currency Input Field
 * Purpose: Text input for amount with right padding for currency badge.
 * The padding-right ensures text doesn't overlap with the badge.
 */
body .elementor-widget-container .dchf-simulator .dchf-field__input--currency,
body .elementor .dchf-simulator .dchf-field__input--currency,
body .dchf-simulator .dchf-field__input--currency {
    flex: 1;
    padding-right: var(--dchf-space-16);
    font-size: var(--dchf-font-size-xl);
    font-weight: var(--dchf-font-weight-medium);
    letter-spacing: 0.5px;
    text-align: left;
}

/**
 * Currency Badge
 * Purpose: Displays currency code (CHF/EUR) as an inline suffix.
 * Positioned absolutely within the input wrapper for clean alignment.
 * The badge provides immediate context without taking extra space.
 */
body .elementor-widget-container .dchf-simulator .dchf-field__currency-label,
body .elementor .dchf-simulator .dchf-field__currency-label,
body .dchf-simulator .dchf-field__currency-label {
    position: absolute;
    right: var(--dchf-space-4);
    top: 50%;
    transform: translateY(-50%);
    padding: var(--dchf-space-1) var(--dchf-space-3);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-bg-greige);
    border-radius: var(--dchf-radius-sm);
    letter-spacing: var(--dchf-letter-spacing-wide);
    pointer-events: none;
    user-select: none;
}

/**
 * "OU" Separator
 * Purpose: Visual divider indicating the exclusive OR between input options.
 * The horizontal lines create a clear visual break.
 * Timing: No animation needed - static element.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-2__separator,
body .elementor .dchf-simulator .dchf-step-2__separator,
body .dchf-simulator .dchf-step-2__separator {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 60px;
    padding-top: calc(var(--dchf-space-6) + 4px);
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__separator-text,
body .elementor .dchf-simulator .dchf-step-2__separator-text,
body .dchf-simulator .dchf-step-2__separator-text {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-xs);
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--dchf-letter-spacing-wider);
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__separator-text::before,
body .elementor .dchf-simulator .dchf-step-2__separator-text::before,
body .dchf-simulator .dchf-step-2__separator-text::before,
body .elementor-widget-container .dchf-simulator .dchf-step-2__separator-text::after,
body .elementor .dchf-simulator .dchf-step-2__separator-text::after,
body .dchf-simulator .dchf-step-2__separator-text::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 12px;
    height: 1px;
    background-color: var(--dchf-color-border);
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__separator-text::before,
body .elementor .dchf-simulator .dchf-step-2__separator-text::before,
body .dchf-simulator .dchf-step-2__separator-text::before {
    right: calc(100% + 6px);
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__separator-text::after,
body .elementor .dchf-simulator .dchf-step-2__separator-text::after,
body .dchf-simulator .dchf-step-2__separator-text::after {
    left: calc(100% + 6px);
}

/**
 * Conversion Display
 * Purpose: Shows the automatic conversion result with visual feedback.
 * Animation: Fade-in when value changes, providing immediate confirmation.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-2__conversion,
body .elementor .dchf-simulator .dchf-step-2__conversion,
body .dchf-simulator .dchf-step-2__conversion {
    margin-top: var(--dchf-space-4);
    padding: var(--dchf-space-4) var(--dchf-space-5);
    background-color: var(--dchf-color-info-light);
    border-left: 2px solid var(--dchf-color-petrol);
    animation: dchf-fade-in var(--dchf-duration-normal) var(--dchf-easing-out);
}

/* Respect hidden attribute */
body .elementor-widget-container .dchf-simulator .dchf-step-2__conversion[hidden],
body .elementor .dchf-simulator .dchf-step-2__conversion[hidden],
body .dchf-simulator .dchf-step-2__conversion[hidden] {
    display: none !important;
}

/* Override stagger animation - conversion appears dynamically */
body .elementor-widget-container .dchf-simulator .dchf-step--active .dchf-step-2__conversion:not([hidden]),
body .elementor .dchf-simulator .dchf-step--active .dchf-step-2__conversion:not([hidden]),
body .dchf-simulator .dchf-step--active .dchf-step-2__conversion:not([hidden]) {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__conversion-result,
body .elementor .dchf-simulator .dchf-step-2__conversion-result,
body .dchf-simulator .dchf-step-2__conversion-result {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-2);
    margin-bottom: var(--dchf-space-2);
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__conversion-icon,
body .elementor .dchf-simulator .dchf-step-2__conversion-icon,
body .dchf-simulator .dchf-step-2__conversion-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--dchf-color-petrol);
    flex-shrink: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__conversion-icon svg,
body .elementor .dchf-simulator .dchf-step-2__conversion-icon svg,
body .dchf-simulator .dchf-step-2__conversion-icon svg {
    width: 18px;
    height: 18px;
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__conversion-text,
body .elementor .dchf-simulator .dchf-step-2__conversion-text,
body .dchf-simulator .dchf-step-2__conversion-text {
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-lg);
    color: var(--dchf-color-text);
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__conversion-value,
body .elementor .dchf-simulator .dchf-step-2__conversion-value,
body .dchf-simulator .dchf-step-2__conversion-value {
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-2__conversion-rate,
body .elementor .dchf-simulator .dchf-step-2__conversion-rate,
body .dchf-simulator .dchf-step-2__conversion-rate {
    margin: 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
}

/* Fade-in animation for conversion display */
@keyframes dchf-fade-in {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   STEP 3 - LOAN TYPE (Amortizable / In Fine)
   ========================================================================== */

/**
 * Loan Type Radio Group
 * Purpose: Container for loan type selection cards
 */
body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-group,
body .elementor .dchf-simulator .dchf-step-3__radio-group,
body .dchf-simulator .dchf-step-3__radio-group {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-4);
    max-width: 500px;
    margin: 0 auto;
}

/**
 * Loan Type Radio Card
 */
body .elementor-widget-container .dchf-simulator .dchf-step-3__radio,
body .elementor .dchf-simulator .dchf-step-3__radio,
body .dchf-simulator .dchf-step-3__radio {
    display: block;
    cursor: pointer;
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-input,
body .elementor .dchf-simulator .dchf-step-3__radio-input,
body .dchf-simulator .dchf-step-3__radio-input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-box,
body .elementor .dchf-simulator .dchf-step-3__radio-box,
body .dchf-simulator .dchf-step-3__radio-box {
    display: flex;
    align-items: flex-start;
    gap: var(--dchf-space-4);
    padding: var(--dchf-space-5) var(--dchf-space-6);
    background-color: var(--dchf-color-white);
    border: 2px solid var(--dchf-color-border);
    border-radius: var(--dchf-radius-md);
    transition: all var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-box:hover,
body .elementor .dchf-simulator .dchf-step-3__radio-box:hover,
body .dchf-simulator .dchf-step-3__radio-box:hover {
    border-color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-bg-alt);
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box,
body .elementor .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box,
body .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box {
    border-color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-icon,
body .elementor .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-icon,
body .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-icon,
body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-title,
body .elementor .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-title,
body .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-title,
body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-description,
body .elementor .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-description,
body .dchf-simulator .dchf-step-3__radio-input:checked + .dchf-step-3__radio-box .dchf-step-3__radio-description {
    color: var(--dchf-color-text-inverse);
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-icon,
body .elementor .dchf-simulator .dchf-step-3__radio-icon,
body .dchf-simulator .dchf-step-3__radio-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--dchf-color-petrol);
    transition: color var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-icon svg,
body .elementor .dchf-simulator .dchf-step-3__radio-icon svg,
body .dchf-simulator .dchf-step-3__radio-icon svg {
    width: 28px;
    height: 28px;
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-content,
body .elementor .dchf-simulator .dchf-step-3__radio-content,
body .dchf-simulator .dchf-step-3__radio-content {
    flex: 1;
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-title,
body .elementor .dchf-simulator .dchf-step-3__radio-title,
body .dchf-simulator .dchf-step-3__radio-title {
    display: block;
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-lg);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
    margin-bottom: var(--dchf-space-1);
    transition: color var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__radio-description,
body .elementor .dchf-simulator .dchf-step-3__radio-description,
body .dchf-simulator .dchf-step-3__radio-description {
    display: block;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
    line-height: 1.5;
    transition: color var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-3__frequency-info,
body .elementor .dchf-simulator .dchf-step-3__frequency-info,
body .dchf-simulator .dchf-step-3__frequency-info {
    margin-top: 20px;
}

/* ==========================================================================
   STEP 4 - MONTHLY PAYMENT
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-step-4__frequency-info,
body .elementor .dchf-simulator .dchf-step-4__frequency-info,
body .dchf-simulator .dchf-step-4__frequency-info {
    margin-top: 20px;
}

/* ==========================================================================
   STEP 5 - LOAN STATUS (CRD Conversion Module)
   Capital Restant Dû with CHF/EUR conversion
   ========================================================================== */

/**
 * CRD Description
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__conditional-description,
body .elementor .dchf-simulator .dchf-step-4__conditional-description,
body .dchf-simulator .dchf-step-4__conditional-description {
    margin: 0 0 var(--dchf-space-4) 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
}

/**
 * CRD Fields Container - Vertical layout (column)
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-fields,
body .elementor .dchf-simulator .dchf-step-4__crd-fields,
body .dchf-simulator .dchf-step-4__crd-fields {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-2);
    margin-bottom: var(--dchf-space-4);
}

/**
 * Individual CRD Currency Field
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-fields .dchf-step-4__field,
body .elementor .dchf-simulator .dchf-step-4__crd-fields .dchf-step-4__field,
body .dchf-simulator .dchf-step-4__crd-fields .dchf-step-4__field {
    width: 100%;
}

/**
 * "OU" Separator - Horizontal line with text centered
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__separator,
body .elementor .dchf-simulator .dchf-step-4__separator,
body .dchf-simulator .dchf-step-4__separator {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: var(--dchf-space-3) 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__separator-text,
body .elementor .dchf-simulator .dchf-step-4__separator-text,
body .dchf-simulator .dchf-step-4__separator-text {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-xs);
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--dchf-letter-spacing-wider);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__separator-text::before,
body .elementor .dchf-simulator .dchf-step-4__separator-text::before,
body .dchf-simulator .dchf-step-4__separator-text::before,
body .elementor-widget-container .dchf-simulator .dchf-step-4__separator-text::after,
body .elementor .dchf-simulator .dchf-step-4__separator-text::after,
body .dchf-simulator .dchf-step-4__separator-text::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 40px;
    height: 1px;
    background-color: var(--dchf-color-border);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__separator-text::before,
body .elementor .dchf-simulator .dchf-step-4__separator-text::before,
body .dchf-simulator .dchf-step-4__separator-text::before {
    right: calc(100% + 8px);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__separator-text::after,
body .elementor .dchf-simulator .dchf-step-4__separator-text::after,
body .dchf-simulator .dchf-step-4__separator-text::after {
    left: calc(100% + 8px);
}

/**
 * CRD Conversion Display
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__conversion,
body .elementor .dchf-simulator .dchf-step-4__conversion,
body .dchf-simulator .dchf-step-4__conversion {
    margin-bottom: var(--dchf-space-4);
    padding: var(--dchf-space-4) var(--dchf-space-5);
    background-color: var(--dchf-color-info-light);
    border-left: 2px solid var(--dchf-color-petrol);
    animation: dchf-fade-in var(--dchf-duration-normal) var(--dchf-easing-out);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__conversion[hidden],
body .elementor .dchf-simulator .dchf-step-4__conversion[hidden],
body .dchf-simulator .dchf-step-4__conversion[hidden] {
    display: none !important;
}

body .elementor-widget-container .dchf-simulator .dchf-step--active .dchf-step-4__conversion:not([hidden]),
body .elementor .dchf-simulator .dchf-step--active .dchf-step-4__conversion:not([hidden]),
body .dchf-simulator .dchf-step--active .dchf-step-4__conversion:not([hidden]) {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__conversion-result,
body .elementor .dchf-simulator .dchf-step-4__conversion-result,
body .dchf-simulator .dchf-step-4__conversion-result {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-2);
    margin-bottom: var(--dchf-space-2);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__conversion-icon,
body .elementor .dchf-simulator .dchf-step-4__conversion-icon,
body .dchf-simulator .dchf-step-4__conversion-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--dchf-color-petrol);
    flex-shrink: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__conversion-icon svg,
body .elementor .dchf-simulator .dchf-step-4__conversion-icon svg,
body .dchf-simulator .dchf-step-4__conversion-icon svg {
    width: 18px;
    height: 18px;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__conversion-text,
body .elementor .dchf-simulator .dchf-step-4__conversion-text,
body .dchf-simulator .dchf-step-4__conversion-text {
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-lg);
    color: var(--dchf-color-text);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__conversion-value,
body .elementor .dchf-simulator .dchf-step-4__conversion-value,
body .dchf-simulator .dchf-step-4__conversion-value {
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__conversion-rate,
body .elementor .dchf-simulator .dchf-step-4__conversion-rate,
body .dchf-simulator .dchf-step-4__conversion-rate {
    margin: 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
}

/**
 * CRD Help Box
 * Purpose: Explains how to find CRD based on loan type (amortissable vs in fine)
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help,
body .elementor .dchf-simulator .dchf-step-4__crd-help,
body .dchf-simulator .dchf-step-4__crd-help {
    display: flex;
    gap: var(--dchf-space-3);
    margin-bottom: var(--dchf-space-5);
    padding: var(--dchf-space-4);
    background-color: var(--dchf-color-bg-greige-light);
    border-radius: var(--dchf-radius-md);
    border: 1px solid var(--dchf-color-border);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help-icon,
body .elementor .dchf-simulator .dchf-step-4__crd-help-icon,
body .dchf-simulator .dchf-step-4__crd-help-icon {
    flex-shrink: 0;
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help-icon svg,
body .elementor .dchf-simulator .dchf-step-4__crd-help-icon svg,
body .dchf-simulator .dchf-step-4__crd-help-icon svg {
    width: 20px;
    height: 20px;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help-content,
body .elementor .dchf-simulator .dchf-step-4__crd-help-content,
body .dchf-simulator .dchf-step-4__crd-help-content {
    flex: 1;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help-title,
body .elementor .dchf-simulator .dchf-step-4__crd-help-title,
body .dchf-simulator .dchf-step-4__crd-help-title {
    margin: 0 0 var(--dchf-space-2) 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help-list,
body .elementor .dchf-simulator .dchf-step-4__crd-help-list,
body .dchf-simulator .dchf-step-4__crd-help-list {
    margin: 0;
    padding: 0 0 0 var(--dchf-space-4);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text);
    line-height: 1.6;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help-list li,
body .elementor .dchf-simulator .dchf-step-4__crd-help-list li,
body .dchf-simulator .dchf-step-4__crd-help-list li {
    margin-bottom: var(--dchf-space-2);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help-list li:last-child,
body .elementor .dchf-simulator .dchf-step-4__crd-help-list li:last-child,
body .dchf-simulator .dchf-step-4__crd-help-list li:last-child {
    margin-bottom: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__crd-help-list strong,
body .elementor .dchf-simulator .dchf-step-4__crd-help-list strong,
body .dchf-simulator .dchf-step-4__crd-help-list strong {
    color: var(--dchf-color-petrol);
}

/* ==========================================================================
   STEP 5 - EARLY REPAYMENTS
   Optional step for adding prepayment records
   ========================================================================== */

/**
 * Repayments Container
 * Purpose: Extends the base fields container for repayment-specific layout.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__repayments,
body .elementor .dchf-simulator .dchf-step-5__repayments,
body .dchf-simulator .dchf-step-5__repayments {
    max-width: 520px;
}

/**
 * Repayments List
 * Purpose: Container for dynamic repayment rows with consistent spacing.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__list,
body .elementor .dchf-simulator .dchf-step-5__list,
body .dchf-simulator .dchf-step-5__list {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-3);
    margin-bottom: var(--dchf-space-4);
}

/**
 * Repayment Row
 * Purpose: Individual repayment entry with fields and delete action.
 * Layout: Horizontal on desktop, maintains alignment on mobile via horizontal scroll.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__row,
body .elementor .dchf-simulator .dchf-step-5__row,
body .dchf-simulator .dchf-step-5__row {
    display: flex;
    align-items: flex-start;
    gap: var(--dchf-space-3);
    padding: var(--dchf-space-4);
    background-color: var(--dchf-color-bg-alt);
    border-radius: var(--dchf-radius-md);
    animation: dchf-fade-in var(--dchf-duration-normal) var(--dchf-easing-out);
}

/**
 * Row Fields Container
 * Purpose: Groups the three input fields (month, year, amount) horizontally.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__row-fields,
body .elementor .dchf-simulator .dchf-step-5__row-fields,
body .dchf-simulator .dchf-step-5__row-fields {
    display: flex;
    align-items: flex-start;
    gap: var(--dchf-space-3);
    flex: 1;
    min-width: 0;
}

/**
 * Individual Field
 * Purpose: Container for select/input with proper sizing.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__field,
body .elementor .dchf-simulator .dchf-step-5__field,
body .dchf-simulator .dchf-step-5__field {
    flex: 1;
    min-width: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__field--month,
body .elementor .dchf-simulator .dchf-step-5__field--month,
body .dchf-simulator .dchf-step-5__field--month {
    flex: 1.2;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__field--year,
body .elementor .dchf-simulator .dchf-step-5__field--year,
body .dchf-simulator .dchf-step-5__field--year {
    flex: 0.8;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__field--amount,
body .elementor .dchf-simulator .dchf-step-5__field--amount,
body .dchf-simulator .dchf-step-5__field--amount {
    flex: 1.5;
}

/**
 * Select Fields (Month/Year)
 * Purpose: Styled selects matching the design system.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__select-month,
body .elementor .dchf-simulator .dchf-step-5__select-month,
body .dchf-simulator .dchf-step-5__select-month,
body .elementor-widget-container .dchf-simulator .dchf-step-5__select-year,
body .elementor .dchf-simulator .dchf-step-5__select-year,
body .dchf-simulator .dchf-step-5__select-year {
    width: 100%;
    min-height: var(--dchf-input-height-sm);
    padding: var(--dchf-space-3) var(--dchf-space-4);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text);
    background-color: var(--dchf-color-white);
    border: 1px solid var(--dchf-color-border);
    border-radius: var(--dchf-radius-md);
    cursor: pointer;
    transition: border-color var(--dchf-duration-fast) var(--dchf-easing-default);
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235C5C57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--dchf-space-3) center;
    padding-right: var(--dchf-space-8);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__select-month:hover,
body .elementor .dchf-simulator .dchf-step-5__select-month:hover,
body .dchf-simulator .dchf-step-5__select-month:hover,
body .elementor-widget-container .dchf-simulator .dchf-step-5__select-year:hover,
body .elementor .dchf-simulator .dchf-step-5__select-year:hover,
body .dchf-simulator .dchf-step-5__select-year:hover {
    border-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__select-month:focus,
body .elementor .dchf-simulator .dchf-step-5__select-month:focus,
body .dchf-simulator .dchf-step-5__select-month:focus,
body .elementor-widget-container .dchf-simulator .dchf-step-5__select-year:focus,
body .elementor .dchf-simulator .dchf-step-5__select-year:focus,
body .dchf-simulator .dchf-step-5__select-year:focus {
    outline: none;
    border-color: var(--dchf-color-petrol);
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

/**
 * Amount Input
 * Purpose: Currency input with EUR suffix badge.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__input-amount,
body .elementor .dchf-simulator .dchf-step-5__input-amount,
body .dchf-simulator .dchf-step-5__input-amount {
    width: 100%;
    min-height: var(--dchf-input-height-sm);
    padding: var(--dchf-space-3) var(--dchf-space-12) var(--dchf-space-3) var(--dchf-space-4);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text);
    background-color: var(--dchf-color-white);
    border: 1px solid var(--dchf-color-border);
    border-radius: var(--dchf-radius-md);
    transition: border-color var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__input-amount:hover,
body .elementor .dchf-simulator .dchf-step-5__input-amount:hover,
body .dchf-simulator .dchf-step-5__input-amount:hover {
    border-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__input-amount:focus,
body .elementor .dchf-simulator .dchf-step-5__input-amount:focus,
body .dchf-simulator .dchf-step-5__input-amount:focus {
    outline: none;
    border-color: var(--dchf-color-petrol);
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

/**
 * Amount Wrapper with Currency Selector
 * Purpose: Contains amount input and currency dropdown side by side.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__amount-wrapper,
body .elementor .dchf-simulator .dchf-step-5__amount-wrapper,
body .dchf-simulator .dchf-step-5__amount-wrapper {
    display: flex;
    align-items: stretch;
    position: relative;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__amount-wrapper .dchf-step-5__input-amount,
body .elementor .dchf-simulator .dchf-step-5__amount-wrapper .dchf-step-5__input-amount,
body .dchf-simulator .dchf-step-5__amount-wrapper .dchf-step-5__input-amount {
    flex: 1;
    min-width: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-right: none;
    padding-right: var(--dchf-space-3);
}

/**
 * Currency Select Dropdown
 * Purpose: Allows user to choose EUR or CHF for each repayment.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__currency-select,
body .elementor .dchf-simulator .dchf-step-5__currency-select,
body .dchf-simulator .dchf-step-5__currency-select {
    flex-shrink: 0;
    width: auto;
    min-width: 70px;
    min-height: var(--dchf-input-height-sm);
    padding: var(--dchf-space-2) var(--dchf-space-6) var(--dchf-space-2) var(--dchf-space-3);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-info-light);
    border: 1px solid var(--dchf-color-border);
    border-left: none;
    border-top-right-radius: var(--dchf-radius-md);
    border-bottom-right-radius: var(--dchf-radius-md);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23006B7F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--dchf-space-2) center;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__currency-select:hover,
body .elementor .dchf-simulator .dchf-step-5__currency-select:hover,
body .dchf-simulator .dchf-step-5__currency-select:hover {
    background-color: var(--dchf-color-petrol-light);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__currency-select:focus,
body .elementor .dchf-simulator .dchf-step-5__currency-select:focus,
body .dchf-simulator .dchf-step-5__currency-select:focus {
    outline: none;
    border-color: var(--dchf-color-petrol);
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__currency-select option,
body .elementor .dchf-simulator .dchf-step-5__currency-select option,
body .dchf-simulator .dchf-step-5__currency-select option {
    background-color: #ffffff;
    color: var(--dchf-color-petrol);
}

/**
 * Row Conversion Display
 * Purpose: Shows the converted EUR amount when user enters CHF.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__row-conversion,
body .elementor .dchf-simulator .dchf-step-5__row-conversion,
body .dchf-simulator .dchf-step-5__row-conversion {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-2);
    width: 100%;
    margin-top: var(--dchf-space-2);
    padding: var(--dchf-space-2) var(--dchf-space-3);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-xs);
    color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-info-light);
    border-radius: var(--dchf-radius-sm);
    animation: dchf-fade-in var(--dchf-duration-fast) var(--dchf-easing-out);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__row-conversion[hidden],
body .elementor .dchf-simulator .dchf-step-5__row-conversion[hidden],
body .dchf-simulator .dchf-step-5__row-conversion[hidden] {
    display: none;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__conversion-icon,
body .elementor .dchf-simulator .dchf-step-5__conversion-icon,
body .dchf-simulator .dchf-step-5__conversion-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__conversion-icon svg,
body .elementor .dchf-simulator .dchf-step-5__conversion-icon svg,
body .dchf-simulator .dchf-step-5__conversion-icon svg {
    width: 14px;
    height: 14px;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__conversion-text,
body .elementor .dchf-simulator .dchf-step-5__conversion-text,
body .dchf-simulator .dchf-step-5__conversion-text {
    font-weight: var(--dchf-font-weight-medium);
}

/**
 * Remove Button
 * Purpose: Delete action for repayment row.
 * Design: Subtle circular button that becomes prominent on hover.
 * Timing: 150ms fast transition for immediate feedback.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__remove-btn,
body .elementor .dchf-simulator .dchf-step-5__remove-btn,
body .dchf-simulator .dchf-step-5__remove-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    margin-top: 4px;
    padding: 0;
    color: var(--dchf-color-text-muted);
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: var(--dchf-radius-full);
    cursor: pointer;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__remove-btn:hover,
body .elementor .dchf-simulator .dchf-step-5__remove-btn:hover,
body .dchf-simulator .dchf-step-5__remove-btn:hover {
    color: var(--dchf-color-error);
    background-color: var(--dchf-color-error-light);
    border-color: var(--dchf-color-error);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__remove-btn:focus-visible,
body .elementor .dchf-simulator .dchf-step-5__remove-btn:focus-visible,
body .dchf-simulator .dchf-step-5__remove-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--dchf-ring-width) rgba(169, 68, 66, 0.3);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__remove-btn svg,
body .elementor .dchf-simulator .dchf-step-5__remove-btn svg,
body .dchf-simulator .dchf-step-5__remove-btn svg {
    width: 18px;
    height: 18px;
}

/**
 * Add Repayment Button
 * Purpose: CTA to add new repayment entry.
 * Design: Ghost/outline style pillule per DA - transparent bg, fine border, black text.
 * Hover: Inverts to filled black with white text.
 * Timing: 250ms normal transition for deliberate feel.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__add-btn,
body .elementor .dchf-simulator .dchf-step-5__add-btn,
body .dchf-simulator .dchf-step-5__add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-2);
    width: 100%;
    min-height: var(--dchf-button-height);
    padding: var(--dchf-space-4) var(--dchf-space-6);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
    color: var(--dchf-color-charbon);
    background-color: transparent;
    border: 1px solid var(--dchf-color-charbon);
    border-radius: var(--dchf-radius-full);
    cursor: pointer;
    transition: all var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__add-btn:hover,
body .elementor .dchf-simulator .dchf-step-5__add-btn:hover,
body .dchf-simulator .dchf-step-5__add-btn:hover {
    color: var(--dchf-color-text-inverse);
    background-color: var(--dchf-color-charbon);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__add-btn:focus-visible,
body .elementor .dchf-simulator .dchf-step-5__add-btn:focus-visible,
body .dchf-simulator .dchf-step-5__add-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__add-icon,
body .elementor .dchf-simulator .dchf-step-5__add-icon,
body .dchf-simulator .dchf-step-5__add-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__add-icon svg,
body .elementor .dchf-simulator .dchf-step-5__add-icon svg,
body .dchf-simulator .dchf-step-5__add-icon svg {
    width: 18px;
    height: 18px;
}

/**
 * Skip Step Section
 * Purpose: Container for optional skip action.
 * Design: Centered, generous spacing above and below.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__skip,
body .elementor .dchf-simulator .dchf-step-5__skip,
body .dchf-simulator .dchf-step-5__skip {
    margin-top: var(--dchf-space-6);
    text-align: center;
}

/**
 * Skip Button
 * Purpose: Ghost/Outline button to bypass optional step.
 * Design per DA: Pillule shape, transparent bg, 1px black border.
 * Hover: black bg, white text.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__skip-btn,
body .elementor .dchf-simulator .dchf-step-5__skip-btn,
body .dchf-simulator .dchf-step-5__skip-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: var(--dchf-space-4) var(--dchf-space-8);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    font-weight: var(--dchf-font-weight-semibold);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: none;
    text-decoration: none;
    color: #1A1A1A;
    background-color: transparent;
    border: 2px solid #1A1A1A;
    border-radius: 50px;
    cursor: pointer;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__skip-btn:hover,
body .elementor .dchf-simulator .dchf-step-5__skip-btn:hover,
body .dchf-simulator .dchf-step-5__skip-btn:hover {
    color: #FFFFFF;
    background-color: #1A1A1A;
    border-color: #1A1A1A;
    text-decoration: none;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__skip-btn:focus-visible,
body .elementor .dchf-simulator .dchf-step-5__skip-btn:focus-visible,
body .dchf-simulator .dchf-step-5__skip-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

/**
 * Step 5 Hint Override
 * Purpose: Informational note with bleu petrole border per DA.
 * The base .dchf-step__hint already has correct styling with petrole border.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__hint,
body .elementor .dchf-simulator .dchf-step-5__hint,
body .dchf-simulator .dchf-step-5__hint {
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

/**
 * Empty State
 * Purpose: Visual placeholder when no repayments exist.
 * UX: Guides user understanding of what this step is for.
 * Animation: Fade out when first repayment is added.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__empty,
body .elementor .dchf-simulator .dchf-step-5__empty,
body .dchf-simulator .dchf-step-5__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--dchf-space-8) var(--dchf-space-4);
    margin-bottom: var(--dchf-space-6);
    text-align: center;
    background-color: var(--dchf-color-bg-alt);
    border: 2px dashed var(--dchf-color-border);
    border-radius: var(--dchf-radius-lg);
    transition: opacity var(--dchf-duration-normal) var(--dchf-easing-out),
                transform var(--dchf-duration-normal) var(--dchf-easing-out);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__empty[hidden],
body .elementor .dchf-simulator .dchf-step-5__empty[hidden],
body .dchf-simulator .dchf-step-5__empty[hidden] {
    display: none;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__empty-icon,
body .elementor .dchf-simulator .dchf-step-5__empty-icon,
body .dchf-simulator .dchf-step-5__empty-icon {
    color: var(--dchf-color-text-light);
    margin-bottom: var(--dchf-space-4);
    opacity: 0.6;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__empty-text,
body .elementor .dchf-simulator .dchf-step-5__empty-text,
body .dchf-simulator .dchf-step-5__empty-text {
    margin: 0 0 var(--dchf-space-2) 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text-muted);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__empty-hint,
body .elementor .dchf-simulator .dchf-step-5__empty-hint,
body .dchf-simulator .dchf-step-5__empty-hint {
    margin: 0;
    max-width: 320px;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    line-height: var(--dchf-line-height-relaxed);
    color: var(--dchf-color-text-light);
}

/**
 * Actions Section (replaces skip-only container)
 * Purpose: Clearer hierarchy for the skip action.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__actions,
body .elementor .dchf-simulator .dchf-step-5__actions,
body .dchf-simulator .dchf-step-5__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--dchf-space-4);
    margin-top: var(--dchf-space-6);
}

/**
 * Continue Button (Step 5)
 * Purpose: Primary CTA to proceed after adding repayments.
 * Design per DA: Pillule shape, filled petrol bg, white text.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__continue-btn,
body .elementor .dchf-simulator .dchf-step-5__continue-btn,
body .dchf-simulator .dchf-step-5__continue-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-2);
    min-height: 52px;
    padding: var(--dchf-space-4) var(--dchf-space-8);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    font-weight: var(--dchf-font-weight-semibold);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: none;
    text-decoration: none;
    color: var(--dchf-color-white);
    background-color: var(--dchf-color-petrol);
    border: 2px solid var(--dchf-color-petrol);
    border-radius: 50px;
    cursor: pointer;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__continue-btn:hover,
body .elementor .dchf-simulator .dchf-step-5__continue-btn:hover,
body .dchf-simulator .dchf-step-5__continue-btn:hover {
    background-color: var(--dchf-color-petrol-hover);
    border-color: var(--dchf-color-petrol-hover);
    text-decoration: none;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__continue-btn:focus-visible,
body .elementor .dchf-simulator .dchf-step-5__continue-btn:focus-visible,
body .dchf-simulator .dchf-step-5__continue-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__continue-btn[hidden],
body .elementor .dchf-simulator .dchf-step-5__continue-btn[hidden],
body .dchf-simulator .dchf-step-5__continue-btn[hidden] {
    display: none;
}

/**
 * Repayment Row Animation States
 * Purpose: Smooth entry/exit animations for list items.
 * UX: Maintains spatial continuity when items are added/removed.
 */
@keyframes dchf-row-enter {
    from {
        opacity: 0;
        transform: translateY(-12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes dchf-row-exit {
    from {
        opacity: 1;
        transform: translateY(0);
        max-height: 100px;
    }
    to {
        opacity: 0;
        transform: translateY(-8px);
        max-height: 0;
        margin-bottom: 0;
        padding: 0;
    }
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__row,
body .elementor .dchf-simulator .dchf-step-5__row,
body .dchf-simulator .dchf-step-5__row {
    animation: dchf-row-enter var(--dchf-duration-normal) var(--dchf-easing-out) forwards;
}

body .elementor-widget-container .dchf-simulator .dchf-step-5__row.dchf-row--removing,
body .elementor .dchf-simulator .dchf-step-5__row.dchf-row--removing,
body .dchf-simulator .dchf-step-5__row.dchf-row--removing {
    animation: dchf-row-exit var(--dchf-duration-fast) var(--dchf-easing-in) forwards;
    pointer-events: none;
}

/**
 * Field validation states for Step 5
 * Purpose: Visual feedback for incomplete fields.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-5__row .dchf-field__select--error,
body .elementor .dchf-simulator .dchf-step-5__row .dchf-field__select--error,
body .dchf-simulator .dchf-step-5__row .dchf-field__select--error,
body .elementor-widget-container .dchf-simulator .dchf-step-5__row .dchf-field__input--error,
body .elementor .dchf-simulator .dchf-step-5__row .dchf-field__input--error,
body .dchf-simulator .dchf-step-5__row .dchf-field__input--error {
    border-color: var(--dchf-color-error);
    background-color: var(--dchf-color-error-light);
}

/* ==========================================================================
   16. RESPONSIVE
   ========================================================================== */

@media (max-width: 639px) {
    body .elementor-widget-container .dchf-simulator .dchf-container,
    body .elementor .dchf-simulator .dchf-container,
    body .dchf-simulator .dchf-container {
        padding: var(--dchf-space-6) var(--dchf-space-4);
        min-height: auto;
    }

    body .elementor-widget-container .dchf-simulator .dchf-header__title,
    body .elementor .dchf-simulator .dchf-header__title,
    body .dchf-simulator .dchf-header__title {
        font-size: var(--dchf-font-size-2xl);
    }

    body .elementor-widget-container .dchf-simulator .dchf-step__question,
    body .elementor .dchf-simulator .dchf-step__question,
    body .dchf-simulator .dchf-step__question {
        font-size: var(--dchf-font-size-xl);
    }

    /* Step 2 - Responsive layout for currency fields */
    body .elementor-widget-container .dchf-simulator .dchf-step-2__amount-fields,
    body .elementor .dchf-simulator .dchf-step-2__amount-fields,
    body .dchf-simulator .dchf-step-2__amount-fields {
        flex-direction: column;
        gap: var(--dchf-space-2);
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-2__separator,
    body .elementor .dchf-simulator .dchf-step-2__separator,
    body .dchf-simulator .dchf-step-2__separator {
        width: 100%;
        padding: var(--dchf-space-3) 0;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-2__separator-text::before,
    body .elementor .dchf-simulator .dchf-step-2__separator-text::before,
    body .dchf-simulator .dchf-step-2__separator-text::before,
    body .elementor-widget-container .dchf-simulator .dchf-step-2__separator-text::after,
    body .elementor .dchf-simulator .dchf-step-2__separator-text::after,
    body .dchf-simulator .dchf-step-2__separator-text::after {
        width: 40px;
    }

    body .elementor-widget-container .dchf-simulator .dchf-field__input--currency,
    body .elementor .dchf-simulator .dchf-field__input--currency,
    body .dchf-simulator .dchf-field__input--currency {
        font-size: var(--dchf-font-size-lg);
    }

    body .elementor-widget-container .dchf-simulator .dchf-navigation,
    body .elementor .dchf-simulator .dchf-navigation,
    body .dchf-simulator .dchf-navigation {
        flex-direction: column;
    }

    body .elementor-widget-container .dchf-simulator .dchf-navigation .dchf-btn,
    body .elementor .dchf-simulator .dchf-navigation .dchf-btn,
    body .dchf-simulator .dchf-navigation .dchf-btn {
        width: 100%;
    }

    body .elementor-widget-container .dchf-simulator .dchf-form-row,
    body .elementor .dchf-simulator .dchf-form-row,
    body .dchf-simulator .dchf-form-row {
        grid-template-columns: 1fr !important;
        gap: var(--dchf-space-6) !important;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__form-grid,
    body .elementor .dchf-simulator .dchf-step-0__form-grid,
    body .dchf-simulator .dchf-step-0__form-grid {
        grid-template-columns: 1fr !important;
        gap: var(--dchf-space-6) !important;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__form-actions,
    body .elementor .dchf-simulator .dchf-step-0__form-actions,
    body .dchf-simulator .dchf-step-0__form-actions {
        flex-direction: column;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__form-actions .dchf-btn,
    body .elementor .dchf-simulator .dchf-step-0__form-actions .dchf-btn,
    body .dchf-simulator .dchf-step-0__form-actions .dchf-btn {
        width: 100%;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step--contact .dchf-step__content,
    body .elementor .dchf-simulator .dchf-step--contact .dchf-step__content,
    body .dchf-simulator .dchf-step--contact .dchf-step__content {
        max-width: 100%;
    }

    body .elementor-widget-container .dchf-simulator .dchf-divider,
    body .elementor .dchf-simulator .dchf-divider,
    body .dchf-simulator .dchf-divider {
        margin: var(--dchf-space-8) 0;
    }

    /* File Uploader - Mobile optimizations */
    body .elementor-widget-container .dchf-simulator .dchf-dropzone,
    body .elementor .dchf-simulator .dchf-dropzone,
    body .dchf-simulator .dchf-dropzone {
        padding: var(--dchf-space-6) var(--dchf-space-4);
    }

    body .elementor-widget-container .dchf-simulator .dchf-dropzone__title,
    body .elementor .dchf-simulator .dchf-dropzone__title,
    body .dchf-simulator .dchf-dropzone__title {
        font-size: var(--dchf-font-size-base);
    }

    body .elementor-widget-container .dchf-simulator .dchf-dropzone__info,
    body .elementor .dchf-simulator .dchf-dropzone__info,
    body .dchf-simulator .dchf-dropzone__info {
        flex-direction: column;
        gap: var(--dchf-space-1);
    }

    body .elementor-widget-container .dchf-simulator .dchf-dropzone__separator,
    body .elementor .dchf-simulator .dchf-dropzone__separator,
    body .dchf-simulator .dchf-dropzone__separator {
        display: none;
    }

    body .elementor-widget-container .dchf-simulator .dchf-file-item,
    body .elementor .dchf-simulator .dchf-file-item,
    body .dchf-simulator .dchf-file-item {
        padding: var(--dchf-space-3);
    }

    body .elementor-widget-container .dchf-simulator .dchf-file-item__icon,
    body .elementor .dchf-simulator .dchf-file-item__icon,
    body .dchf-simulator .dchf-file-item__icon {
        width: 36px;
        height: 36px;
    }

    body .elementor-widget-container .dchf-simulator .dchf-file-item__icon svg,
    body .elementor .dchf-simulator .dchf-file-item__icon svg,
    body .dchf-simulator .dchf-file-item__icon svg {
        width: 18px;
        height: 18px;
    }

    body .elementor-widget-container .dchf-simulator .dchf-file-item__name,
    body .elementor .dchf-simulator .dchf-file-item__name,
    body .dchf-simulator .dchf-file-item__name {
        font-size: var(--dchf-font-size-xs);
    }

    /* Results - Mobile optimizations */
    body .elementor-widget-container .dchf-simulator .dchf-results,
    body .elementor .dchf-simulator .dchf-results,
    body .dchf-simulator .dchf-results {
        max-width: 100%;
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__hero,
    body .elementor .dchf-simulator .dchf-results__hero,
    body .dchf-simulator .dchf-results__hero {
        padding: var(--dchf-space-8) var(--dchf-space-5);
        margin-bottom: var(--dchf-space-8);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__hero::before,
    body .elementor .dchf-simulator .dchf-results__hero::before,
    body .dchf-simulator .dchf-results__hero::before {
        left: var(--dchf-space-5);
        right: var(--dchf-space-5);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__label,
    body .elementor .dchf-simulator .dchf-results__label,
    body .dchf-simulator .dchf-results__label {
        font-size: 10px;
        letter-spacing: 0.12em;
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__message,
    body .elementor .dchf-simulator .dchf-results__message,
    body .dchf-simulator .dchf-results__message {
        padding: 0;
        font-size: var(--dchf-font-size-base);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__details summary,
    body .elementor .dchf-simulator .dchf-results__details summary,
    body .dchf-simulator .dchf-results__details summary {
        padding: var(--dchf-space-3) var(--dchf-space-5);
        font-size: 10px;
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__details-content,
    body .elementor .dchf-simulator .dchf-results__details-content,
    body .dchf-simulator .dchf-results__details-content {
        padding: var(--dchf-space-4);
    }

    body .elementor-widget-container .dchf-simulator .dchf-details-section--result,
    body .elementor .dchf-simulator .dchf-details-section--result,
    body .dchf-simulator .dchf-details-section--result {
        padding: var(--dchf-space-5) var(--dchf-space-4) var(--dchf-space-4);
        margin: var(--dchf-space-4) calc(-1 * var(--dchf-space-4)) calc(-1 * var(--dchf-space-4));
    }

    body .elementor-widget-container .dchf-simulator .dchf-details-section--result::before,
    body .elementor .dchf-simulator .dchf-details-section--result::before,
    body .dchf-simulator .dchf-details-section--result::before {
        left: var(--dchf-space-4);
        right: var(--dchf-space-4);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__explanation,
    body .elementor .dchf-simulator .dchf-results__explanation,
    body .dchf-simulator .dchf-results__explanation {
        max-width: 100%;
        padding: var(--dchf-space-4);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__warning,
    body .elementor .dchf-simulator .dchf-results__warning,
    body .dchf-simulator .dchf-results__warning {
        max-width: 100%;
        padding: var(--dchf-space-4);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__cta--primary,
    body .elementor .dchf-simulator .dchf-results__cta--primary,
    body .dchf-simulator .dchf-results__cta--primary {
        margin-bottom: var(--dchf-space-8);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__cta--secondary,
    body .elementor .dchf-simulator .dchf-results__cta--secondary,
    body .dchf-simulator .dchf-results__cta--secondary {
        padding-top: var(--dchf-space-8);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results__cta-text,
    body .elementor .dchf-simulator .dchf-results__cta-text,
    body .dchf-simulator .dchf-results__cta-text {
        font-size: var(--dchf-font-size-lg);
    }

    body .elementor-widget-container .dchf-simulator .dchf-results .dchf-btn--large,
    body .elementor .dchf-simulator .dchf-results .dchf-btn--large,
    body .dchf-simulator .dchf-results .dchf-btn--large {
        width: 100%;
        padding: var(--dchf-space-4) var(--dchf-space-6);
        font-size: var(--dchf-font-size-sm);
    }

    /* Step 0 - Mobile: Full responsive layout for choice cards */
    body .elementor-widget-container .dchf-simulator .dchf-step-0__choices,
    body .elementor .dchf-simulator .dchf-step-0__choices,
    body .dchf-simulator .dchf-step-0__choices {
        max-width: 100%;
        width: 100%;
        gap: var(--dchf-space-3);
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__card,
    body .elementor .dchf-simulator .dchf-step-0__card,
    body .dchf-simulator .dchf-step-0__card {
        padding: var(--dchf-space-3) var(--dchf-space-4);
        gap: var(--dchf-space-3);
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__card-icon,
    body .elementor .dchf-simulator .dchf-step-0__card-icon,
    body .dchf-simulator .dchf-step-0__card-icon {
        width: 32px;
        height: 32px;
        flex-shrink: 0;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__card-icon svg,
    body .elementor .dchf-simulator .dchf-step-0__card-icon svg,
    body .dchf-simulator .dchf-step-0__card-icon svg {
        width: 24px;
        height: 24px;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__card-content,
    body .elementor .dchf-simulator .dchf-step-0__card-content,
    body .dchf-simulator .dchf-step-0__card-content {
        flex: 1;
        min-width: 0;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__card-title,
    body .elementor .dchf-simulator .dchf-step-0__card-title,
    body .dchf-simulator .dchf-step-0__card-title {
        font-size: var(--dchf-font-size-base);
        word-wrap: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
        line-height: 1.3;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__card-desc,
    body .elementor .dchf-simulator .dchf-step-0__card-desc,
    body .dchf-simulator .dchf-step-0__card-desc {
        font-size: var(--dchf-font-size-xs);
        word-wrap: break-word;
        overflow-wrap: break-word;
        line-height: 1.4;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__card-arrow,
    body .elementor .dchf-simulator .dchf-step-0__card-arrow,
    body .dchf-simulator .dchf-step-0__card-arrow {
        width: 16px;
        height: 16px;
        flex-shrink: 0;
        opacity: 1;
        transform: none;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__divider,
    body .elementor .dchf-simulator .dchf-step-0__divider,
    body .dchf-simulator .dchf-step-0__divider {
        gap: var(--dchf-space-3);
        font-size: 10px;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-0__badge,
    body .elementor .dchf-simulator .dchf-step-0__badge,
    body .dchf-simulator .dchf-step-0__badge {
        padding: var(--dchf-space-1) var(--dchf-space-3);
        font-size: 10px;
    }

    /* Step 5 - Mobile: Stacked layout for repayment rows (better UX than horizontal scroll) */
    body .elementor-widget-container .dchf-simulator .dchf-step-5__repayments,
    body .elementor .dchf-simulator .dchf-step-5__repayments,
    body .dchf-simulator .dchf-step-5__repayments {
        max-width: 100%;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-5__row,
    body .elementor .dchf-simulator .dchf-step-5__row,
    body .dchf-simulator .dchf-step-5__row {
        flex-wrap: wrap;
        position: relative;
        padding-right: var(--dchf-space-10);
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-5__row-fields,
    body .elementor .dchf-simulator .dchf-step-5__row-fields,
    body .dchf-simulator .dchf-step-5__row-fields {
        flex-wrap: wrap;
        width: 100%;
        min-width: 0;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-5__field--month,
    body .elementor .dchf-simulator .dchf-step-5__field--month,
    body .dchf-simulator .dchf-step-5__field--month,
    body .elementor-widget-container .dchf-simulator .dchf-step-5__field--year,
    body .elementor .dchf-simulator .dchf-step-5__field--year,
    body .dchf-simulator .dchf-step-5__field--year {
        flex: 1 1 calc(50% - var(--dchf-space-2));
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-5__field--amount,
    body .elementor .dchf-simulator .dchf-step-5__field--amount,
    body .dchf-simulator .dchf-step-5__field--amount {
        flex: 1 1 100%;
        margin-top: var(--dchf-space-2);
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-5__remove-btn,
    body .elementor .dchf-simulator .dchf-step-5__remove-btn,
    body .dchf-simulator .dchf-step-5__remove-btn {
        position: absolute;
        top: var(--dchf-space-3);
        right: var(--dchf-space-3);
        margin-top: 0;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-5__hint,
    body .elementor .dchf-simulator .dchf-step-5__hint,
    body .dchf-simulator .dchf-step-5__hint {
        max-width: 100%;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-5__empty,
    body .elementor .dchf-simulator .dchf-step-5__empty,
    body .dchf-simulator .dchf-step-5__empty {
        padding: var(--dchf-space-6) var(--dchf-space-4);
    }

    /* Currency selector on mobile - slightly smaller but still usable */
    body .elementor-widget-container .dchf-simulator .dchf-step-5__currency-select,
    body .elementor .dchf-simulator .dchf-step-5__currency-select,
    body .dchf-simulator .dchf-step-5__currency-select {
        min-width: 65px;
        padding: var(--dchf-space-2) var(--dchf-space-5) var(--dchf-space-2) var(--dchf-space-2);
    }

    /* Conversion display on mobile */
    body .elementor-widget-container .dchf-simulator .dchf-step-5__row-conversion,
    body .elementor .dchf-simulator .dchf-step-5__row-conversion,
    body .dchf-simulator .dchf-step-5__row-conversion {
        margin-right: var(--dchf-space-10);
    }
}

@media (min-width: 640px) {
    body .elementor-widget-container .dchf-simulator .dchf-container,
    body .elementor .dchf-simulator .dchf-container,
    body .dchf-simulator .dchf-container {
        padding: var(--dchf-space-10) var(--dchf-space-8);
    }
}

@media (min-width: 1024px) {
    body .elementor-widget-container .dchf-simulator .dchf-container,
    body .elementor .dchf-simulator .dchf-container,
    body .dchf-simulator .dchf-container {
        padding: var(--dchf-space-12) var(--dchf-space-10);
    }

    body .elementor-widget-container .dchf-simulator .dchf-header__title,
    body .elementor .dchf-simulator .dchf-header__title,
    body .dchf-simulator .dchf-header__title {
        font-size: var(--dchf-font-size-4xl);
    }
}

/* ==========================================================================
   17. DEVELOPER PANEL
   ========================================================================== */

.dchf-dev-panel {
    position: fixed;
    bottom: var(--dchf-space-4);
    right: var(--dchf-space-4);
    z-index: var(--dchf-z-dev-panel);
}

.dchf-dev-panel__toggle {
    padding: var(--dchf-space-2) var(--dchf-space-4);
    background-color: var(--dchf-color-charbon);
    color: var(--dchf-color-text-inverse);
    border: none;
    border-radius: var(--dchf-radius-sm);
    font-family: var(--dchf-font-mono);
    font-size: var(--dchf-font-size-xs);
    cursor: pointer;
}

.dchf-dev-panel__content {
    position: absolute;
    bottom: 100%;
    right: 0;
    width: 400px;
    max-width: calc(100vw - var(--dchf-space-8));
    max-height: 300px;
    margin-bottom: var(--dchf-space-2);
    padding: var(--dchf-space-4);
    background-color: var(--dchf-color-charbon);
    color: var(--dchf-color-gray-100);
    border-radius: var(--dchf-radius-md);
    overflow-y: auto;
    font-family: var(--dchf-font-mono);
    font-size: var(--dchf-font-size-xs);
}

.dchf-dev-panel__title {
    margin: 0 0 var(--dchf-space-2);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-success);
}

.dchf-dev-panel__logs {
    white-space: pre-wrap;
    word-break: break-all;
    line-height: var(--dchf-line-height-relaxed);
}

.dchf-debug-badge {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: calc(var(--dchf-z-dev-panel) + 1);
    padding: 8px 16px;
    background: var(--dchf-color-petrol);
    color: var(--dchf-color-text-inverse);
    font-family: var(--dchf-font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    border: none;
    border-radius: var(--dchf-radius-sm);
    cursor: pointer;
}

body:not(.dchf-dev-mode) .dchf-debug-overlay,
body:not(.dchf-dev-mode) .dchf-debug-badge {
    display: none !important;
}

/* ==========================================================================
   18. CALLBACK MODAL - SLIDE-IN PANEL
   ========================================================================== */

/**
 * Modal Overlay
 * Purpose: Creates visual hierarchy by dimming the background,
 * guiding user attention to the callback form.
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-overlay,
body .elementor .dchf-simulator .dchf-callback-overlay,
body .dchf-simulator .dchf-callback-overlay {
    position: fixed;
    inset: 0;
    z-index: var(--dchf-z-modal);
    background-color: rgba(26, 26, 26, 0);
    backdrop-filter: blur(0);
    -webkit-backdrop-filter: blur(0);
    visibility: hidden;
    transition: background-color var(--dchf-duration-normal) var(--dchf-easing-out),
                backdrop-filter var(--dchf-duration-normal) var(--dchf-easing-out),
                visibility 0s linear var(--dchf-duration-normal);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-overlay--active,
body .elementor .dchf-simulator .dchf-callback-overlay--active,
body .dchf-simulator .dchf-callback-overlay--active {
    background-color: rgba(26, 26, 26, 0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    visibility: visible;
    transition: background-color var(--dchf-duration-normal) var(--dchf-easing-out),
                backdrop-filter var(--dchf-duration-normal) var(--dchf-easing-out),
                visibility 0s linear 0s;
}

/**
 * Slide-in Panel
 * Purpose: Provides focused context for the callback form.
 * Animation: Slides from right with a slight scale, creating depth.
 * Timing: 400ms ease-out feels smooth without being sluggish.
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-panel,
body .elementor .dchf-simulator .dchf-callback-panel,
body .dchf-simulator .dchf-callback-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: calc(var(--dchf-z-modal) + 1);
    width: 100%;
    max-width: 480px;
    display: flex;
    flex-direction: column;
    background-color: var(--dchf-color-bg);
    box-shadow: -8px 0 32px rgba(26, 26, 26, 0.15);
    transform: translateX(100%);
    opacity: 0;
    visibility: hidden;
    transition: transform var(--dchf-duration-slow) var(--dchf-easing-out),
                opacity var(--dchf-duration-slow) var(--dchf-easing-out),
                visibility 0s linear var(--dchf-duration-slow);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel--active,
body .elementor .dchf-simulator .dchf-callback-panel--active,
body .dchf-simulator .dchf-callback-panel--active {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    transition: transform var(--dchf-duration-slow) var(--dchf-easing-out),
                opacity var(--dchf-duration-slow) var(--dchf-easing-out),
                visibility 0s linear 0s;
}

/**
 * Panel Header
 * Purpose: Establishes context and provides escape route.
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-panel__header,
body .elementor .dchf-simulator .dchf-callback-panel__header,
body .dchf-simulator .dchf-callback-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--dchf-space-6) var(--dchf-space-8);
    border-bottom: 1px solid var(--dchf-color-border);
    background-color: var(--dchf-color-white);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel__title,
body .elementor .dchf-simulator .dchf-callback-panel__title,
body .dchf-simulator .dchf-callback-panel__title {
    margin: 0;
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-xl);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
    letter-spacing: var(--dchf-letter-spacing-tight);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel__close,
body .elementor .dchf-simulator .dchf-callback-panel__close,
body .dchf-simulator .dchf-callback-panel__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: var(--dchf-radius-full);
    color: var(--dchf-color-text-muted);
    cursor: pointer;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel__close:hover,
body .elementor .dchf-simulator .dchf-callback-panel__close:hover,
body .dchf-simulator .dchf-callback-panel__close:hover {
    background-color: var(--dchf-color-bg-muted);
    color: var(--dchf-color-text);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel__close:focus-visible,
body .elementor .dchf-simulator .dchf-callback-panel__close:focus-visible,
body .dchf-simulator .dchf-callback-panel__close:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel__close svg,
body .elementor .dchf-simulator .dchf-callback-panel__close svg,
body .dchf-simulator .dchf-callback-panel__close svg {
    width: 20px;
    height: 20px;
}

/**
 * Panel Body
 * Purpose: Contains the form with comfortable padding.
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-panel__body,
body .elementor .dchf-simulator .dchf-callback-panel__body,
body .dchf-simulator .dchf-callback-panel__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--dchf-space-8);
    -webkit-overflow-scrolling: touch;
}

/**
 * Form Introduction
 * Purpose: Sets expectations and reduces form anxiety.
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-form__intro,
body .elementor .dchf-simulator .dchf-callback-form__intro,
body .dchf-simulator .dchf-callback-form__intro {
    margin-bottom: var(--dchf-space-8);
    padding: var(--dchf-space-5);
    background-color: var(--dchf-color-info-light);
    border-left: 2px solid var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__intro-icon,
body .elementor .dchf-simulator .dchf-callback-form__intro-icon,
body .dchf-simulator .dchf-callback-form__intro-icon {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-2);
    margin-bottom: var(--dchf-space-2);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__intro-icon svg,
body .elementor .dchf-simulator .dchf-callback-form__intro-icon svg,
body .dchf-simulator .dchf-callback-form__intro-icon svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__intro p,
body .elementor .dchf-simulator .dchf-callback-form__intro p,
body .dchf-simulator .dchf-callback-form__intro p {
    margin: 0;
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
    line-height: var(--dchf-line-height-relaxed);
}

/**
 * Form Fields with Staggered Animation
 * Purpose: Sequenced reveals reduce cognitive load by introducing
 * fields progressively rather than all at once.
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-form__fields,
body .elementor .dchf-simulator .dchf-callback-form__fields,
body .dchf-simulator .dchf-callback-form__fields {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-5);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__field,
body .elementor .dchf-simulator .dchf-callback-form__field,
body .dchf-simulator .dchf-callback-form__field {
    opacity: 0;
    transform: translateY(16px);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field,
body .elementor .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field,
body .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field {
    animation: dchf-callback-field-enter var(--dchf-duration-normal) var(--dchf-easing-out) forwards;
}

/* Stagger delays - each field appears 60ms after the previous */
body .elementor-widget-container .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(1),
body .elementor .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(1),
body .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(1) {
    animation-delay: 100ms;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(2),
body .elementor .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(2),
body .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(2) {
    animation-delay: 160ms;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(3),
body .elementor .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(3),
body .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(3) {
    animation-delay: 220ms;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(4),
body .elementor .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(4),
body .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field:nth-child(4) {
    animation-delay: 280ms;
}

@keyframes dchf-callback-field-enter {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/**
 * Field Labels - Consistent with existing form styles
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-form__label,
body .elementor .dchf-simulator .dchf-callback-form__label,
body .dchf-simulator .dchf-callback-form__label {
    display: block;
    margin-bottom: var(--dchf-space-2);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__required,
body .elementor .dchf-simulator .dchf-callback-form__required,
body .dchf-simulator .dchf-callback-form__required {
    color: var(--dchf-color-error);
    margin-left: var(--dchf-space-1);
}

/**
 * Field Inputs - Enhanced focus states for accessibility
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-form__input,
body .elementor .dchf-simulator .dchf-callback-form__input,
body .dchf-simulator .dchf-callback-form__input {
    display: block;
    width: 100%;
    min-height: var(--dchf-input-height);
    padding: var(--dchf-space-4) var(--dchf-space-5);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    line-height: var(--dchf-line-height-normal);
    color: var(--dchf-color-text);
    background-color: var(--dchf-color-white);
    border: 1px solid var(--dchf-color-border);
    border-radius: var(--dchf-radius-none);
    transition: border-color var(--dchf-duration-fast) var(--dchf-easing-default),
                box-shadow var(--dchf-duration-fast) var(--dchf-easing-default),
                background-color var(--dchf-duration-fast) var(--dchf-easing-default);
    appearance: none;
    -webkit-appearance: none;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__input::placeholder,
body .elementor .dchf-simulator .dchf-callback-form__input::placeholder,
body .dchf-simulator .dchf-callback-form__input::placeholder {
    color: var(--dchf-color-text-light);
    opacity: 1;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__input:hover:not(:focus):not(:disabled),
body .elementor .dchf-simulator .dchf-callback-form__input:hover:not(:focus):not(:disabled),
body .dchf-simulator .dchf-callback-form__input:hover:not(:focus):not(:disabled) {
    border-color: var(--dchf-color-gray-400);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__input:focus,
body .elementor .dchf-simulator .dchf-callback-form__input:focus,
body .dchf-simulator .dchf-callback-form__input:focus {
    outline: none;
    border-color: var(--dchf-color-petrol);
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

/* Error state */
body .elementor-widget-container .dchf-simulator .dchf-callback-form__input--error,
body .elementor .dchf-simulator .dchf-callback-form__input--error,
body .dchf-simulator .dchf-callback-form__input--error {
    border-color: var(--dchf-color-error);
    background-color: var(--dchf-color-error-light);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__input--error:focus,
body .elementor .dchf-simulator .dchf-callback-form__input--error:focus,
body .dchf-simulator .dchf-callback-form__input--error:focus {
    box-shadow: 0 0 0 var(--dchf-ring-width) rgba(169, 68, 66, 0.3);
}

/* Success state - subtle feedback */
body .elementor-widget-container .dchf-simulator .dchf-callback-form__input--valid,
body .elementor .dchf-simulator .dchf-callback-form__input--valid,
body .dchf-simulator .dchf-callback-form__input--valid {
    border-color: var(--dchf-color-success);
}

/**
 * Field Error Message
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-form__error,
body .elementor .dchf-simulator .dchf-callback-form__error,
body .dchf-simulator .dchf-callback-form__error {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-2);
    margin-top: var(--dchf-space-2);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-error);
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: opacity var(--dchf-duration-fast) var(--dchf-easing-default),
                max-height var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__error--visible,
body .elementor .dchf-simulator .dchf-callback-form__error--visible,
body .dchf-simulator .dchf-callback-form__error--visible {
    opacity: 1;
    max-height: 40px;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__error svg,
body .elementor .dchf-simulator .dchf-callback-form__error svg,
body .dchf-simulator .dchf-callback-form__error svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

/**
 * Panel Footer with Submit Button
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-panel__footer,
body .elementor .dchf-simulator .dchf-callback-panel__footer,
body .dchf-simulator .dchf-callback-panel__footer {
    padding: var(--dchf-space-6) var(--dchf-space-8);
    border-top: 1px solid var(--dchf-color-border);
    background-color: var(--dchf-color-white);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__submit,
body .elementor .dchf-simulator .dchf-callback-form__submit,
body .dchf-simulator .dchf-callback-form__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-3);
    width: 100%;
    min-height: 56px;
    padding: var(--dchf-space-5) var(--dchf-space-8);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-base);
    font-weight: var(--dchf-font-weight-medium);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
    color: var(--dchf-color-text-inverse);
    background-color: var(--dchf-color-petrol);
    border: 1px solid var(--dchf-color-petrol);
    border-radius: var(--dchf-radius-full);
    cursor: pointer;
    transition: all var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__submit:hover:not(:disabled),
body .elementor .dchf-simulator .dchf-callback-form__submit:hover:not(:disabled),
body .dchf-simulator .dchf-callback-form__submit:hover:not(:disabled) {
    background-color: var(--dchf-color-petrol-hover);
    border-color: var(--dchf-color-petrol-hover);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(42, 59, 76, 0.25);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__submit:focus-visible,
body .elementor .dchf-simulator .dchf-callback-form__submit:focus-visible,
body .dchf-simulator .dchf-callback-form__submit:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color),
                0 4px 12px rgba(42, 59, 76, 0.25);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__submit:disabled,
body .elementor .dchf-simulator .dchf-callback-form__submit:disabled,
body .dchf-simulator .dchf-callback-form__submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Loading state */
body .elementor-widget-container .dchf-simulator .dchf-callback-form__submit--loading,
body .elementor .dchf-simulator .dchf-callback-form__submit--loading,
body .dchf-simulator .dchf-callback-form__submit--loading {
    position: relative;
    color: transparent;
    pointer-events: none;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-form__submit--loading::after,
body .elementor .dchf-simulator .dchf-callback-form__submit--loading::after,
body .dchf-simulator .dchf-callback-form__submit--loading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    border: 2px solid var(--dchf-color-text-inverse);
    border-right-color: transparent;
    border-radius: var(--dchf-radius-full);
    animation: dchf-spin 0.75s linear infinite;
}

/**
 * Success State
 * Purpose: Confirms action completion, reduces anxiety.
 */
body .elementor-widget-container .dchf-simulator .dchf-callback-success,
body .elementor .dchf-simulator .dchf-callback-success,
body .dchf-simulator .dchf-callback-success {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--dchf-space-12) var(--dchf-space-8);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-success--visible,
body .elementor .dchf-simulator .dchf-callback-success--visible,
body .dchf-simulator .dchf-callback-success--visible {
    display: flex;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-success__icon,
body .elementor .dchf-simulator .dchf-callback-success__icon,
body .dchf-simulator .dchf-callback-success__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin-bottom: var(--dchf-space-6);
    background-color: var(--dchf-color-success-light);
    border-radius: var(--dchf-radius-full);
    color: var(--dchf-color-success);
    animation: dchf-success-pop 0.5s var(--dchf-easing-out) forwards;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-success__icon svg,
body .elementor .dchf-simulator .dchf-callback-success__icon svg,
body .dchf-simulator .dchf-callback-success__icon svg {
    width: 36px;
    height: 36px;
}

@keyframes dchf-success-pop {
    0% {
        opacity: 0;
        transform: scale(0.5);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

body .elementor-widget-container .dchf-simulator .dchf-callback-success__title,
body .elementor .dchf-simulator .dchf-callback-success__title,
body .dchf-simulator .dchf-callback-success__title {
    margin: 0 0 var(--dchf-space-3);
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-2xl);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
    letter-spacing: var(--dchf-letter-spacing-tight);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-success__message,
body .elementor .dchf-simulator .dchf-callback-success__message,
body .dchf-simulator .dchf-callback-success__message {
    margin: 0 0 var(--dchf-space-8);
    font-size: var(--dchf-font-size-base);
    color: var(--dchf-color-text-muted);
    line-height: var(--dchf-line-height-relaxed);
    max-width: 320px;
}

body .elementor-widget-container .dchf-simulator .dchf-callback-success__close,
body .elementor .dchf-simulator .dchf-callback-success__close,
body .dchf-simulator .dchf-callback-success__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--dchf-button-height);
    padding: var(--dchf-space-4) var(--dchf-space-8);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    letter-spacing: var(--dchf-letter-spacing-wide);
    text-transform: uppercase;
    color: var(--dchf-color-petrol);
    background-color: transparent;
    border: 1px solid var(--dchf-color-petrol);
    border-radius: var(--dchf-radius-full);
    cursor: pointer;
    transition: all var(--dchf-duration-normal) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-callback-success__close:hover,
body .elementor .dchf-simulator .dchf-callback-success__close:hover,
body .dchf-simulator .dchf-callback-success__close:hover {
    background-color: var(--dchf-color-petrol);
    color: var(--dchf-color-text-inverse);
}

/**
 * RESPONSIVE - Mobile Optimization
 */
@media (max-width: 639px) {
    body .elementor-widget-container .dchf-simulator .dchf-callback-panel,
    body .elementor .dchf-simulator .dchf-callback-panel,
    body .dchf-simulator .dchf-callback-panel {
        max-width: 100%;
        border-radius: 0;
    }

    body .elementor-widget-container .dchf-simulator .dchf-callback-panel__header,
    body .elementor .dchf-simulator .dchf-callback-panel__header,
    body .dchf-simulator .dchf-callback-panel__header {
        padding: var(--dchf-space-4) var(--dchf-space-5);
    }

    body .elementor-widget-container .dchf-simulator .dchf-callback-panel__body,
    body .elementor .dchf-simulator .dchf-callback-panel__body,
    body .dchf-simulator .dchf-callback-panel__body {
        padding: var(--dchf-space-5);
    }

    body .elementor-widget-container .dchf-simulator .dchf-callback-panel__footer,
    body .elementor .dchf-simulator .dchf-callback-panel__footer,
    body .dchf-simulator .dchf-callback-panel__footer {
        padding: var(--dchf-space-4) var(--dchf-space-5);
        /* Safe area for iOS devices */
        padding-bottom: calc(var(--dchf-space-4) + env(safe-area-inset-bottom, 0));
    }

    body .elementor-widget-container .dchf-simulator .dchf-callback-panel__title,
    body .elementor .dchf-simulator .dchf-callback-panel__title,
    body .dchf-simulator .dchf-callback-panel__title {
        font-size: var(--dchf-font-size-lg);
    }
}

/* Tablet - Panel slides in from right with max-width */
@media (min-width: 640px) and (max-width: 1023px) {
    body .elementor-widget-container .dchf-simulator .dchf-callback-panel,
    body .elementor .dchf-simulator .dchf-callback-panel,
    body .dchf-simulator .dchf-callback-panel {
        max-width: 420px;
    }
}

/**
 * REDUCED MOTION - Accessibility
 * All animations are disabled for users who prefer reduced motion.
 */
@media (prefers-reduced-motion: reduce) {
    body .elementor-widget-container .dchf-simulator .dchf-callback-overlay,
    body .elementor .dchf-simulator .dchf-callback-overlay,
    body .dchf-simulator .dchf-callback-overlay,
    body .elementor-widget-container .dchf-simulator .dchf-callback-panel,
    body .elementor .dchf-simulator .dchf-callback-panel,
    body .dchf-simulator .dchf-callback-panel {
        transition: none;
    }

    body .elementor-widget-container .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field,
    body .elementor .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field,
    body .dchf-simulator .dchf-callback-panel--active .dchf-callback-form__field {
        animation: none;
        opacity: 1;
        transform: none;
    }

    body .elementor-widget-container .dchf-simulator .dchf-callback-success__icon,
    body .elementor .dchf-simulator .dchf-callback-success__icon,
    body .dchf-simulator .dchf-callback-success__icon {
        animation: none;
    }
}

/**
 * BODY SCROLL LOCK - Prevent background scrolling when modal is open
 */
body.dchf-callback-open {
    overflow: hidden;
}

/* Fix for iOS Safari which ignores overflow: hidden on body */
@supports (-webkit-touch-callout: none) {
    body.dchf-callback-open {
        position: fixed;
        width: 100%;
        height: 100%;
    }
}

/* ==========================================================================
   STEP 4 - PARTIAL PREPAYMENTS SECTION
   Added to monthly payments step for consolidated payment inputs
   ========================================================================== */

/**
 * Prepayments Section Container
 * Purpose: Visual separation from monthly payment field with clear hierarchy.
 * UX: Section appears below the monthly payment, creating a logical flow.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-section,
body .elementor .dchf-simulator .dchf-step-4__prepayments-section,
body .dchf-simulator .dchf-step-4__prepayments-section {
    margin-top: var(--dchf-space-8);
    padding-top: var(--dchf-space-6);
    border-top: 1px solid var(--dchf-color-border-light);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-header,
body .elementor .dchf-simulator .dchf-step-4__prepayments-header,
body .dchf-simulator .dchf-step-4__prepayments-header {
    margin-bottom: var(--dchf-space-4);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-title,
body .elementor .dchf-simulator .dchf-step-4__prepayments-title,
body .dchf-simulator .dchf-step-4__prepayments-title {
    margin: 0 0 var(--dchf-space-2) 0;
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-lg);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-description,
body .elementor .dchf-simulator .dchf-step-4__prepayments-description,
body .dchf-simulator .dchf-step-4__prepayments-description {
    margin: 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
    line-height: 1.5;
}

/**
 * Empty State
 * Purpose: Placeholder when no prepayments added, with subtle visual.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-empty,
body .elementor .dchf-simulator .dchf-step-4__prepayments-empty,
body .dchf-simulator .dchf-step-4__prepayments-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--dchf-space-5);
    background-color: var(--dchf-color-bg-alt);
    border-radius: var(--dchf-radius-md);
    margin-bottom: var(--dchf-space-4);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-empty[hidden],
body .elementor .dchf-simulator .dchf-step-4__prepayments-empty[hidden],
body .dchf-simulator .dchf-step-4__prepayments-empty[hidden] {
    display: none !important;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-empty-icon,
body .elementor .dchf-simulator .dchf-step-4__prepayments-empty-icon,
body .dchf-simulator .dchf-step-4__prepayments-empty-icon {
    color: var(--dchf-color-gray-400);
    margin-bottom: var(--dchf-space-2);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-empty-text,
body .elementor .dchf-simulator .dchf-step-4__prepayments-empty-text,
body .dchf-simulator .dchf-step-4__prepayments-empty-text {
    margin: 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
}

/**
 * Prepayments List
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-list,
body .elementor .dchf-simulator .dchf-step-4__prepayments-list,
body .dchf-simulator .dchf-step-4__prepayments-list {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-3);
    margin-bottom: var(--dchf-space-4);
}

/**
 * Prepayment Row
 * Purpose: Individual prepayment entry with horizontal layout.
 * Animation: Fade-in on add, providing feedback for user action.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row,
body .elementor .dchf-simulator .dchf-step-4__prepayment-row,
body .dchf-simulator .dchf-step-4__prepayment-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--dchf-space-3);
    padding: var(--dchf-space-4);
    background-color: var(--dchf-color-bg-alt);
    border-radius: var(--dchf-radius-md);
    animation: dchf-fade-in var(--dchf-duration-normal) var(--dchf-easing-out);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row-fields,
body .elementor .dchf-simulator .dchf-step-4__prepayment-row-fields,
body .dchf-simulator .dchf-step-4__prepayment-row-fields {
    display: flex;
    align-items: flex-start;
    gap: var(--dchf-space-3);
    flex: 1;
    min-width: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-field,
body .elementor .dchf-simulator .dchf-step-4__prepayment-field,
body .dchf-simulator .dchf-step-4__prepayment-field {
    flex: 1;
    min-width: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-field--month,
body .elementor .dchf-simulator .dchf-step-4__prepayment-field--month,
body .dchf-simulator .dchf-step-4__prepayment-field--month {
    flex: 1.2;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-field--year,
body .elementor .dchf-simulator .dchf-step-4__prepayment-field--year,
body .dchf-simulator .dchf-step-4__prepayment-field--year {
    flex: 0.8;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-field--amount,
body .elementor .dchf-simulator .dchf-step-4__prepayment-field--amount,
body .dchf-simulator .dchf-step-4__prepayment-field--amount {
    flex: 2;
    min-width: 180px;
}

/**
 * Select and Input Styles
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-select-month,
body .elementor .dchf-simulator .dchf-step-4__prepayment-select-month,
body .dchf-simulator .dchf-step-4__prepayment-select-month,
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-select-year,
body .elementor .dchf-simulator .dchf-step-4__prepayment-select-year,
body .dchf-simulator .dchf-step-4__prepayment-select-year {
    width: 100%;
    min-height: var(--dchf-input-height-sm);
    padding: var(--dchf-space-3) var(--dchf-space-4);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text);
    background-color: var(--dchf-color-white);
    border: 1px solid var(--dchf-color-border);
    border-radius: var(--dchf-radius-md);
    cursor: pointer;
    transition: border-color var(--dchf-duration-fast) var(--dchf-easing-default);
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235C5C57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--dchf-space-3) center;
    padding-right: var(--dchf-space-8);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-select-month:hover,
body .elementor .dchf-simulator .dchf-step-4__prepayment-select-month:hover,
body .dchf-simulator .dchf-step-4__prepayment-select-month:hover,
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-select-year:hover,
body .elementor .dchf-simulator .dchf-step-4__prepayment-select-year:hover,
body .dchf-simulator .dchf-step-4__prepayment-select-year:hover {
    border-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-select-month:focus,
body .elementor .dchf-simulator .dchf-step-4__prepayment-select-month:focus,
body .dchf-simulator .dchf-step-4__prepayment-select-month:focus,
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-select-year:focus,
body .elementor .dchf-simulator .dchf-step-4__prepayment-select-year:focus,
body .dchf-simulator .dchf-step-4__prepayment-select-year:focus {
    outline: none;
    border-color: var(--dchf-color-petrol);
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
}

/**
 * Amount Input with Currency Select
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-amount-wrapper,
body .elementor .dchf-simulator .dchf-step-4__prepayment-amount-wrapper,
body .dchf-simulator .dchf-step-4__prepayment-amount-wrapper {
    display: flex;
    position: relative;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-input-amount,
body .elementor .dchf-simulator .dchf-step-4__prepayment-input-amount,
body .dchf-simulator .dchf-step-4__prepayment-input-amount {
    flex: 1;
    min-width: 100px;
    min-height: var(--dchf-input-height-sm);
    padding: var(--dchf-space-3) var(--dchf-space-4);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-text);
    background-color: var(--dchf-color-white);
    border: 1px solid var(--dchf-color-border);
    border-radius: var(--dchf-radius-md) 0 0 var(--dchf-radius-md);
    border-right: none;
    transition: border-color var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-input-amount:hover,
body .elementor .dchf-simulator .dchf-step-4__prepayment-input-amount:hover,
body .dchf-simulator .dchf-step-4__prepayment-input-amount:hover {
    border-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-input-amount:focus,
body .elementor .dchf-simulator .dchf-step-4__prepayment-input-amount:focus,
body .dchf-simulator .dchf-step-4__prepayment-input-amount:focus {
    outline: none;
    border-color: var(--dchf-color-petrol);
    box-shadow: 0 0 0 var(--dchf-ring-width) var(--dchf-ring-color);
    z-index: 1;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-currency-select,
body .elementor .dchf-simulator .dchf-step-4__prepayment-currency-select,
body .dchf-simulator .dchf-step-4__prepayment-currency-select {
    min-height: var(--dchf-input-height-sm);
    padding: var(--dchf-space-2) var(--dchf-space-3);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-xs);
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-text-inverse);
    background-color: var(--dchf-color-petrol);
    border: 1px solid var(--dchf-color-petrol);
    border-radius: 0 var(--dchf-radius-md) var(--dchf-radius-md) 0;
    cursor: pointer;
    appearance: none;
    width: 70px;
    min-width: 70px;
    max-width: 70px;
    flex-shrink: 0;
    text-align: center;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-currency-select:hover,
body .elementor .dchf-simulator .dchf-step-4__prepayment-currency-select:hover,
body .dchf-simulator .dchf-step-4__prepayment-currency-select:hover {
    background-color: var(--dchf-color-petrol-hover);
}

/**
 * Conversion Display
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row-conversion,
body .elementor .dchf-simulator .dchf-step-4__prepayment-row-conversion,
body .dchf-simulator .dchf-step-4__prepayment-row-conversion {
    display: flex;
    align-items: center;
    gap: var(--dchf-space-1);
    flex: 0 0 100%;
    order: 10;
    padding: var(--dchf-space-2) var(--dchf-space-3);
    background-color: var(--dchf-color-info-light);
    border-radius: var(--dchf-radius-sm);
    margin-top: 0;
    animation: dchf-fade-in var(--dchf-duration-fast) var(--dchf-easing-out);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row-conversion[hidden],
body .elementor .dchf-simulator .dchf-step-4__prepayment-row-conversion[hidden],
body .dchf-simulator .dchf-step-4__prepayment-row-conversion[hidden] {
    display: none !important;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-conversion-icon,
body .elementor .dchf-simulator .dchf-step-4__prepayment-conversion-icon,
body .dchf-simulator .dchf-step-4__prepayment-conversion-icon {
    display: flex;
    color: var(--dchf-color-petrol);
    flex-shrink: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-conversion-text,
body .elementor .dchf-simulator .dchf-step-4__prepayment-conversion-text,
body .dchf-simulator .dchf-step-4__prepayment-conversion-text {
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-xs);
    color: var(--dchf-color-text-muted);
}

/**
 * Remove Button
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-remove-btn,
body .elementor .dchf-simulator .dchf-step-4__prepayment-remove-btn,
body .dchf-simulator .dchf-step-4__prepayment-remove-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: var(--dchf-radius-sm);
    cursor: pointer;
    color: var(--dchf-color-gray-400);
    transition: color var(--dchf-duration-fast), background-color var(--dchf-duration-fast);
    flex-shrink: 0;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-remove-btn:hover,
body .elementor .dchf-simulator .dchf-step-4__prepayment-remove-btn:hover,
body .dchf-simulator .dchf-step-4__prepayment-remove-btn:hover {
    color: var(--dchf-color-error);
    background-color: var(--dchf-color-error-light);
}

/**
 * Add Button
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-add-btn,
body .elementor .dchf-simulator .dchf-step-4__prepayments-add-btn,
body .dchf-simulator .dchf-step-4__prepayments-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dchf-space-2);
    padding: var(--dchf-space-3) var(--dchf-space-5);
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
    background-color: transparent;
    border: 1px dashed var(--dchf-color-petrol);
    border-radius: var(--dchf-radius-md);
    cursor: pointer;
    transition: all var(--dchf-duration-fast) var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-add-btn:hover,
body .elementor .dchf-simulator .dchf-step-4__prepayments-add-btn:hover,
body .dchf-simulator .dchf-step-4__prepayments-add-btn:hover {
    background-color: var(--dchf-color-info-light);
    border-style: solid;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayments-add-icon,
body .elementor .dchf-simulator .dchf-step-4__prepayments-add-icon,
body .dchf-simulator .dchf-step-4__prepayments-add-icon {
    display: flex;
}

/* ==========================================================================
   STEP 5 - LOAN STATUS (3 Options Radio Cards)
   Enhanced radio card design for loan status selection
   ========================================================================== */

/**
 * Radio Group - 3 Options Layout
 * Purpose: Container for the three loan status radio cards.
 * Layout: Vertical stack with consistent spacing.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options,
body .dchf-simulator .dchf-step-4__radio-group--three-options {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-3);
    max-width: 480px;
    margin: 0 auto var(--dchf-space-6) auto;
}

/**
 * Radio Card Label
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio {
    display: block;
    cursor: pointer;
}

/**
 * Hidden Radio Input
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

/**
 * Radio Box - Card Style
 * Purpose: Visual card containing icon and text with interactive states.
 * Animation: Border color transition on hover (200ms), background on select.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--dchf-space-2);
    padding: var(--dchf-space-5) var(--dchf-space-6);
    background-color: var(--dchf-color-white);
    border: 2px solid var(--dchf-color-border);
    border-radius: var(--dchf-radius-md);
    transition: border-color 200ms var(--dchf-easing-default),
                background-color 200ms var(--dchf-easing-default),
                transform 150ms var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box:hover,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box:hover,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box:hover {
    border-color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-bg-alt);
}

/**
 * Selected State
 * UX: Clear visual feedback with brand color and inverted text.
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box {
    border-color: var(--dchf-color-petrol);
    background-color: var(--dchf-color-petrol);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-icon,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-icon,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-icon,
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-text,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-text,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-text,
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-hint,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-hint,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:checked + .dchf-step-4__radio-box .dchf-step-4__radio-hint {
    color: var(--dchf-color-text-inverse);
}

/**
 * Focus State for Accessibility
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:focus-visible + .dchf-step-4__radio-box,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:focus-visible + .dchf-step-4__radio-box,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-input:focus-visible + .dchf-step-4__radio-box {
    outline: 2px solid var(--dchf-color-petrol);
    outline-offset: 2px;
}

/**
 * Icon Styling
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-icon,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-icon,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--dchf-color-petrol);
    transition: color 200ms var(--dchf-easing-default);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-icon svg,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-icon svg,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-icon svg {
    width: 28px;
    height: 28px;
}

/**
 * Text Styling
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-text,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-text,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-text {
    font-family: var(--dchf-font-serif);
    font-size: var(--dchf-font-size-base);
    font-weight: var(--dchf-font-weight-medium);
    color: var(--dchf-color-petrol);
    text-align: center;
    transition: color 200ms var(--dchf-easing-default);
}

/**
 * Hint Text (sub-label)
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-hint,
body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-hint,
body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-hint {
    display: block;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-xs);
    color: var(--dchf-color-text-muted);
    text-align: center;
    transition: color 200ms var(--dchf-easing-default);
}

/**
 * Conditional Fields - Early Settlement Section
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__early-settlement-section,
body .elementor .dchf-simulator .dchf-step-4__early-settlement-section,
body .dchf-simulator .dchf-step-4__early-settlement-section {
    margin-bottom: var(--dchf-space-5);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__section-title,
body .elementor .dchf-simulator .dchf-step-4__section-title,
body .dchf-simulator .dchf-step-4__section-title {
    margin: 0 0 var(--dchf-space-3) 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    font-weight: var(--dchf-font-weight-semibold);
    color: var(--dchf-color-text);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__section-description,
body .elementor .dchf-simulator .dchf-step-4__section-description,
body .dchf-simulator .dchf-step-4__section-description {
    margin: 0 0 var(--dchf-space-3) 0;
    font-family: var(--dchf-font-sans);
    font-size: var(--dchf-font-size-sm);
    color: var(--dchf-color-text-muted);
}

/**
 * Date Selector - Flexbox Layout
 */
body .elementor-widget-container .dchf-simulator .dchf-step-4__date-selector,
body .elementor .dchf-simulator .dchf-step-4__date-selector,
body .dchf-simulator .dchf-step-4__date-selector {
    display: flex;
    gap: var(--dchf-space-3);
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__date-selector .dchf-step-4__field--month,
body .elementor .dchf-simulator .dchf-step-4__date-selector .dchf-step-4__field--month,
body .dchf-simulator .dchf-step-4__date-selector .dchf-step-4__field--month {
    flex: 1.5;
}

body .elementor-widget-container .dchf-simulator .dchf-step-4__date-selector .dchf-step-4__field--year,
body .elementor .dchf-simulator .dchf-step-4__date-selector .dchf-step-4__field--year,
body .dchf-simulator .dchf-step-4__date-selector .dchf-step-4__field--year {
    flex: 1;
}

/* ==========================================================================
   MOBILE RESPONSIVE - STEP 4 PREPAYMENTS
   ========================================================================== */

@media (max-width: 600px) {
    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row-fields,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-row-fields,
    body .dchf-simulator .dchf-step-4__prepayment-row-fields {
        flex-wrap: wrap;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-field--month,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-field--month,
    body .dchf-simulator .dchf-step-4__prepayment-field--month,
    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-field--year,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-field--year,
    body .dchf-simulator .dchf-step-4__prepayment-field--year {
        flex: 1 1 45%;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-field--amount,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-field--amount,
    body .dchf-simulator .dchf-step-4__prepayment-field--amount {
        flex: 1 1 100%;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-row,
    body .dchf-simulator .dchf-step-4__prepayment-row {
        flex-wrap: wrap;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-remove-btn,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-remove-btn,
    body .dchf-simulator .dchf-step-4__prepayment-remove-btn {
        position: absolute;
        top: var(--dchf-space-2);
        right: var(--dchf-space-2);
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-row,
    body .dchf-simulator .dchf-step-4__prepayment-row {
        position: relative;
        padding-right: var(--dchf-space-10);
    }
}

/* ==========================================================================
   REDUCED MOTION - Prepayments
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-row,
    body .dchf-simulator .dchf-step-4__prepayment-row,
    body .elementor-widget-container .dchf-simulator .dchf-step-4__prepayment-row-conversion,
    body .elementor .dchf-simulator .dchf-step-4__prepayment-row-conversion,
    body .dchf-simulator .dchf-step-4__prepayment-row-conversion {
        animation: none;
    }

    body .elementor-widget-container .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box,
    body .elementor .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box,
    body .dchf-simulator .dchf-step-4__radio-group--three-options .dchf-step-4__radio-box {
        transition: none;
    }
}

/* ==========================================================================
   COOKIE WALL
   ========================================================================== */

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall,
body .elementor .dchf-simulator .dchf-cookie-wall,
body .dchf-simulator .dchf-cookie-wall {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    padding: var(--dchf-space-6);
    background: linear-gradient(135deg, var(--dchf-bg-primary) 0%, var(--dchf-bg-secondary) 100%);
    border-radius: var(--dchf-radius-lg);
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall[hidden],
body .elementor .dchf-simulator .dchf-cookie-wall[hidden],
body .dchf-simulator .dchf-cookie-wall[hidden] {
    display: none;
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__content,
body .elementor .dchf-simulator .dchf-cookie-wall__content,
body .dchf-simulator .dchf-cookie-wall__content {
    max-width: 480px;
    text-align: center;
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__icon,
body .elementor .dchf-simulator .dchf-cookie-wall__icon,
body .dchf-simulator .dchf-cookie-wall__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    margin-bottom: var(--dchf-space-4);
    color: var(--dchf-primary);
    background: var(--dchf-primary-light);
    border-radius: 50%;
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__icon svg,
body .elementor .dchf-simulator .dchf-cookie-wall__icon svg,
body .dchf-simulator .dchf-cookie-wall__icon svg {
    width: 48px;
    height: 48px;
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__title,
body .elementor .dchf-simulator .dchf-cookie-wall__title,
body .dchf-simulator .dchf-cookie-wall__title {
    margin: 0 0 var(--dchf-space-3) 0;
    font-size: var(--dchf-text-xl);
    font-weight: 600;
    color: var(--dchf-text-primary);
    line-height: 1.3;
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__text,
body .elementor .dchf-simulator .dchf-cookie-wall__text,
body .dchf-simulator .dchf-cookie-wall__text {
    margin: 0 0 var(--dchf-space-5) 0;
    font-size: var(--dchf-text-base);
    color: var(--dchf-text-secondary);
    line-height: 1.6;
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__actions,
body .elementor .dchf-simulator .dchf-cookie-wall__actions,
body .dchf-simulator .dchf-cookie-wall__actions {
    display: flex;
    flex-direction: column;
    gap: var(--dchf-space-3);
    margin-bottom: var(--dchf-space-4);
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__btn,
body .elementor .dchf-simulator .dchf-cookie-wall__btn,
body .dchf-simulator .dchf-cookie-wall__btn {
    width: 100%;
    padding: var(--dchf-space-3) var(--dchf-space-5);
    font-size: var(--dchf-text-base);
    font-weight: 500;
    border-radius: var(--dchf-radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
}

body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__notice,
body .elementor .dchf-simulator .dchf-cookie-wall__notice,
body .dchf-simulator .dchf-cookie-wall__notice {
    margin: 0;
    font-size: var(--dchf-text-sm);
    color: var(--dchf-text-muted);
    line-height: 1.5;
}

/* Cookie Wall - Responsive */
@media (min-width: 480px) {
    body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__actions,
    body .elementor .dchf-simulator .dchf-cookie-wall__actions,
    body .dchf-simulator .dchf-cookie-wall__actions {
        flex-direction: row;
        justify-content: center;
    }

    body .elementor-widget-container .dchf-simulator .dchf-cookie-wall__btn,
    body .elementor .dchf-simulator .dchf-cookie-wall__btn,
    body .dchf-simulator .dchf-cookie-wall__btn {
        width: auto;
        min-width: 180px;
    }
}

/* Cookie Wall - Simulator hidden state */
body .elementor-widget-container .dchf-simulator.dchf-simulator--consent-pending .dchf-container,
body .elementor .dchf-simulator.dchf-simulator--consent-pending .dchf-container,
body .dchf-simulator.dchf-simulator--consent-pending .dchf-container {
    display: none;
}
