/**
 * ================================================================
 * FICHIER : Home_2026-09-01_14h00.css
 * EMPLACEMENT : pages/Home_2026-09-01_14h00/Home_2026-09-01_14h00.css
 * SHORT_DESC : Styles de la page d'accueil Home_2026-09-01_14h00.
 * DESCRIPTION : Styles du Hero, du Calculateur ROI, du Formulaire Multi-Étapes,
 *               de la nouvelle Section Service Rôle de l'Installateur, des
 *               Services par besoin, Témoignages et Réseau de Villes.
 *               Conforme à la syntaxe Allman et aux directives UI/UX.
 *
 * ================================================================
 */

/* ================================================================
 * 1. VARIABLES LOCALES DE LA PAGE
 * ================================================================ */
:root,
html.dark_mode {
    --home_bg_dark: #070d18;
    --home_card_bg: rgba(15, 23, 42, 0.75);
    --home_card_sub_bg: rgba(30, 41, 59, 0.6);
    --home_card_sub_hover: rgba(30, 41, 59, 0.9);
    --home_card_border: rgba(56, 189, 248, 0.18);
    --home_card_glow: rgba(56, 189, 248, 0.25);
    --home_border_subtle: rgba(255, 255, 255, 0.08);
    --home_primary_cyan: #00e5ff;
    --home_accent_blue: #38bdf8;
    --home_accent_green: #10b981;
    --home_text_main: #f8fafc;
    --home_text_muted: #94a3b8;
    --home_text_dim: #64748b;
    --home_radius_sm: 8px;
    --home_radius_md: 14px;
    --home_radius_lg: 20px;
    --home_radius_xl: 28px;
    --home_transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --home_hero_overlay: radial-gradient(circle at 15% 40%, rgba(2, 6, 23, 0.85) 28%, rgba(2, 6, 23, 0.3) 70%);
    --home_section_bg_alt: rgba(10, 16, 28, 0.6);
}

html.bright_mode {
    --home_bg_dark: #f8fafc;
    --home_card_bg: rgba(255, 255, 255, 0.92);
    --home_card_sub_bg: rgba(241, 245, 249, 0.9);
    --home_card_sub_hover: #ffffff;
    --home_card_border: rgba(15, 23, 42, 0.09);
    --home_card_glow: rgba(8, 145, 178, 0.12);
    --home_border_subtle: rgba(15, 23, 42, 0.08);
    --home_primary_cyan: #0891b2;
    --home_accent_blue: #0284c7;
    --home_accent_green: #059669;
    --home_text_main: #2a4964;
    --home_text_muted: #475569;
    --home_text_dim: #64748b;
    --home_radius_sm: 8px;
    --home_radius_md: 14px;
    --home_radius_lg: 20px;
    --home_radius_xl: 28px;
    --home_transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --home_hero_overlay: radial-gradient(circle at 15% 40%, rgb(248 250 252 / 72%) 28%, rgb(248 250 252 / 0%) 70%);
    --home_section_bg_alt: rgba(241, 245, 249, 0.7);
}

.Home_V6_Container {
    width: 100%;
    color: var(--home_text_main);
    overflow-x: hidden;
}

/* ================================================================
 * 2. HERO SECTION
 * ================================================================ */
.Hero_Premium {
    position: relative;
    padding: 6rem 1.5rem 5rem;
    min-height: 75vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: url('../../_theme/img/irve_hero_french_pavilion_right.png');
    background-size: cover;
    background-position: center 67%;
    background-attachment: fixed;
}

@media (min-width: 1025px),
(min-resolution: 2dppx) and (min-width: 768px),
(-webkit-min-device-pixel-ratio: 2) and (min-width: 768px) {
    .Hero_Premium {
        background-image: url('../../_theme/img/irve_hero_french_pavilion_right.png');
    }
}

.Hero_Overlay {
    position: absolute;
    inset: 0;
    background: var(--home_hero_overlay);
    z-index: 1;
}

.Hero_Content {
    max-width: 1200px;
    width: 100%;
    position: relative;
    z-index: 2;
}

.hero_left {
    max-width: 680px;
}

.aides_highlight {
    color: var(--home_primary_cyan);
    font-weight: 700;
}

.hero_mobile_image_card {
    display: none;
    border-radius: var(--home_radius_xl);
    overflow: hidden;
    border: 1px solid var(--home_card_border);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6);
    margin: 1.5rem 0 2rem;
}

.hero_mobile_image_card img {
    width: 250%;
    height: 100%;
    display: block;
    object-fit: none;
    object-position: 80% 60%;
}

.Hero_Title {
    font-family: 'Outfit', sans-serif;
    font-size: 3.25rem;
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 1.25rem;
    letter-spacing: -0.02em;
}

.Hero_Title .Accent_Reinventee {
    background: linear-gradient(135deg, #38bdf8 0%, #00e5ff 50%, #34d399 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
}

.Hero_Subtitle {
    font-size: 1.15rem;
    line-height: 1.65;
    color: var(--home_text_muted);
    margin-bottom: 1rem;
    max-width: 600px;
}

.Hero_Expert_Mention {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.5);
    font-style: italic;
    margin-bottom: 2rem;
    max-width: 580px;
}

.bright_mode p.Hero_Expert_Mention.animate_fade_up_delay_3 {
    color: #00987e;
    font-weight: bold;
}

