/*** POPUP PAC ***/
#pac-viz { position:absolute;left:0px;top:0px;width:450px;max-width:100%; max-height:85vh;background:#fff;border-radius:8px;border:5px solid #e74c3c;box-shadow:0 4px 20px rgba(231,76,60,0.4);z-index:9999;overflow:hidden; }
#pac-viz .hdr{background:linear-gradient(135deg,#12709b,#0e5a7d);color:#fff;padding:8px 20px;text-align:center;position:relative;height:39px;display:flex;flex-direction:column;justify-content:center;cursor:move;user-select:none}
#pac-viz .hdr h2{margin:0;font-size:15px;margin-bottom:2px;font-weight:600}
#pac-viz .hdr p{margin:0;font-size:11px;opacity:0.9;display:none}
#pac-viz .close{position:absolute;top:7px;right:10px;background:rgba(255,255,255,0.2);border:none;color:#fff;width:25px;height:25px;border-radius:50%;cursor:pointer;font-size:16px}
#pac-viz .minimize{position:absolute;top:7px;right:45px;background:rgba(255,255,255,0.2);border:none;color:#fff;width:25px;height:25px;border-radius:50%;cursor:pointer;font-size:20px;line-height:20px;font-weight:bold;display:flex;align-items:center;justify-content:center;transition:background 0.2s}
#pac-viz .minimize:hover{background:rgba(255,255,255,0.3)}
#pac-viz.minimized .cnt{display:none}
#pac-viz.minimized{max-height:59px}
#pac-viz .cnt{padding:2px;background:linear-gradient(to bottom,#e3f2fd,#fff);max-height:calc(85vh - 80px);overflow-y:auto}
#pac-viz .scene{position:relative;width:100%;height:350px;background:linear-gradient(to bottom,#87CEEB,#E0F6FF 50%,#90EE90);border-radius:8px;overflow:hidden;margin-bottom:20px}
#pac-viz .ground{position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(to bottom,#8B7355,#654321)}
#pac-viz .house{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);width:280px;height:180px}
#pac-viz .roof{width:0;height:0;border-left:150px solid transparent;border-right:150px solid transparent;border-bottom:80px solid #D2691E;position:absolute;top:-70px;left:-10px}
#pac-viz .body{width:100%;height:140px;background:#CD853F;border:3px solid #8B4513;position:relative}
#pac-viz .win{width:50px;height:60px;background:#87CEEB;border:3px solid #4682B4;position:absolute;top:20px}
#pac-viz .win.l{left:30px}
#pac-viz .win.r{right:30px}
#pac-viz .door{width:50px;height:80px;background:#8B4513;border:3px solid #654321;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}
#pac-viz .indoor{position:absolute;width:60px;height:40px;background:#f0f0f0;border:2px solid #999;border-radius:5px;bottom:90px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;font-size:8px;color:#666;font-weight:bold}
#pac-viz .pac{position:absolute;bottom:60px;right:80px;width:70px;height:100px;background:linear-gradient(135deg,#2c3e50,#34495e);border:3px solid #1a252f;border-radius:5px}
#pac-viz .pac::before{content:"PAC";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:bold;font-size:14px}
#pac-viz .pac::after{content:"";position:absolute;top:10px;left:10px;right:10px;height:20px;background:repeating-linear-gradient(90deg,#555 0px,#555 2px,transparent 2px,transparent 6px)}
#pac-viz .sup{position:absolute;bottom:55px;right:75px;width:80px;height:10px;background:#FF6B6B;border-radius:3px;display:none}
#pac-viz .sup.v{display:block}
#pac-viz .kit{position:absolute;bottom:100px;right:30px;display:none}
#pac-viz .kit.v{display:block}
#pac-viz .pipe{width:8px;height:40px;background:linear-gradient(to right,#95a5a6,#7f8c8d);border-radius:4px;margin:3px 0}
#pac-viz .buf{position:absolute;top:20px;right:50px;width:50px;height:80px;background:linear-gradient(135deg,#3498db,#2980b9);border:3px solid #2471a3;border-radius:8px;display:none}
#pac-viz .buf.v{display:block}
#pac-viz .buf::before{content:"60L";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:bold;font-size:10px}
#pac-viz .bkit{position:absolute;top:110px;right:45px;width:60px;height:15px;background:#e74c3c;border-radius:3px;display:none}
#pac-viz .bkit.v{display:block}
#pac-viz .thermo{position:absolute;top:30px;left:50px;width:60px;background:linear-gradient(135deg,#e74c3c,#c0392b);border:3px solid #a93226;border-radius:10px;display:none}
#pac-viz .thermo.v{display:block}
#pac-viz .thermo[data-size="100"]{height:80px}
#pac-viz .thermo[data-size="200"]{height:120px}
#pac-viz .thermo[data-size="300"]{height:160px}
#pac-viz .thermo::before{content:attr(data-size)"L";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:bold;font-size:12px}
#pac-viz .leg{background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,0.1)}
#pac-viz .leg h3{margin:0 0 10px 0;font-size:16px;color:#5e6d82;font-family:"Open Sans",Arial,sans-serif;font-weight:400}
#pac-viz .li{display:flex;align-items:center;margin:8px 0;opacity:0.3;transition:opacity 0.3s}
#pac-viz .li.a{opacity:1}
#pac-viz .lc{width:28px;height:28px;border-radius:3px;margin-right:10px;border:1px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:16px;color:#e74c3c}
#pac-viz .li span:not(.check):not(.cross){font-size:14px;color:#5e6d82;font-family:"Open Sans",Arial,sans-serif;font-weight:400;flex:1;min-width:0}
#pac-viz .check{color:#4CAF50 !important;font-size:18px !important;font-weight:bold !important;opacity:0;transition:opacity 0.3s;flex-shrink:0;line-height:1;display:flex;align-items:center;width:20px;justify-content:center}
#pac-viz .li.a .check{opacity:1 !important}
#pac-viz .cross{color:#e74c3c !important;font-size:18px !important;font-weight:bold !important;opacity:0;transition:opacity 0.3s;flex-shrink:0;line-height:1;display:flex;align-items:center;width:20px;justify-content:center}
#pac-viz .li.d .cross{opacity:1 !important}
#pac-viz.all-selected{border:5px solid #4CAF50 !important;box-shadow:0 4px 20px rgba(76,175,80,0.4) !important}

