/* Parcours commune : composants isolés, palette et typographie du design system. */
.cm{padding-top:24px}.cm [hidden]{display:none!important}.cm h2{font-size:clamp(1.65rem,3vw,2.5rem)}.cm p{max-width:70ch}.cm-search{padding:clamp(24px,4vw,48px);border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--bg-tint)}.cm-search label{display:block;font-weight:600;margin:24px 0 10px}.cm-search-row{display:flex;gap:12px}.cm input[type=search]{flex:1;min-width:0;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:16px;font:inherit;background:white;color:var(--ink)}.cm button{cursor:pointer;font:inherit}.cm button:disabled{opacity:.6;cursor:wait}.cm :is(input,button,a):focus-visible{outline:3px solid var(--blue);outline-offset:4px}.cm-results{padding:0;list-style:none;display:grid;gap:8px}.cm-results button{width:100%;text-align:left;padding:16px;background:white;border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--ink);min-height:48px}.cm-results button:hover{border-color:var(--blue);background:var(--blue-soft)}.cm-profile{margin:40px 0;padding:clamp(24px,4vw,48px);border-left:4px solid var(--blue);background:var(--blue-soft);border-radius:0 var(--r-lg) var(--r-lg) 0}.cm-population{font-size:clamp(1.4rem,3vw,2rem);font-weight:600;line-height:1.3}.cm-school{border-top:1px solid var(--line-strong);margin-top:24px;padding-top:12px}.cm-school-title{font-weight:600}.cm-project{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:40px;align-items:start;margin-top:64px}.cm-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px}.cm-card{display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:white}.cm-card:has(input:checked){border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.cm-card h3{font-size:1.25rem;line-height:1.3;margin:0}.cm-card p{margin:0}.cm-tag{font-size:.8125rem;letter-spacing:.02em;color:var(--blue);font-weight:600}.cm-benefit{font-size:.9375rem;color:var(--ink-2)}.cm-card--ai{background:var(--blue-soft)}.cm-card-actions{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:16px}.cm-card-actions>a{font-size:.875rem;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}.cm-check{cursor:pointer;display:flex;align-items:center;gap:10px;min-height:48px;border-top:1px solid var(--line);font-weight:600;font-size:.9375rem}.cm :is(input[type=checkbox],input[type=radio]){width:20px;height:20px;flex:none;accent-color:var(--blue)}.cm-budget{position:sticky;top:110px;padding:28px;border-radius:var(--r-lg);background:var(--bg-tint);border:1px solid var(--line-strong);min-width:0}.cm-budget h2{font-size:1.65rem}.cm-budget fieldset{border:0;padding:0;margin:24px 0}.cm-budget legend{font-weight:600;margin-bottom:10px}.cm-budget fieldset label{display:flex;align-items:center;gap:10px;min-height:48px;font-size:.9375rem;cursor:pointer}.cm-selected{font-size:.875rem;border-top:1px solid var(--line-strong);padding-top:20px;overflow-wrap:anywhere}.cm-budget .cm-price{font-size:1rem;margin:12px 0}.cm-price strong{font-size:2.8rem;letter-spacing:-.04em}.cm-formula,.cm-total{font-weight:600}.cm-budget p{margin-top:12px}.cm-budget .btn{margin-top:20px;width:100%;white-space:normal;text-align:center;justify-content:center}.cm-pricing-link{display:block;margin:20px 0;text-decoration:underline}.cm-offer{color:var(--success);font-weight:600}.cm-options{font-size:.875rem;border-left:3px solid var(--blue);padding-left:12px}.cm-hint{background:var(--blue-soft);padding:20px;border-radius:var(--r-sm)}.cm-data-note{margin-top:48px;border-top:1px solid var(--line);padding-top:24px}.cm-data-note a{text-decoration:underline}.cm-budget .caption{font-size:.8125rem}.cm :is(button,a,label){transition:background-color .2s,border-color .2s}
@media(max-width:1100px){.cm-project{grid-template-columns:minmax(0,1fr) 300px;gap:24px}.cm-cards{grid-template-columns:1fr}.cm-budget{padding:24px}}
@media(max-width:720px){.cm-search-row{flex-direction:column}.cm-project{grid-template-columns:1fr;margin-top:40px}.cm-budget{position:static}.cm-cards{grid-template-columns:1fr}.cm-card{padding:24px}.cm-search-row .btn{justify-content:center}.cm input[type=search]{width:100%}}
@media(prefers-reduced-motion:reduce){.cm :is(button,a,label){transition:none}}

@media(min-width:721px) and (max-height:900px){.cm-budget{position:static}}