.Hero_Actions {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.CTA_Wrapper_Premium {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.start_devis_anchor
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1.15rem 2rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: #ffffff !important;
    background: linear-gradient(135deg, #00e5ff 0%, #38bdf8 100%);
    border-radius: var(--home_radius_md);
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(0, 229, 255, 0.35);
    transition: var(--home_transition);
    cursor: pointer;
}

.start_devis_anchor span,
.start_devis_anchor .material-symbols-outlined
{
    color: #ffffff !important;
}

.bright_mode a.start_devis_anchor
{
    color: #ffffff !important;
}

.start_devis_anchor:hover
{
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(0, 229, 255, 0.5);
    color: #ffffff !important;
}

.Hero_Proof_Flex {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.Network_Proof_Badge {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.25rem;
    background: rgba(15, 23, 42, 0.6);
    border: 1px solid var(--home_card_border);
    border-radius: var(--home_radius_md);
    backdrop-filter: blur(10px);
}

.bright_mode .Network_Proof_Badge {
    background: rgb(91 164 201);
}

.Network_Proof_Badge .Network_Icon_Box {
    color: var(--home_primary_cyan);
    display: flex;
    align-items: center;
}

.bright_mode .Network_Icon_Box {
    color: white;
}

.Network_Proof_Badge .Badge_Text .Label {
    display: block;
    font-size: 0.95rem;
    font-weight: 800;
    color: #fff;
}

.bright_mode .Network_Proof_Badge .Badge_Text .Label {
    color: var(--form_bg_color);
}

.Network_Proof_Badge .Badge_Text .Sub {
    display: block;
    font-size: 0.75rem;
    color: var(--home_text_muted);
    font-weight: 600;
    letter-spacing: 0.04em;
}

/* ================================================================
 * 3. CALCULATEUR ROI & ÉCONOMIES DE CARBURANT
 * ================================================================ */
.roi_section {
    padding: 5rem 1.5rem;
    background: radial-gradient(circle at 50% 10%, rgba(56, 189, 248, 0.08), transparent 70%),
        var(--home_bg_dark);
    position: relative;
}

.roi_calculator_box {
    max-width: 1000px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 2.5rem;
    background: var(--home_card_bg);
    border: 1px solid var(--home_card_border);
    border-radius: var(--home_radius_xl);
    padding: 2.5rem;
    backdrop-filter: blur(16px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
    z-index: 2;
    position: relative;
}

.roi_controls_pane {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.5rem;
}

.roi_slider_wrapper {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.roi_slider_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.roi_slider_label {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--home_text_main);
}

.roi_km_value {
    font-size: 1.4rem;
    font-weight: 900;
    color: var(--home_primary_cyan);
    font-family: 'Outfit', sans-serif;
}

.roi_range_slider {
    width: 100%;
    height: 8px;
    border-radius: 9999px;
    background: var(--home_border_subtle);
    outline: none;
    cursor: pointer;
    accent-color: var(--home_primary_cyan);
}

.roi_costs_split_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.roi_cost_card {
    padding: 1.25rem;
    background: var(--home_card_sub_bg);
    border: 1px solid var(--home_border_subtle);
    border-radius: var(--home_radius_md);
}

.roi_cost_card.thermal {
    border-left: 4px solid #ef4444;
}

.roi_cost_card.electric {
    border-left: 4px solid #10b981;
}

.roi_cost_card .cost_label {
    font-size: 0.82rem;
    color: var(--home_text_muted);
    margin-bottom: 0.35rem;
}

.roi_cost_card .cost_val {
    font-size: 1.4rem;
    font-weight: 800;
    font-family: 'Outfit', sans-serif;
    text-align: right;
}

.roi_cost_card.thermal .cost_val {
    color: #f87171;
}

.roi_cost_card.electric .cost_val {
    color: #34d399;
}

.roi_gain_card {
    background: linear-gradient(135deg, rgba(0, 229, 255, 0.12) 0%, rgba(16, 185, 129, 0.12) 100%);
    border: 1px solid rgba(0, 229, 255, 0.35);
    border-radius: var(--home_radius_lg);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.roi_gain_card .gain_label {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--home_text_muted);
    margin-bottom: 0.5rem;
}

.roi_gain_card .gain_amount {
    font-size: 2.6rem;
    font-weight: 900;
    color: var(--home_primary_cyan);
    font-family: 'Outfit', sans-serif;
    line-height: 1.1;
    margin-bottom: 0.75rem;
}

.roi_gain_card .gain_desc {
    font-size: 0.88rem;
    color: var(--home_text_muted);
    line-height: 1.5;
    margin-bottom: 1.5rem;
}

.roi_gain_cta {
    padding: 0.9rem 1.5rem;
    font-size: 1rem;
}

/* ================================================================
 * 4. FORMULAIRE DE SOUMISSION MULTI-ÉTAPES (SIMULATEUR DEVIS)
 * ================================================================ */
.devis_section {
    padding: 4.5rem 1.5rem;
    position: relative;
    background: linear-gradient(180deg, var(--home_bg_dark) 0%, #0c1527 100%);
}

.bright_mode section#devis_section {
    background: linear-gradient(180deg, #ffffff 0%, #ffffff78 100%);
}

.container_narrow {
    max-width: 900px;
    margin: 0 auto;
}

.section_header_center {
    text-align: center;
    margin-bottom: 2.5rem;
    z-index: 2;
    position: relative;
}

.badge_tag {
    display: inline-block;
    padding: 0.35rem 0.9rem;
    background: rgba(56, 189, 248, 0.12);
    border: 1px solid rgba(56, 189, 248, 0.3);
    border-radius: 9999px;
    color: var(--home_primary_cyan);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.75rem;
}

.section_title_large {
    font-family: 'Outfit', sans-serif;
    font-size: 2.3rem;
    font-weight: 800;
    margin-bottom: 0.75rem;
    line-height: 1.25;
}

.section_subtitle {
    font-size: 1.05rem;
    color: var(--home_text_muted);
    max-width: 720px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Encadré de sécurité et confidentialité des données */
.security_privacy_notice {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.75rem 1.25rem;
    margin-top: 1.25rem;
    background: rgba(16, 185, 129, 0.08);
    border: 1px solid rgba(16, 185, 129, 0.25);
    border-radius: var(--home_radius_md);
    max-width: 760px;
    text-align: left;
    backdrop-filter: blur(8px);
}

.bright_mode .security_privacy_notice {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(16, 185, 129, 0.4);
}

.privacy_icon_wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--home_accent_green);
    font-size: 1.4rem;
    flex-shrink: 0;
}

.privacy_notice_text {
    font-size: 0.86rem;
    line-height: 1.45;
    color: var(--home_text_main);
}

.quote_card_multi_step {
    background: var(--home_card_bg);
    border: 1px solid var(--home_card_border);
    border-radius: var(--home_radius_xl);
    padding: 2.5rem;
    backdrop-filter: blur(16px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
    position: relative;
    z-index: 2;
}

/* Barre de progression des étapes */
.form_progress_bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--home_border_subtle);
}

.progress_step {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    opacity: 0.5;
    transition: var(--home_transition);
    cursor: default;
}

.progress_step.active {
    opacity: 1;
}

.progress_step.completed .step_number {
    background: var(--home_accent_green);
    color: #fff;
    border-color: var(--home_accent_green);
}

.step_number {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--home_card_sub_bg);
    border: 2px solid var(--home_border_subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--home_text_main);
    transition: var(--home_transition);
}

.progress_step.active .step_number {
    background: var(--home_primary_cyan);
    border-color: var(--home_primary_cyan);
    color: #020617;
    box-shadow: 0 0 15px rgba(0, 229, 255, 0.4);
}

.step_label {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--home_text_main);
}

/* Box Estimation Aides en Direct */
.aid_estimation_box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(56, 189, 248, 0.15) 100%);
    border: 1px solid rgba(16, 185, 129, 0.35);
    border-radius: var(--home_radius_md);
    margin-bottom: 2rem;
}

