:root{--bleu-france:#2563EB;--bleu-france-hover:#1D4FD8;--bleu-survol:#0E315B;--bleu-975:#F7FAFF;--bleu-950:#EAF2FF;--bleu-925:#D8E3F2;--rouge-marianne:#EF4444;--rouge-975:#FDE8E8;--ink:#0F172A;--ink-soft:#475569;--ink-faint:#64748B;--ink-mute:#64748B;--on-deep:#FFFFFF;--on-deep-soft:#D8E3F2;--bg:#FFFFFF;--bg-soft:#F7FAFF;--bg-zebra:#F7FAFF;--border:#D8E3F2;--border-soft:#EAF2FF;--border-strong:#B9CCE6;--gauge-track:#EAF2FF;--best:#10B981;--best-bg:#DDF8EE;--rank-1:#10B981;--good-fg:#10B981;--good-bg:#DDF8EE;--warn-fg:#B45309;--warn-bg:#FFF1D6;--bad-fg:#EF4444;--bad-bg:#FDE8E8;--font-display:"Poppins", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-ui:"Inter", system-ui, -apple-system, sans-serif;--font-num:"Inter", system-ui, -apple-system, sans-serif;--fw-display:600;--fs-h1:40px;--lh-h1:1.15;--ls-h1:-.02em;--fs-h2:28px;--lh-h2:1.2;--fs-verdict:28px;--lh-verdict:1.2;--radius-xs:8px;--radius-sm:12px;--radius:16px;--radius-lg:24px;--radius-xl:32px;--radius-pill:999px;--shadow:0 12px 32px rgba(10, 35, 67, .10);--shadow-sm:0 6px 16px rgba(10, 35, 67, .08);--shadow-md:0 12px 32px rgba(10, 35, 67, .10);--shadow-lg:0 22px 60px rgba(10, 35, 67, .16);--shadow-hover:0 18px 44px rgba(10, 35, 67, .14);--shadow-elevation:0 22px 60px rgba(10, 35, 67, .16)}.ps-cmp-empty-box,.ps-favoris-empty-box,.ps-search-empty-box{background-image:url(https://villeideale.fr/wp-content/themes/ville-ideale/assets/css/../patterns/hex-mesh-light.svg);background-size:300px;background-repeat:repeat}.ps-cmp-empty-illu,.ps-favoris-empty-illu,.ps-search-empty-illu{max-width:240px;height:auto;margin:0 auto}.ps-verdict{border-top-color:var(--bleu-france)}.ps-surtitre{color:var(--bleu-france)}.ps-explorer-tri-tab.is-active{border-bottom-color:var(--bleu-france)}.ps-comparebar-row:first-child .ps-comparebar-valeur{background:var(--bleu-france)}body.home{--ac-encre:#0A2343;--ac-sur-encre:#FFFFFF;--ac-reserve:#F7FAFF;--ac-brique:#2563EB;--ac-brique-sur-encre:#93C5FD;--ac-font-display:"Poppins", "Inter", system-ui, sans-serif}.ps-nav-group-menu,#ps-header-search-results,#ps-nav-links,.ps-home-map-figure{box-shadow:0 10px 28px -4px rgb(15 23 42 / .09)!important;border:1px solid var(--border)!important}.ps-wireframe-home .hero-slider-arrow,button.hero-slider-arrow{box-shadow:0 4px 12px rgb(15 23 42 / .08)!important;border:1px solid #CBD5E1!important}.ps-wireframe-home .hero-slider-card{box-shadow:0 12px 32px rgb(15 23 42 / .08)!important;border:1px solid rgb(226 232 240 / .9)!important;background:#FFFFFF!important}h1,h2,h3,h4,.ps-tool-hero h1,.ps-surtitre,.ps-tool-kicker,.ps-home-title,.hero-slider-title,.hsc-place,.ps-wireframe-home .hsc-place{font-family:var(--font-display)!important}.carte-legende-note,.ps-wireframe-home .carte-legende-note{max-width:65ch!important;margin-inline:auto!important;line-height:1.55!important}.ps-hero-subhead,.ps-leadgen-badge{text-transform:none!important;font-weight:600!important;letter-spacing:normal!important}button.ps-cta-btn,.ps-cta-btn{padding:.85rem 1.6rem!important;min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1.3!important}.ps-game-banner-badge{background-color:var(--bleu-france)!important;color:#FFFFFF!important;padding:.35rem 0.85rem!important;border-radius:var(--radius-pill)!important;font-weight:600!important}.ps-game-banner-text>p,.ps-leadgen-content>p{color:#FFFFFF!important}.ps-footer-desc,.ps-footer-griffe,.ps-footer-note,.ps-footer-bottom p{color:#FFFFFF!important;opacity:0.95!important}.ps-card-tag-badge,span.ps-card-tag-badge{padding:.45rem 0.85rem!important;font-size:0.82rem!important;font-weight:600!important;line-height:1.2!important;border-radius:var(--radius-pill)!important;display:inline-flex!important;align-items:center!important;gap:0.35rem!important;backdrop-filter:blur(8px)!important;box-shadow:0 2px 8px rgb(10 35 67 / .12)!important}.ps-badge-tres-recommande,.ps-chip-tres-recommande,.ps-card-tag-badge.ps-badge-tres-recommande,span.ps-card-tag-badge.ps-badge-tres-recommande{background:#DDF8EE!important;color:#047857!important;border:1px solid #10B981!important}.ps-badge-recommande,.ps-chip-recommande,.ps-card-tag-badge.ps-badge-recommande,span.ps-card-tag-badge.ps-badge-recommande{background:#ECFDF5!important;color:#047857!important;border:1px solid #34D399!important}.ps-badge-a-surveiller,.ps-chip-a-surveiller{background:#FFF1D6!important;color:#B45309!important;border:1px solid #F59E0B!important;font-weight:600;font-size:.85rem;padding:.25rem .75rem;border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:.35rem}.ps-badge-peu-recommande,.ps-chip-peu-recommande{background:#FDE8E8!important;color:#B91C1C!important;border:1px solid #EF4444!important;font-weight:600;font-size:.85rem;padding:.25rem .75rem;border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:.35rem}.ps-tag-theme,.ps-chip-theme{background:#EAF2FF;color:#1D4ED8;font-weight:500;font-size:.85rem;padding:.3rem .8rem;border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:.4rem}.ps-notification-success{background:#DDF8EE!important;border:1px solid #10B981!important;color:#047857!important;padding:.85rem 1.2rem;border-radius:var(--radius-sm);font-weight:500}.ps-notification-warning{background:#FFF1D6!important;border:1px solid #F59E0B!important;color:#B45309!important;padding:.85rem 1.2rem;border-radius:var(--radius-sm);font-weight:500}.ps-notification-error{background:#FDE8E8!important;border:1px solid #EF4444!important;color:#B91C1C!important;padding:.85rem 1.2rem;border-radius:var(--radius-sm);font-weight:500}.button-primary,.ps-btn-primary{background-color:var(--bleu-france)!important;color:#FFFFFF!important;font-family:var(--font-body);font-weight:600;padding:.75rem 1.5rem;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background-color var(--transition-fast)}.button-primary:hover,.ps-btn-primary:hover{background-color:var(--bleu-france-hover)!important}.button-secondary,.ps-btn-secondary{background-color:#FFFFFF!important;color:var(--bleu-france)!important;border:1.5px solid var(--bleu-france)!important;font-family:var(--font-body);font-weight:600;padding:.75rem 1.5rem;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast)}.button-secondary:hover,.ps-btn-secondary:hover{background-color:var(--bleu-950)!important}.ps-hub-card,.ps-card-v2{background:#FFF;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform 200ms ease,box-shadow 200ms ease}.ps-hub-card:hover,.ps-card-v2:hover{box-shadow:var(--shadow-hover)}.ps-brand-board-card{background:#FFFFFF!important;border:1px solid var(--border)!important;border-radius:16px!important;overflow:hidden!important;box-shadow:0 4px 16px rgb(10 35 67 / .06)!important;transition:transform 240ms ease,box-shadow 240ms ease!important;position:relative;display:flex;flex-direction:column}.ps-brand-board-card:hover{box-shadow:0 12px 32px rgb(10 35 67 / .12)!important}.ps-brand-board-card .ps-city-card-link{display:flex;flex-direction:column;height:100%;padding:1.25rem 1.25rem 0 1.25rem;color:inherit;text-decoration:none!important}.ps-bb-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.ps-bb-card-name{font-family:var(--font-display)!important;font-size:1.3rem!important;font-weight:700!important;color:#0F172A!important;margin:0 0 .15rem 0!important;line-height:1.2!important}.ps-bb-card-dept{font-size:.85rem;color:#64748B;font-weight:500}.ps-bb-score-ring{position:relative;width:46px;height:46px;flex-shrink:0}.ps-ring-svg{width:46px;height:46px;transform:rotate(-90deg)}.ps-ring-bg{fill:none;stroke:#E2E8F0;stroke-width:3.2}.ps-ring-fill{fill:none;stroke:#10B981;stroke-width:3.2;stroke-linecap:round;transition:stroke-dasharray 0.6s ease}.ps-ring-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.ps-ring-text strong{font-size:.85rem;font-weight:700;color:#0F172A}.ps-ring-text small{font-size:.55rem;color:#64748B;margin-top:-1px}.ps-bb-card-badge-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.ps-bb-stars{color:#F59E0B;font-size:.85rem;letter-spacing:1px}.ps-bb-card-stats{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.85rem;color:#475569}.ps-bb-stat-item{display:flex;align-items:center;gap:.5rem}.ps-bb-stat-item svg{color:#2563EB}.ps-bb-card-image{position:relative;width:calc(100% + 2.5rem);margin-left:-1.25rem;margin-right:-1.25rem;margin-top:auto;height:160px;overflow:hidden;border-radius:0 0 16px 16px}.ps-bb-card-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease}.ps-brand-board-card:hover .ps-bb-card-image img{transform:none}.ps-brand-board-card .ps-card-rank-badge{position:absolute;top:10px;left:10px;z-index:2;background:rgb(15 23 42 / .85);color:#FFF;padding:.2rem .6rem;border-radius:6px;font-weight:700;font-size:.75rem}.ps-bb-bars-group{display:flex;flex-direction:column;gap:.45rem;margin-top:.5rem;background:#F8FAFC;padding:.65rem .75rem;border-radius:8px;border:1px solid #E2E8F0}.ps-bb-bar-row{display:flex;align-items:center;gap:.5rem;font-size:.75rem}.ps-bar-lbl{width:82px;font-weight:500;color:#334155;white-space:nowrap}.ps-bar-track{flex:1;height:6px;background:#E2E8F0;border-radius:999px;overflow:hidden}.ps-bar-fill{display:block;height:100%;border-radius:999px;transition:width 0.5s ease}.ps-fill-green{background-color:#10B981!important}.ps-fill-warn{background-color:#F59E0B!important}.ps-bar-val{width:36px;text-align:right;font-weight:700;color:#0F172A;font-size:.75rem}.ps-bar-val small{font-size:.6rem;color:#64748B;font-weight:400}.ps-bb-link-overlay{position:absolute;bottom:10px;right:10px;z-index:2;background:rgb(37 99 235 / .9);color:#FFF;padding:.25rem .65rem;border-radius:6px;font-weight:600;font-size:.75rem;box-shadow:0 2px 8px rgb(0 0 0 / .15);transition:background-color 200ms ease}.ps-brand-board-card:hover .ps-bb-link-overlay{background:rgb(29 79 216)}.section-lead-mark{position:relative;padding:2px 8px;color:#FFFFFF!important;isolation:isolate;white-space:nowrap;box-decoration-break:clone;-webkit-box-decoration-break:clone;display:inline-block;vertical-align:baseline}.section-lead-mark::before{content:"";position:absolute;inset:2px -2px -1px;background:linear-gradient(135deg,#1863DC 0%,#0F4BB5 100%);border-radius:6px;transform:rotate(-0.8deg);z-index:-1;pointer-events:none;box-shadow:0 4px 12px rgb(24 99 220 / .25)}.ps-404{padding-bottom:3rem}.ps-404 .ps-tool-hero{margin-bottom:1.5rem}.ps-404-search{max-width:34rem;margin:0 0 2.5rem}.ps-404-portes{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:0 0 2rem;padding:0;list-style:none}.ps-404-portes li{padding:1.1rem 1.2rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s ease,box-shadow .15s ease}.ps-404-portes li:hover{border-color:var(--bleu-france);box-shadow:var(--shadow-sm)}.ps-404-portes a{display:block;font-family:var(--font-display);font-weight:600;font-size:1.02rem;color:var(--bleu-france);text-decoration:none;margin-bottom:.3rem}.ps-404-portes a:hover{text-decoration:underline}.ps-404-portes .ps-note{display:block;margin:0;color:var(--ink-soft)}.ps-404-retour{margin:0}.btn-cta,.ps-cta-btn,button.ps-cta-btn,.ps-tf-preset-chip,.ps-tf-pill,.ps-tf-pill-action,.ps-tf-chip-selected,.ps-tf-btn-primary,.ps-tf-btn-secondary,.ps-tf-btn-instant-jump,.ps-tf-step-tab,.ps-tf-btn-edit-criteria,.ps-hero-badge,.ps-tf-hero-badge,.ps-card-tag-badge,span.ps-card-tag-badge,.ps-badge,.ps-blueprint-tag,.ps-hero-card-badge,.ps-tf-crit-badge,.ps-tf-axis-badge,.ps-tf-axis-choices,.ps-tf-axis-option,.ps-thumb-action,.ps-tf-atout-pill,.ps-tf-podium-match,.ps-tf-row-score,.ps-tf-results-badge,.ps-tf-lead-badge,.ps-tag,.ps-chip,.ps-pill{border-radius:var(--radius-pill,999px)!important}.ps-cmd,.ps-tf-input-search,.ps-search input[type="search"],.ps-tf-lead-fields input,.ps-tf-lead-fields select{border-radius:var(--radius-pill,999px)!important}.ps-tf-app,.ps-tf-choice-card,.ps-tf-axis-card,.ps-tf-accordion-details,.ps-accordion,.ps-algo-detail,details.ps-accordion,details.ps-algo-detail,.ps-tf-podium-card,.ps-tf-row-card,.ps-tf-lead-box,.ps-hub-card,.ps-hero-preview-card,.ps-avis-item,.ps-devine-card,.ps-cmp-empty-box,.ps-favoris-empty-box,.ps-search-empty-box,.ps-404-portes li,.ps-map-sidebar,.ps-map-detail,.ps-map-box,.ps-header-search-results,.ps-chrome .ps-header-search-results,.ps-chrome-bar{border-radius:var(--radius,16px)!important}.ps-algo-detail,details.ps-algo-detail{background:var(--bg-soft,#F7FAFF)!important;border:1px solid var(--border,#D8E3F2)!important;border-radius:var(--radius,16px)!important;box-shadow:0 2px 8px rgb(15 23 42 / .03)!important;padding:.95rem 1.35rem!important;margin:1.5rem 0!important}.ps-algo-detail summary,details.ps-algo-detail summary{font-family:var(--font-display,'Poppins',sans-serif)!important;font-size:0.95rem!important;font-weight:700!important;color:var(--brand-dark,#1e3a8a)!important}.ps-section.ps-card,.ps-master-panel,.ps-master-section,.ps-master-climat,.ps-master-cadre,.ps-master-immo,.ps-master-infras,.ps-master-mairie,.ps-stress-residentiel-block,.ps-risques-climat-block,.ps-trajectoire-2035-block,.ps-installation-hub{box-shadow:none!important;background:transparent!important;border:none!important;padding:0!important;margin:2rem 0!important}.ps-card .ps-card,.ps-card .ps-dc-card,.ps-card .ps-geo-card,.ps-card .ps-palmares-card,.ps-card .ps-climat-card,.ps-card .ps-confort-saisons-card,.ps-card .ps-risques-card,.ps-card .ps-histoire-card,.ps-card .ps-offer-card,.ps-card .ps-eco-card,.ps-card .ps-secteurs-card,.ps-card .ps-vs-france-card,.ps-card .ps-education-card,.ps-card .ps-transports-card,.ps-card .ps-sports-card,.ps-card .ps-mairie-card,.ps-card .ps-dataviz-block,.ps-installation-grid>.ps-offer-card,.ps-dc-card,.ps-geo-card,.ps-palmares-card,.ps-climat-card,.ps-confort-saisons-card,.ps-risques-card,.ps-histoire-card,.ps-offer-card,.ps-eco-card,.ps-secteurs-card,.ps-vs-france-card,.ps-education-card,.ps-transports-card,.ps-sports-card,.ps-mairie-card,.ps-dataviz-block{box-shadow:none!important;border:1px solid var(--border,#D8E3F2)!important;background:var(--bg,#FFFFFF)!important}#ps-nav-links,.ps-nav-links,.ps-modal-card,.ps-intrasite-banner,.ps-home-map-figure,.ps-nav-group-menu{box-shadow:none!important;border:1px solid var(--border,#D8E3F2)!important}.ps-intrasite-banner{border-left:1px solid var(--border,#D8E3F2)!important;background:#FFFFFF!important}div.ps-dataviz-block div>div>div>div,.ps-dataviz-block [style*="gradient" i]{background:#0284c7!important}h1,.h1,.ps-hero-title{color:var(--ink,#0F172A)!important}.ville-hero .overlay h1,.ville-hero .overlay .region,.ville-hero .overlay .badge-row span,.ville-hero .overlay a,.score-pedago-badge{color:#FFFFFF!important;text-shadow:0 1px 4px rgb(0 0 0 / .7)!important}.ps-note,.ps-note-wf,.ps-proof,.ps-legende,.ps-source,.ps-section-desc,.ps-modal-sub,.ps-modal-legal,.cost-head .delta,.ps-dc-card p,.ps-dataviz-block p,.ps-autorite-sources p,aside.ps-autorite-sources p,[style*="color:#94a3b8" i],[style*="color:#94A3B8" i]{color:#475569!important}.cd-btn-primary,.cd-cta-btn,.ps-action-bar button,.ps-btn-primary{background-color:#047857!important;color:#FFFFFF!important}.ps-action-bar>div>button,div.ps-transports-card [style*="color:#10b981" i],[style*="color:#10b981" i]{color:#047857!important;border-color:#047857!important}.ps-maillage-backlinks-card a,[style*="color:#d97706" i]{color:#92400e!important}a.ps-btn-warning,.ps-btn-amber,[style*="background:#d97706" i],[style*="background-color:#d97706" i]{background-color:#92400e!important;color:#FFFFFF!important}[style*="color:#3b82f6" i]{color:#1d4ed8!important}[style*="color:#059669" i]{color:#065f46!important}[style*="color:#e2334e" i],[style*="color:#dc2626" i]{color:#be123c!important}#ps-calc-result-box a{background-color:#065f46!important;color:#FFFFFF!important}header>div:nth-of-type(2){color:#065f46!important;background:#ecfdf5!important}.ps-section small,.ps-section span,.ps-note-wf,.ps-note,.ps-isr-card,.ps-dc-card p,.ps-dataviz-block span,.ps-eco-card div,.ps-mairie-card div,.ps-modal-badge,.ps-spider-container div,.ps-value-stacking div,#ps-leadgen-qualified-form span,[style*="font-size:11px" i],[style*="font-size: 11px" i],[style*="font-size:11.52px" i],[style*="font-size: 11.52px" i],[style*="font-size: 11.5px" i],[style*="font-size:11.5px" i]{font-size:clamp(0.8125rem, 1vw, 0.875rem)!important;letter-spacing:normal!important}.ps-section p,.ps-note-wf,.ps-note,.ps-mairie-card>p,.ps-secteurs-card>p,.ps-dataviz-block p,.ps-autorite-sources p,aside.ps-autorite-sources p,#avis p,.wrap p,header p,.cd-faq-a-inner{max-width:68ch!important;line-height:1.65!important}.ps-modal-badge,.ps-section span,div.ps-modal-badge{text-transform:none!important;font-weight:700!important}*{transition-property:color,background-color,border-color,opacity,transform!important}#ps-isr-gauge-bar{transform-origin:left center!important;will-change:transform!important}.cost-bar-track{overflow:visible!important;position:relative!important}#demographie-complete .ps-dataviz-block div>div{transition:opacity 0.3s ease!important}@media (max-width:768px){.ps-breadcrumb a,.ps-filter-chip,.ps-cta-btn,.ps-btn-outline,.ps-tab-btn,.ps-nav-link,.ps-thumb-btn,.ps-card-more,.ps-guide-card-decision a,.guide-carte a{min-height:44px!important;display:inline-flex!important;align-items:center!important}}