.white-spacer { display:none; padding-bottom:10px; background-color:#fff; }
.pac-container { display:none; padding:10px 20px; }

/* Styles pour le composant d'éligibilité */
.eligibility-checker { margin:5px auto; padding:5px 0; font-family: 'Open Sans', sans-serif; font-weight: 300; font-size: 16px; }
.eligibility-title { color: #12709b; text-align: center; font-size: 20px; font-weight: 700; margin-bottom: 10px; }
.eligibility-input-container { margin-bottom: 10px; position: relative; display: flex; align-items: center; justify-content: center; }
.eligibility-search-icon { position: absolute; left:10px; color: #12709b; font-size: 18px; pointer-events: none; z-index: 1; }
.eligibility-input { width:100%; padding: 12px 12px 12px 40px; font-size: 16px; font-family: 'Open Sans', sans-serif; font-weight: 300; border: none; border-bottom: 2px solid #ddd; border-radius: 0; box-sizing: border-box; transition: border-color 0.3s; background-color: white; }
.eligibility-input:focus { outline: none; border-bottom-color: #12709b; }
.eligibility-autocomplete {
    position: absolute;
    top: 100%;
    width: 100%;
    max-height: 250px;
    overflow-y: auto;
    background-color: white;
    border: 1px solid #ddd;
    border-top: none;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    display: none;
}
.eligibility-autocomplete-item {
    padding: 10px 12px;
    cursor: pointer;
    font-size: 16px;
    font-family: 'Open Sans', sans-serif;
    font-weight: 300;
    transition: background-color 0.2s;
    border-bottom: 1px solid #f0f0f0;
}

.eligibility-autocomplete-item:last-child {
    border-bottom: none;
}

.eligibility-autocomplete-item:hover {
    background-color: #f0f9f9;
}

.eligibility-autocomplete-item.selected {
    background-color: #e6f4f4;
}

.eligibility-autocomplete-item .city-name {
    font-weight: 400;
    color: #333;
}

.eligibility-autocomplete-item .postal-code {
    color: #666;
    font-size: 14px;
    margin-left: 8px;
}

.eligibility-loading {
    padding: 10px 12px;
    text-align: center;
    color: #999;
    font-style: italic;
}
.eligibility-message { margin-top: 10px; padding: 0; font-size: 16px; font-family: 'Open Sans', sans-serif; font-weight: 300; display: none; align-items: center; justify-content: center; }
.eligibility-message.success { color: #4bb543; display: flex; }
.eligibility-message.error { color: #ff0000; display: flex; }
.eligibility-icon { font-size: 20px; font-weight: bold; margin-right: 10px; flex-shrink: 0; }
.eligibility-icon.success { color: #4bb543; }
.eligibility-icon.error { color: #ff0000; }

/*** AIDES PAC ***/
/*.bundle-display-price .child-product.pac-aides { background-color:#e7ffe7; }*/
#infobulle-pac-aides { min-width:288px; }
#infobulle-pac-aides .eligible { color:green; padding-left:0; }
#infobulle-pac-aides .n-eligible { color:red; padding-left:0; }
#pac-aides-amount.need-calc { cursor:pointer; text-decoration:underline; }
.calculateur-container { margin: 0 auto 15px; }

/* Accordéon */
.accordion { border-radius: 4px; overflow: hidden; }
.accordion-button { width:100%; padding:8px 30px 10px 25px; font-size: 16px; background-color: #12709b; color: white; border: none; cursor: pointer; display: flex; align-items: center; gap: 12px; transition: background-color 0.3s ease; border-radius:4px; }
.accordion-button:hover,
.accordion-button.active { background-color: #80b601; }
.accordion-button .icon { width: 20px; height: 20px; flex-shrink: 0; }
.accordion-button span { flex: 1; text-align: center; font-weight: 300; }
.accordion-button .chevron { width: 20px; height: 20px; flex-shrink: 0; transition: transform 0.3s ease; }
.accordion-button.active .chevron { transform: rotate(180deg); }
.accordion-content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; padding:0; }
.accordion-content.open { max-height: 2000px; padding:10px 0; }

/* Formulaire */
.form-group { margin-bottom: 10px; }
.form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #333; }
.form-group select,
.form-group input[type="number"] { width:100%; padding: 10px 15px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; background-color: white; transition: border-color 0.3s ease; }
.form-group select:focus,
.form-group input[type="number"]:focus { outline: none; border-color: #12709b; }
.checkbox-group label { display: flex; align-items: center; gap: 10px; cursor: pointer; font-weight: normal; }
.checkbox-group input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; }

/* Sliders */
.slider-container {
    margin-top: 10px;
    padding:0 1px;
}

.slider {
    position:relative;
    width: 100%;
    height: 8px;
    border-radius: 5px;
    background: #12709b; /* Couleur du rail bleu */
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    overflow:unset;
}

/* Personnalisation du curseur (Webkit: Chrome, Safari) */
.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: radial-gradient(circle, white 0%, white 30%, #d03a0c 30%, #d03a0c 100%);
    cursor: pointer;
    transition: transform 0.3s ease;
    position: relative;
    border: 2px solid #d03a0c;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

/* Personnalisation du curseur (Firefox) */
.slider::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: radial-gradient(circle, white 0%, white 30%, #d03a0c 30%, #d03a0c 100%);
    cursor: pointer;
    border: 2px solid #d03a0c;
    transition: transform 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.slider::-moz-range-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.slider-value {
    text-align: center;
    margin-top: 5px;
    font-size: 18px;
    font-weight: 400;
    color: #12709b;
}

/* Boutons d'action */
.form-actions { display: flex; gap: 15px; margin-top:10px; }
.form-actions .secondary { background-color:#fff; color:#5e6d82; }
.form-actions .secondary:hover { background-color:#e6ecf2; }
#pac-aides-submit { flex-grow:1; }

/* Résultats */
.resultats { background: white; border-radius: 4px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); padding: 30px; margin-top: 30px; }
.resultats h2 { color: #12709b; margin-bottom: 20px; font-size: 24px; }
.aide-card { background: #f8f9fa; border-left: 4px solid #12709b; padding: 20px; margin-bottom: 20px; border-radius: 4px; }
.aide-card h3 { color: #12709b; margin-bottom: 10px; font-size: 20px; }
.aide-montant { font-size: 28px; font-weight: 600; color: #80b601; margin: 15px 0; }
.aide-description { color: #666; font-size: 14px; line-height: 1.6; }
.total-aides { background: linear-gradient(135deg, #12709b 0%, #80b601 100%); color: white; padding: 25px; border-radius: 4px; text-align: center; margin-top: 30px; }
.total-aides h3 { font-size: 20px; margin-bottom: 10px; }
.total-aides .montant { font-size: 36px; font-weight: 600; }

/*.alert { padding: 15px 20px; border-radius: 4px; margin-bottom: 20px; }
.alert-info { background-color: #d1ecf1; border-left: 4px solid #0c5460; color: #0c5460; }
.alert-warning { background-color: #fff3cd; border-left: 4px solid #856404; color: #856404; }*/

/* Responsive */

@media only screen and (max-width: 1080px) {
    .pac-container { padding:10px; }
}

@media (max-width: 768px) {
    #pac-viz .scene{height:350px}
    #pac-viz .house{width:200px;height:130px}
    #pac-viz .roof{border-left:110px solid transparent;border-right:110px solid transparent;border-bottom:60px solid #D2691E;top:-55px}
    #pac-viz .pac{width:55px;height:80px;right:60px}
    #pac-viz .pac::before{font-size:11px}
    #pac-viz .sup{width:60px;height:8px;right:57px}
    #pac-viz .kit{right:20px;bottom:80px}
    #pac-viz .buf{width:40px;height:65px;right:40px}
    #pac-viz .thermo[data-size="100"]{height:65px}
    #pac-viz .thermo[data-size="200"]{height:95px}
    #pac-viz .thermo[data-size="300"]{height:125px}

    .accordion-button { width:100%; margin-right:0; font-size:14px; }
    .form-group select,
    .form-group input[type="number"] { width:100%; }
    .form-actions { flex-direction:column; }
    .btn { width:100%; }
}

@media (max-width: 480px) {
    /*#pac-viz .leg{display:none !important}*/
    #pac-viz .hdr h2{font-size:16px}
    #pac-viz .hdr p{font-size:11px}
    #pac-viz .cnt{padding:10px}
    #pac-viz .scene{height:250px;margin-bottom:0}
    #pac-viz .house{width:160px;height:100px}
    #pac-viz .roof{border-left:85px solid transparent;border-right:85px solid transparent;border-bottom:45px solid #D2691E;top:-42px;left:-5px}
    #pac-viz .body{height:90px;border:2px solid #8B4513}
    #pac-viz .win{width:35px;height:40px;border:2px solid #4682B4}
    #pac-viz .win.l{left:20px}
    #pac-viz .win.r{right:20px}
    #pac-viz .door{width:35px;height:55px;border:2px solid #654321}
    #pac-viz .indoor{width:45px;height:30px;font-size:7px;bottom:70px}
    #pac-viz .pac{width:45px;height:65px;right:50px;bottom:45px;border:2px solid #1a252f}
    #pac-viz .pac::before{font-size:9px}
    #pac-viz .pac::after{height:15px}
    #pac-viz .sup{width:50px;height:6px;right:47px;bottom:42px}
    #pac-viz .kit{right:15px;bottom:65px}
    #pac-viz .pipe{width:6px;height:30px}
    #pac-viz .buf{width:32px;height:50px;right:30px;top:15px;border:2px solid #2471a3}
    #pac-viz .buf::before{font-size:8px}
    #pac-viz .bkit{width:45px;height:12px;right:35px;top:70px}
    #pac-viz .thermo{width:45px;left:35px;top:20px;border:2px solid #a93226}
    #pac-viz .thermo[data-size="100"]{height:50px}
    #pac-viz .thermo[data-size="200"]{height:75px}
    #pac-viz .thermo[data-size="300"]{height:100px}
    #pac-viz .thermo::before{font-size:10px}
    #pac-viz .leg{padding:12px}
    #pac-viz .leg h3{font-size:13px}
    #pac-viz .li{margin:6px 0}
    #pac-viz .lc{width:26px;height:26px;font-size:14px}
    #pac-viz .li span{font-size:11px}
}