.aid_estimation_box .aid_title {
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--home_accent_green);
}

.aid_estimation_box .aid_sub {
    font-size: 0.85rem;
    color: var(--home_text_muted);
    margin-top: 0.2rem;
}

.aid_estimation_box .aid_badge {
    background: rgba(16, 185, 129, 0.25);
    color: var(--home_accent_green);
    border: 1px solid rgba(16, 185, 129, 0.4);
    font-size: 0.85rem;
    font-weight: 800;
    padding: 0.35rem 0.85rem;
    border-radius: 9999px;
    white-space: nowrap;
}

/* Étapes du Formulaire */
.form_step_pane {
    display: none;
    animation: fadeInStep 0.4s ease-out;
}

.form_step_pane.active {
    display: block;
}

@keyframes fadeInStep {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.step_section_title {
    font-size: 1.3rem;
    font-weight: 800;
    margin-bottom: 1.25rem;
    color: #fff;
}

.bright_mode .step_section_title {
    color: var(--home_text_main);
}

/* Groupes et Lignes de champs */
.form_fields_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-bottom: 0;
}

.form_field_group {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-bottom: 1.25rem;
}

.form_field_label {
    font-size: 0.88rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.85);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    letter-spacing: 0.01em;
}

.bright_mode label.form_field_label {
    color: #058abc;
}

.form_field_label .label_icon {
    font-size: 1rem;
    color: var(--home_primary_cyan);
    opacity: 0.85;
}

.form_field_input,
.form_field_select,
.form_field_textarea {
    width: 100%;
    padding: 0.82rem 1rem;
    background: rgba(7, 14, 32, 0.85);
    border: 1.5px solid rgba(56, 189, 248, 0.2);
    border-radius: var(--home_radius_sm);
    color: #e2e8f0;
    font-size: 0.95rem;
    font-family: inherit;
    transition: var(--home_transition);
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
}

.form_field_select option,
.form_field_select optgroup {
    background: #0d1a30;
    color: #e2e8f0;
}

.form_field_select optgroup {
    color: var(--home_primary_cyan);
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.form_field_select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2338bdf8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.9rem center;
    padding-right: 2.5rem;
    cursor: pointer;
}

.form_field_input:focus,
.form_field_select:focus,
.form_field_textarea:focus {
    outline: none;
    border-color: var(--home_primary_cyan);
    box-shadow: 0 0 0 3px rgba(0, 229, 255, 0.15);
    background: rgba(7, 14, 32, 0.98);
    color: #fff !important;
}

.form_field_input::placeholder,
.form_field_textarea::placeholder {
    color: rgba(148, 163, 184, 0.6);
    font-style: italic;
}

.form_field_textarea {
    min-height: 90px;
    resize: vertical;
}

.input_error,
.form_field_input.input_error,
.form_field_select.input_error,
.form_field_textarea.input_error {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.25) !important;
    background: rgba(30, 10, 15, 0.95) !important;
}

/* Adaptations Bright Mode pour les champs du formulaire */
html.bright_mode .form_field_input,
html.bright_mode .form_field_select,
html.bright_mode .form_field_textarea 
{
    background: #ffffff;
    border: 1.5px solid rgba(15, 23, 42, 0.2);
    color: #0f172a;
}

html.bright_mode .form_field_select option,
html.bright_mode .form_field_select optgroup 
{
    background: #ffffff;
    color: #0f172a;
}

html.bright_mode .form_field_select optgroup 
{
    color: var(--home_accent_blue);
}

html.bright_mode .form_field_input:focus,
html.bright_mode .form_field_select:focus,
html.bright_mode .form_field_textarea:focus 
{
    background: #ffffff;
    border-color: var(--home_accent_blue);
    box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.15);
    color: #0f172a !important;
}

html.bright_mode .form_field_input::placeholder,
html.bright_mode .form_field_textarea::placeholder 
{
    color: #64748b;
    font-style: italic;
}

html.bright_mode .input_error,
html.bright_mode .form_field_input.input_error,
html.bright_mode .form_field_select.input_error,
html.bright_mode .form_field_textarea.input_error 
{
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2) !important;
    background: #fef2f2 !important;
    color: #991b1b !important;
}

.home_other_field {
    border-style: dashed;
    border-color: rgba(56, 189, 248, 0.4);
    background: rgba(56, 189, 248, 0.05);
    margin-top: 0.5rem;
}

html.bright_mode .home_other_field 
{
    border-color: rgba(2, 132, 199, 0.4);
    background: rgba(2, 132, 199, 0.04);
}

.distance_slider_group {
    margin-bottom: 1.5rem;
}

.slider_and_value_flex {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    width: 100%;
}

.cable_range_slider {
    flex: 1;
    width: 100%;
    height: 8px;
    border-radius: 9999px;
    background: rgba(30, 41, 59, 0.8);
    outline: none;
    accent-color: var(--home_primary_cyan);
    cursor: pointer;
}

.distance_display_value {
    font-family: 'Outfit', sans-serif;
    font-weight: 800;
    color: var(--home_primary_cyan);
    font-size: 1.1rem;
    min-width: 70px;
    text-align: center;
    white-space: nowrap;
    padding: 0.35rem 0.75rem;
    background: rgba(0, 229, 255, 0.08);
    border: 1px solid rgba(0, 229, 255, 0.25);
    border-radius: var(--home_radius_sm);
}

.cgu_checkbox_group {
    margin: 1.25rem 0;
}

.cgu_checkbox_label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.85rem;
    color: var(--home_text_muted);
    cursor: pointer;
}

.cgu_checkbox_input {
    margin-top: 3px;
    accent-color: var(--home_primary_cyan);
    cursor: pointer;
}

.cgu_highlight {
    color: #fff;
}

.bright_mode .cgu_highlight {
    color: var(--home_text_main);
}

.cgu_link {
    color: var(--home_primary_cyan);
    text-decoration: none;
}

.cgu_link:hover {
    text-decoration: underline;
}

.form_nav_actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 2rem;
    gap: 1rem;
}

.form_nav_actions_end {
    justify-content: flex-end;
}

.btn_step_prev {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 1.5rem;
    background: rgba(30, 41, 59, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--home_radius_md);
    color: var(--home_text_main);
    font-weight: 700;
    cursor: pointer;
    transition: var(--home_transition);
}

.bright_mode .btn_step_prev {
    background-color: #1dcffb3b;
}

.btn_step_prev:hover {
    background: rgba(30, 41, 59, 1);
    border-color: rgba(255, 255, 255, 0.25);
}

.bright_mode .btn_step_prev:hover {
    background-color: #078fb6;
    color: white;
}

.btn_step_next {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.95rem 1.75rem;
    background: linear-gradient(135deg, #00e5ff 0%, #38bdf8 100%);
    border: none;
    border-radius: var(--home_radius_md);
    color: #ffffff;
    font-weight: 800;
    font-size: 1rem;
    cursor: pointer;
    transition: var(--home_transition);
    box-shadow: 0 8px 20px rgba(0, 229, 255, 0.3);
    text-shadow: 0 0 0.8em #2c4283;
}

.btn_step_next:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 25px rgba(0, 229, 255, 0.45);
}

.btn_submit_lead_final {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 1.1rem 2rem;
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    border: none;
    border-radius: var(--home_radius_md);
    color: #fff;
    font-weight: 800;
    font-size: 1.05rem;
    cursor: pointer;
    transition: var(--home_transition);
    box-shadow: 0 10px 25px rgba(16, 185, 129, 0.35);
}

.btn_submit_lead_final:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(16, 185, 129, 0.5);
}

.quote_success_screen {
    display: none;
    text-align: center;
    padding: 3rem 1.5rem;
}

.quote_success_screen.active {
    display: block;
}

.quote_success_screen .success_icon_circle {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: rgba(16, 185, 129, 0.2);
    border: 2px solid var(--home_accent_green);
    color: var(--home_accent_green);
    font-size: 2.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
}

.success_title {
    font-size: 2rem;
    font-weight: 800;
    margin-bottom: 0.75rem;
    color: #fff;
}

.bright_mode .success_title {
    color: var(--home_text_main);
}

.success_message {
    color: var(--home_text_muted);
    max-width: 560px;
    margin: 0 auto 1.75rem;
    line-height: 1.6;
    font-size: 1.05rem;
}

/* ================================================================
 * ENCART VALIDATION SMS & EMAIL (ÉCRAN DE SUCCÈS)
 * ================================================================ */
.validation_notice_card
{
    background: rgba(6, 182, 212, 0.08);
    border: 1px solid rgba(6, 182, 212, 0.3);
    border-left: 4px solid var(--home_primary_cyan, #06b6d4);
    border-radius: 12px;
    padding: 1.5rem;
    margin: 0 auto 2rem;
    max-width: 620px;
    text-align: left;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.bright_mode .validation_notice_card
{
    background: #f0fdf4;
    border-color: #86efac;
    border-left-color: #16a34a;
    box-shadow: 0 6px 20px rgba(22, 163, 74, 0.08);
}

.validation_notice_header
{
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 0.85rem;
}

.validation_notice_icon
{
    font-size: 2.2rem;
    color: var(--home_primary_cyan, #06b6d4);
    flex-shrink: 0;
}

.bright_mode .validation_notice_icon
{
    color: #16a34a;
}

.validation_notice_title_box
{
    display: flex;
    flex-direction: column;
}

.validation_notice_title
{
    font-size: 1.1rem;
    font-weight: 700;
    color: #f8fafc;
    margin: 0;
}

.bright_mode .validation_notice_title
{
    color: #15803d;
}

.validation_notice_subtitle
{
    font-size: 0.85rem;
    color: #94a3b8;
}

.bright_mode .validation_notice_subtitle
{
    color: #4b5563;
}

.validation_notice_body
{
    font-size: 0.95rem;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0 0 1.25rem 0;
}

.bright_mode .validation_notice_body
{
    color: #374151;
}

.validation_notice_body strong
{
    color: #38bdf8;
}

.bright_mode .validation_notice_body strong
{
    color: #166534;
}

.validation_notice_steps
{
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.validation_step_badge
{
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.85rem;
    background: rgba(15, 23, 42, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #e2e8f0;
}

.bright_mode .validation_step_badge
{
    background: #ffffff;
    border-color: #bbf7d0;
    color: #166534;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.validation_step_badge .material-symbols-rounded
{
    font-size: 1.15rem;
    color: var(--home_primary_cyan, #06b6d4);
}

.bright_mode .validation_step_badge .material-symbols-rounded
{
    color: #16a34a;
}

/* ================================================================
 * 5. NOUVELLE SECTION : LE RÔLE DE L'INSTALLATEUR IRVE (#role_installateur)
 * ================================================================ */
.installer_role_section {
    padding: 5.5rem 1.5rem;
    background: radial-gradient(circle at 50% 0%, rgba(6, 182, 212, 0.08) 0%, transparent 60%),
        var(--home_section_bg_alt);
    position: relative;
    border-top: 1px solid var(--home_border_subtle);
    border-bottom: 1px solid var(--home_border_subtle);
}

.installer_role_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin-bottom: 3.5rem;
}

.installer_role_card {
    background: var(--home_card_bg);
    border: 1px solid var(--home_card_border);
    border-radius: var(--home_radius_xl);
    padding: 2.25rem;
    transition: var(--home_transition);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    backdrop-filter: blur(12px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
    position: relative;
    overflow: hidden;
}

.installer_role_card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, var(--home_primary_cyan) 0%, var(--home_accent_blue) 100%);
    opacity: 0.8;
}

.installer_role_card:hover {
    transform: translateY(-5px);
    border-color: var(--home_primary_cyan);
    box-shadow: 0 18px 40px rgba(0, 229, 255, 0.18);
}

.role_icon_box {
    width: 52px;
    height: 52px;
    border-radius: var(--home_radius_md);
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.3);
    color: var(--home_primary_cyan);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    margin-bottom: 1.25rem;
}

.role_card_title {
    font-family: 'Outfit', sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--home_text_main);
    margin-bottom: 0.75rem;
}

.role_card_text {
    font-size: 0.95rem;
    line-height: 1.65;
    color: var(--home_text_muted);
    margin-bottom: 1.5rem;
}

.role_card_highlight {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.85rem;
    background: rgba(16, 185, 129, 0.1);
    border: 1px solid rgba(16, 185, 129, 0.25);
    border-radius: var(--home_radius_sm);
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--home_accent_green);
}

.role_card_highlight .check_icon {
    font-size: 1.1rem;
}

/* Bannière réassurance synthèse */
.installer_role_banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.9) 0%, rgba(6, 182, 212, 0.15) 100%);
    border: 1px solid rgba(56, 189, 248, 0.3);
    border-radius: var(--home_radius_xl);
    padding: 2.5rem;
    backdrop-filter: blur(14px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.35);
}

.bright_mode .installer_role_banner {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(8, 145, 178, 0.15) 100%);
    border-color: rgba(8, 145, 178, 0.25);
}

.banner_badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.8rem;
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.35);
    border-radius: 9999px;
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--home_primary_cyan);
    margin-bottom: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.banner_title {
    font-family: 'Outfit', sans-serif;
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--home_text_main);
    margin-bottom: 0.5rem;
}

.banner_desc {
    font-size: 0.95rem;
    color: var(--home_text_muted);
    margin: 0;
}

.btn_banner_cta {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.85rem;
    background: linear-gradient(135deg, #00e5ff 0%, #38bdf8 100%);
    border-radius: var(--home_radius_md);
    font-size: 1.05rem;
    font-weight: 800;
    color: #ffffff;
    text-decoration: none;
    white-space: nowrap;
    transition: var(--home_transition);
    box-shadow: 0 10px 25px rgba(0, 229, 255, 0.3);
}

.bright_mode a.btn_banner_cta {
    color: #ffffff;
}

.btn_banner_cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(0, 229, 255, 0.45);
}

/* ================================================================
 * 6. SECTIONS SERVICES, LOGOS, TÉMOIGNAGES & VILLES
 * ================================================================ */
.page_width_wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.Partners_Bar {
    padding: 2.5rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(10, 16, 28, 0.5);
    display: none;
}

.Partners_Label {
    text-align: center;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--home_text_dim);
    margin-bottom: 1.25rem;
}

.Partners_Grid {
    display: flex;
    justify-content: center;
    gap: 3rem;
    flex-wrap: wrap;
}

.Partner_Item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.45);
    font-size: 1.1rem;
    letter-spacing: 0.05em;
    transition: var(--home_transition);
}

.Partner_Item:hover {
    color: var(--home_primary_cyan);
}

.Services_Grid_Section {
    padding: 5rem 0;
}

.Section_Title_Premium {
    font-family: 'Outfit', sans-serif;
    font-size: 2.4rem;
    font-weight: 800;
    text-align: center;
    margin-bottom: 3rem;
    z-index: 2;
    position: relative;
}

.Section_Title_Premium .Accent {
    color: var(--home_primary_cyan);
}

.Services_Container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.Service_Card {
    background: var(--home_card_bg);
    border: 1px solid var(--home_card_border);
    border-radius: var(--home_radius_lg);
    overflow: hidden;
    transition: var(--home_transition);
    display: flex;
    flex-direction: column;
    z-index: 2;
    position: relative;
    backdrop-filter: blur(6px);
}

.Service_Card:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 35px rgba(0, 229, 255, 0.2);
    border-color: var(--home_primary_cyan);
}

.Service_Visual {
    height: 220px;
    overflow: hidden;
    position: relative;
}

.Service_Visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.Service_Card:hover .Service_Visual img {
    transform: scale(1.06);
}

.Service_Content_Box {
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    justify-content: space-between;
}

.Service_Card_Header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.Service_Card_Header h3 {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--home_text_main);
}

.Service_Card_Header .icon {
    color: var(--home_primary_cyan);
    font-size: 1.5rem;
}

.Service_Text {
    color: var(--home_text_muted);
    font-size: 0.92rem;
    line-height: 1.55;
    margin-bottom: 1.5rem;
}

.Service_Card_CTA {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--home_primary_cyan);
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
    transition: var(--home_transition);
}

.Service_Card_CTA:hover {
    color: var(--home_accent_blue);
    transform: translateX(4px);
}

/* Témoignages */
.Testimonials_Section {
    padding: 5rem 0;
    background: var(--home_section_bg_alt);
}

.Testimonials_Grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
    margin-top: 2.5rem;
}

.Testimonial_Card {
    background: var(--home_card_bg);
    border: 1px solid var(--home_card_border);
    border-radius: var(--home_radius_lg);
    padding: 1.75rem;
    z-index: 2;
    backdrop-filter: blur(6px);
}

.Testimonial_Header {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1rem;
}

.Testimonial_Avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(56, 189, 248, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--home_primary_cyan);
}

.Testimonial_Meta .Testimonial_Name {
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--home_text_main);
    display: block;
}

.Testimonial_Meta .Testimonial_Location {
    font-size: 0.8rem;
    color: var(--home_text_muted);
    display: block;
}

.Testimonial_Stars {
    display: flex;
    gap: 2px;
    color: #f59e0b;
    margin-top: 2px;
}

.Testimonial_Stars .material-symbols-rounded {
    font-size: 1rem;
}

/* n° 1422 (24/10/2026) : la police d'icônes est chargée avec l'axe FILL mais rien ne le réglait,
   les étoiles des avis restaient en contour : étoiles pleines, sauf les étoiles vides (contour atténué) */
.Testimonial_Stars .material-symbols-rounded,
.Testimonial_Stars .star_fill
{
    font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.Testimonial_Stars .star_empty
{
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
    opacity: 0.45;
}

.Testimonial_Content {
    font-size: 0.92rem;
    line-height: 1.6;
    color: var(--home_text_muted);
    font-style: italic;
}

.testimonials_cta_wrapper
{
    margin-top: 2.5rem;
    text-align: center;
}

.btn_home_testimonials_cta
{
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.9rem 2rem;
    border-radius: 999px;
    background: rgba(6, 182, 212, 0.12);
    border: 1px solid rgba(6, 182, 212, 0.35);
    color: var(--cyan-accent, #06b6d4);
    font-size: 0.95rem;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.25s ease;
    box-shadow: 0 4px 16px rgba(6, 182, 212, 0.15);
}

.btn_home_testimonials_cta:hover
{
    background: var(--cyan-accent, #06b6d4);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(6, 182, 212, 0.35);
}

.btn_home_testimonials_cta .chevron_icon
{
    transition: transform 0.2s ease;
}

.btn_home_testimonials_cta:hover .chevron_icon
{
    transform: translateX(4px);
}

html.bright_mode .btn_home_testimonials_cta,
.bright_mode .btn_home_testimonials_cta
{
    background: #0284c7;
    color: #ffffff;
    border-color: #0284c7;
}

html.bright_mode .btn_home_testimonials_cta:hover,
.bright_mode .btn_home_testimonials_cta:hover
{
    background: #0369a1;
    color: #ffffff;
}

/* Villes Grid */
.Cities_Links_Section {
    padding: 5rem 0;
}

.Cities_Grid_Container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.75rem;
    margin-top: 2.5rem;
}

.City_Link_Card {
    background: var(--home_card_sub_bg);
    border: 1px solid var(--home_border_subtle);
    border-radius: var(--home_radius_sm);
    padding: 0.75rem 1rem;
    text-decoration: none;
    color: var(--home_text_main);
    transition: var(--home_transition);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    z-index: 2;
    backdrop-filter: blur(6px);
}

.City_Link_Card:hover {
    background: var(--home_card_sub_hover);
    border-color: var(--home_primary_cyan);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px var(--home_card_glow);
}

.City_Link_Card .SEO_Tag {
    font-size: 0.72rem;
    color: var(--home_text_dim);
    text-transform: uppercase;
    font-weight: 700;
}

.City_Link_Card .City_Name {
    font-size: 1.05rem;
    font-weight: 800;
    color: #fff;
}

.bright_mode .City_Link_Card .City_Name {
    color: var(--home_text_main);
}

.City_Link_Card .Explore_Hint {
    font-size: 0.78rem;
    color: var(--home_primary_cyan);
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 0.5rem;
}

/* CTA Partenaire */
.partner_cta {
    padding: 4rem 1.5rem;
}

.partner_cta_card {
    max-width: 1000px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 350px 1fr;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.9) 0%, rgba(30, 41, 59, 0.9) 100%);
    border: 1px solid var(--home_card_border);
    border-radius: var(--home_radius_xl);
    overflow: hidden;
}

.partner_cta_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.partner_cta_text {
    padding: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.partner_cta_text h3 {
    font-family: 'Outfit', sans-serif;
    font-size: 1.6rem;
    font-weight: 800;
    margin-bottom: 0.75rem;
}

.partner_cta_text p {
    color: var(--home_text_muted);
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 1.75rem;
}

.partner_cta_btn
{
    display: inline-flex;
    padding: 0.95rem 1.75rem;
    background: var(--home_primary_cyan);
    color: #ffffff !important;
    font-weight: 800;
    border-radius: var(--home_radius_md);
    text-decoration: none;
    transition: var(--home_transition);
}

.partner_cta_btn span,
.partner_cta_btn .material-symbols-outlined
{
    color: #ffffff !important;
}

.partner_cta_btn:hover
{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0, 229, 255, 0.4);
    color: #ffffff !important;
}

/* ================================================================
 * 7. RESPONSIVE DESIGN
 * ================================================================ */
@media (max-width: 1024px) {
    .Hero_Content {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 2rem;
    }

    .Hero_Subtitle {
        margin: 0 auto 2rem;
    }

    .Hero_Proof_Flex {
        justify-content: center;
    }

    .installer_role_grid {
        grid-template-columns: 1fr;
    }

    .installer_role_banner {
        flex-direction: column;
        text-align: center;
    }

    .Services_Container {
        grid-template-columns: 1fr 1fr;
    }

    .Testimonials_Grid {
        grid-template-columns: 1fr 1fr;
    }

    .roi_calculator_box {
        grid-template-columns: 1fr;
    }

    .partner_cta_card {
        grid-template-columns: 1fr;
    }

    .partner_cta_image {
        height: 200px;
    }
}

@media (max-width: 768px) {
    .Hero_Premium {
        background-image: none !important;
        background: radial-gradient(circle at 50% 20%, rgba(14, 165, 233, 0.15), transparent 70%),
            var(--home_bg_dark);
        padding: 4rem 1.25rem 3rem;
        min-height: auto;
    }

    .Hero_Overlay {
        display: none;
    }

    .hero_mobile_image_card {
        display: block;
        max-width: 100%;
        margin: 1.5rem auto 2rem;
        position: relative;
        width: 100%;
        height: 400px;
        overflow: hidden;
    }

    .Hero_Title {
        font-size: 2.4rem;
    }

    .Hero_Expert_Mention {
        font-size: 0.92rem;
    }

    .section_title_large {
        font-size: 1.85rem;
    }

    .devis_section {
        padding: 3rem 1rem;
    }

    .quote_card_multi_step {
        padding: 1.5rem 1.25rem;
        border-radius: var(--home_radius_lg);
    }

    .form_progress_bar {
        gap: 0;
        justify-content: space-around;
    }

    .step_label {
        display: none;
    }

    .progress_step {
        flex-direction: column;
        align-items: center;
        gap: 0.3rem;
    }

    .progress_step.active .step_label {
        display: block;
        font-size: 0.75rem;
        text-align: center;
    }

    .aid_estimation_box {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 1rem;
    }

    .aid_estimation_box .aid_badge {
        align-self: flex-start;
    }

    .form_fields_row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .installer_role_section {
        padding: 3.5rem 1rem;
    }

    .installer_role_card {
        padding: 1.5rem;
    }

    .installer_role_banner {
        padding: 1.75rem 1.25rem;
    }

    .Services_Container {
        grid-template-columns: 1fr;
    }

    .Testimonials_Grid {
        grid-template-columns: 1fr;
    }

    .roi_costs_split_grid {
        grid-template-columns: 1fr;
    }

    .form_nav_actions {
        margin-top: 1.5rem;
    }

    .btn_step_next,
    .btn_step_prev,
    .btn_submit_lead_final {
        font-size: 0.92rem;
        padding: 0.85rem 1.25rem;
    }
}

@media (max-width: 480px) {
    .Hero_Title {
        font-size: 2rem;
    }

    .quote_card_multi_step {
        padding: 1.25rem 1rem;
    }

    .step_number {
        width: 30px;
        height: 30px;
        font-size: 0.85rem;
    }

    .step_section_title {
        font-size: 1.15rem;
    }

    .aid_estimation_box .aid_title {
        font-size: 1rem;
    }

    .btn_step_next,
    .btn_step_prev,
    .btn_submit_lead_final {
        width: 100%;
        justify-content: center;
    }

    .form_nav_actions {
        flex-direction: column-reverse;
        gap: 0.75rem;
    }

    .section_title_large {
        font-size: 1.6rem;
    }
}

/* ================================================================
 * GOOGLE PLACES AUTOCOMPLETE — Styles Bimodaux Home
 * ================================================================ */
.pac-container,
html.dark_mode .pac-container,
html:not(.bright_mode) .pac-container 
{
    background-color: #0f172a !important;
    border: 1.5px solid rgba(56, 189, 248, 0.35) !important;
    border-radius: 12px !important;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.65) !important;
    font-family: inherit !important;
    margin-top: 6px !important;
    z-index: 10000 !important;
}

.pac-item,
html.dark_mode .pac-item,
html:not(.bright_mode) .pac-item 
{
    padding: 11px 16px !important;
    font-size: 0.92rem !important;
    color: #94a3b8 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease !important;
}

.pac-item:first-child,
html.dark_mode .pac-item:first-child,
html:not(.bright_mode) .pac-item:first-child 
{
    border-top: none !important;
}

.pac-item:hover,
.pac-item-selected,
html.dark_mode .pac-item:hover,
html.dark_mode .pac-item-selected,
html:not(.bright_mode) .pac-item:hover,
html:not(.bright_mode) .pac-item-selected 
{
    background-color: rgba(6, 182, 212, 0.18) !important;
}

.pac-item-query,
html.dark_mode .pac-item-query,
html:not(.bright_mode) .pac-item-query 
{
    color: #f8fafc !important;
    font-weight: 700 !important;
    font-size: 0.96rem !important;
}

.pac-matched,
html.dark_mode .pac-matched,
html:not(.bright_mode) .pac-matched 
{
    color: #22d3ee !important;
    font-weight: 800 !important;
}

.pac-icon,
html.dark_mode .pac-icon,
html:not(.bright_mode) .pac-icon 
{
    filter: invert(0.9) hue-rotate(180deg) !important;
}

/* Bright Mode Spécifique pour Google Places */
html.bright_mode .pac-container 
{
    background-color: #ffffff !important;
    border: 1.5px solid rgba(15, 23, 42, 0.18) !important;
    border-radius: 12px !important;
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.12) !important;
    font-family: inherit !important;
    margin-top: 6px !important;
    z-index: 10000 !important;
}

html.bright_mode .pac-item 
{
    padding: 11px 16px !important;
    font-size: 0.92rem !important;
    color: #475569 !important;
    border-top: 1px solid #f1f5f9 !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease !important;
}

html.bright_mode .pac-item:first-child 
{
    border-top: none !important;
}

html.bright_mode .pac-item:hover,
html.bright_mode .pac-item-selected 
{
    background-color: #e0f2fe !important;
}

html.bright_mode .pac-item-query 
{
    color: #0f172a !important;
    font-weight: 700 !important;
    font-size: 0.96rem !important;
}

html.bright_mode .pac-matched 
{
    color: #0284c7 !important;
    font-weight: 800 !important;
}

html.bright_mode .pac-icon 
{
    filter: none !important;
}

/* =========================================================================
   BRIGHT MODE — Simulateur Devis Home & Composants Interactifs
   Syntaxe Allman stricte — A VALIDER PAR JaxX
   ========================================================================= */

html.bright_mode .quote_card_multi_step
{
    background-color: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.1);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

html.bright_mode .housing_option_card
{
    background-color: #f8fafc;
    border: 1.5px solid #e2e8f0;
    color: var(--text_primary);
}

html.bright_mode .housing_option_card:hover
{
    background-color: #f0fdfa;
    border-color: var(--cyan-accent);
}

html.bright_mode .housing_option_card.selected
{
    background-color: #ecfeff;
    border-color: var(--cyan-500);
    box-shadow: 0 0 0 2px rgba(6, 182, 212, 0.2);
}

html.bright_mode .housing_option_card .housing_title
{
    color: #0f172a;
}

html.bright_mode .housing_option_card .housing_desc
{
    color: #64748b;
}

html.bright_mode .aid_estimation_box
{
    background-color: #f0fdfa;
    border: 1px solid rgba(6, 182, 212, 0.35);
    color: #0f172a;
}

html.bright_mode .aid_estimation_box .aid_title
{
    color: #0e7490;
}

html.bright_mode .aid_estimation_box .aid_desc
{
    color: #334155;
}

html.bright_mode #quote_success_state
{
    background-color: #ffffff;
    border: 1.5px solid #22c55e;
    color: #0f172a;
    box-shadow: 0 10px 30px rgba(34, 197, 94, 0.1);
}

html.bright_mode #quote_success_state h3
{
    color: #15803d;
}

html.bright_mode #quote_success_state p
{
    color: #334155;
}

html.bright_mode .progress_step .step_circle
{
    background-color: #e2e8f0;
    color: #64748b;
    border: 2px solid #cbd5e1;
}

html.bright_mode .progress_step.active .step_circle
{
    background-color: var(--cyan-500);
    color: #ffffff;
    border-color: var(--cyan-500);
}

html.bright_mode .progress_step.completed .step_circle
{
    background-color: #10b981;
    color: #ffffff;
    border-color: #10b981;
}

html.bright_mode .progress_step .step_label
{
    color: #64748b;
}

html.bright_mode .progress_step.active .step_label
{
    color: #0f172a;
    font-weight: 700;
}

/* n° 1524 (24/10/2026) : #electric-canvas (z-index 1) de nouveau visible sur l'accueil, au-dessus des fonds
   des sections et au-dessous de leur contenu.
   Cause : la règle générale « .content>*:not(#electric-canvas) { z-index: 2 } » de theme.css (05/10/2026) faisait
   de .Home_V6_Container un bloc entier, fonds compris, posé devant le canvas : la photo du hero et les fonds
   sombres des sections le masquaient partout.
   Ordre obtenu : fond de section, voile du hero, canvas, puis textes, cartes et formulaire (z-index 2). */
.content > .Home_V6_Container:not(#electric-canvas)
{
    z-index: auto;
}

.Home_V6_Container > section > .page_width_wrapper,
.Home_V6_Container > section > .container_narrow,
.Home_V6_Container .Hero_Content
{
    position: relative;
    z-index: 2;
}

.Home_V6_Container .Hero_Overlay
{
    z-index: 0;
}
