/* CHASSANG · Configurateur tarifaire — tokens from CHASSANG_Brand_Identity/04_COLORS + 05_TYPOGRAPHY */

@font-face { font-family: 'Inter Tight'; src: url('../fonts/inter-tight.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../fonts/inter.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }

:root {
	--ch-nuit: #0B1437; --ch-bleu-roi: #1E3FD9; --ch-bleu: #3D7BFF; --ch-bleu-ciel: #5FD4FF; --ch-blanc: #FFFFFF;
	--ch-abysse: #070B1A; --ch-marine: #12205A; --ch-azur: #2D5BF0; --ch-glace: #BDEBFF;
	--ch-encre: #141A2E; --ch-ardoise: #4A5270; --ch-brume: #8C94AE; --ch-trait: #DDE2EE; --ch-papier: #F4F6FB; --ch-nuage: #EAF0FF;
	--ch-error: #C8323C;
	--ch-head: 'Inter Tight', 'Inter', -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
	--ch-body: 'Inter', -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
	--ch-halo-principal: linear-gradient(118deg,transparent 42%,rgba(255,255,255,0.07) 49%,rgba(255,255,255,0.01) 53%,transparent 58%),radial-gradient(55% 75% at 12% 108%,rgba(95,212,255,0.70) 0%,rgba(95,212,255,0.00) 58%),radial-gradient(60% 80% at 92% -8%,rgba(61,123,255,1.00) 0%,rgba(61,123,255,0.00) 62%),radial-gradient(80% 90% at 55% 60%,rgba(30,63,217,0.80) 0%,rgba(30,63,217,0.00) 72%),#070B1A;
	--ch-halo-nuit: radial-gradient(70% 90% at 100% 0%,rgba(30,63,217,0.55) 0%,rgba(30,63,217,0.00) 65%),radial-gradient(45% 60% at 0% 100%,rgba(95,212,255,0.18) 0%,rgba(95,212,255,0.00) 60%),#070B1A;
	--ch-halo-horizon: radial-gradient(90% 80% at 50% 120%,rgba(30,63,217,0.95) 0%,rgba(30,63,217,0.00) 70%),radial-gradient(45% 35% at 50% 112%,rgba(95,212,255,0.60) 0%,rgba(95,212,255,0.00) 60%),radial-gradient(40% 60% at 85% 100%,rgba(61,123,255,0.40) 0%,rgba(61,123,255,0.00) 60%),#070B1A;
	--ch-grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	--cht-gutter: 40px;
	--cht-radius: 28px;
}

body { background: var(--ch-papier); }
:where(.cht, .cht *, .cht-hero, .cht-hero *, .cht-footer, .cht-footer *) { box-sizing: border-box; }
:where(.cht, .cht-hero) button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; text-align: inherit; }
.cht :focus-visible, .cht-hero :focus-visible, .cht-modal :focus-visible { outline: 2px solid var(--ch-bleu); outline-offset: 3px; }
.cht-wrap { max-width: 1280px; margin: 0 auto; padding: 0 var(--cht-gutter); }

/* ---------- buttons (kit .ch-btn) ---------- */
.cht-btn { display: inline-flex; align-items: center; gap: .6em; padding: 14px 22px; border-radius: 999px; font: 600 16px/1 var(--ch-head); letter-spacing: -.005em; background: var(--ch-bleu-roi); color: #fff; text-decoration: none; transition: background .2s, transform .2s; }
.cht-btn--light { background: #fff; color: var(--ch-nuit); }
.cht-btn:hover { transform: translateY(-1px); }

/* ---------- hero ---------- */
.cht-hero { position: relative; overflow: hidden; background: var(--ch-halo-principal); color: #fff; padding: 84px 0 120px; min-height: 640px; font-family: var(--ch-body); -webkit-font-smoothing: antialiased; }
.cht-hero::after { content: ""; position: absolute; inset: 0; background-image: var(--ch-grain); opacity: .06; pointer-events: none; }
.cht-hero > .cht-wrap { position: relative; z-index: 2; }
.cht-nav { display: flex; align-items: center; gap: 40px; font: 500 16px var(--ch-head); }
.cht-nav__logo { margin-right: auto; display: block; line-height: 0; }
.cht-nav__logo img { height: 30px; width: auto; }
.cht-nav__links { display: flex; align-items: center; gap: 36px; }
.cht-nav__links a:not(.cht-btn) { color: #fff; text-decoration: none; opacity: .86; transition: opacity .2s; }
.cht-nav__links a:not(.cht-btn):hover, .cht-nav__links a[aria-current] { opacity: 1; }
.cht-nav__links a[aria-current] { text-decoration: underline; text-decoration-color: var(--ch-bleu-ciel); text-underline-offset: 8px; text-decoration-thickness: 2px; }
.cht-nav__burger { display: none; width: 44px; height: 44px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.3); position: relative; }
.cht-nav__burger span { position: absolute; left: 13px; right: 13px; height: 1.6px; background: #fff; transition: transform .25s; }
.cht-nav__burger span:first-child { top: 18px; } .cht-nav__burger span:last-child { top: 25px; }
.cht-nav.is-open .cht-nav__burger span:first-child { transform: translateY(3.5px) rotate(45deg); }
.cht-nav.is-open .cht-nav__burger span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.cht-hero__body { margin-top: 120px; max-width: 760px; }
.cht-overline { font: 500 13px/1.3 var(--ch-head); letter-spacing: .16em; text-transform: uppercase; opacity: .85; }
.cht-overline i { font-style: normal; color: var(--ch-bleu-ciel); margin: 0 .5em; }
.cht-hero__title { margin: 28px 0 0; font: 600 88px/1 var(--ch-head); letter-spacing: -.045em; color: #fff; }
.cht-hero__subtitle { margin: 26px 0 0; font: 400 22px/1.5 var(--ch-body); letter-spacing: -.01em; color: rgba(255,255,255,.78); max-width: 620px; }
.cht-hero__symbol { position: absolute; right: -60px; top: 120px; width: 440px; z-index: 1; filter: drop-shadow(0 40px 80px rgba(3,8,30,.55)); pointer-events: none; }

/* ---------- configurator ---------- */
.cht { background: var(--ch-papier); color: var(--ch-encre); font-family: var(--ch-body); -webkit-font-smoothing: antialiased; padding: 72px 0 120px; }
.cht-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 32px; align-items: start; }
.cht-main { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.cht-aside { position: sticky; top: 24px; }
.admin-bar .cht-aside { top: 56px; }

.cht-step { background: #fff; border-radius: var(--cht-radius); padding: 40px; box-shadow: 0 1px 0 var(--ch-trait); }
.cht-step__head { display: flex; gap: 14px; align-items: baseline; margin-bottom: 28px; }
/* Step number: large, in the brand symbol gradient (Bleu roi → Bleu → Bleu ciel). */
.cht-step__num { flex: none; font: 600 29px/1 var(--ch-head); letter-spacing: -.02em; font-variant-numeric: tabular-nums; background: linear-gradient(135deg, var(--ch-bleu-roi) 0%, var(--ch-bleu) 55%, var(--ch-bleu-ciel) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: 2px; }
.cht-step__title { margin: 0; font: 600 28px/1.2 var(--ch-head); letter-spacing: -.02em; color: var(--ch-nuit); }
.cht-step__hint { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: var(--ch-ardoise); }
.cht-empty { margin: 0; padding: 28px; border: 1px dashed var(--ch-trait); border-radius: 18px; color: var(--ch-ardoise); font-size: 15px; text-align: center; }

/* step 1 */
.cht-objectives { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cht-obj { display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 24px; border-radius: 20px; box-shadow: inset 0 0 0 1px var(--ch-trait); background: #fff; transition: box-shadow .2s, background .2s, transform .2s; }
.cht-obj:hover { box-shadow: inset 0 0 0 1px var(--ch-bleu); transform: translateY(-1px); }
.cht-obj__top { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.cht-obj__tile { flex: none; width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: var(--ch-nuit); color: var(--ch-bleu-ciel); transition: background .2s; }
.cht-obj__tile svg { width: 24px; height: 24px; }
.cht-obj.is-on .cht-obj__tile { background: var(--ch-bleu-roi); color: #fff; }
.cht-obj__idx { margin-right: auto; font: 500 13px var(--ch-head); letter-spacing: .16em; color: var(--ch-bleu-roi); }
.cht-obj__check { width: 26px; height: 26px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--ch-trait); display: grid; place-items: center; color: transparent; transition: all .2s; }
.cht-obj__check svg { width: 16px; height: 16px; }
.cht-obj__title { font: 600 17px/1.25 var(--ch-head); letter-spacing: .02em; text-transform: uppercase; color: var(--ch-nuit); }
.cht-obj__text { font-size: 14.5px; line-height: 1.55; color: var(--ch-ardoise); }
.cht-obj.is-on { background: var(--ch-nuage); box-shadow: inset 0 0 0 2px var(--ch-bleu-roi); }
.cht-obj.is-on .cht-obj__check { background: var(--ch-bleu-roi); box-shadow: none; color: #fff; }

/* step 2 */
.cht-rows { display: flex; flex-direction: column; }
.cht-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 24px; padding: 22px 0; border-top: 1px solid var(--ch-trait); }
.cht-row:first-child { border-top: 0; padding-top: 0; }
.cht-row:last-child { padding-bottom: 0; }
.cht-row.is-new { animation: cht-in .45s cubic-bezier(.2,.7,.2,1) both; }
.cht-row.is-sizing { overflow: hidden; transition: max-height .34s cubic-bezier(.2,.7,.2,1), padding .34s cubic-bezier(.2,.7,.2,1), opacity .22s, border-color .22s; }
.cht-row.is-leaving { opacity: 0; padding-top: 0; padding-bottom: 0; border-top-color: transparent; }
.cht-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.cht-row__label { font: 500 13px/1.3 var(--ch-head); letter-spacing: .16em; text-transform: uppercase; color: var(--ch-bleu-roi); padding-top: 12px; }
.cht-row__q { margin: 0 0 14px; font: 500 16px/1.45 var(--ch-head); color: var(--ch-nuit); padding-top: 8px; }
.cht-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cht-chip { padding: 10px 16px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--ch-trait); font: 500 14.5px/1.2 var(--ch-head); color: var(--ch-nuit); background: #fff; transition: all .18s; }
.cht-chip:hover { box-shadow: inset 0 0 0 1px var(--ch-bleu); color: var(--ch-bleu-roi); }
.cht-chip.is-on { background: var(--ch-bleu-roi); color: #fff; box-shadow: none; }

@keyframes cht-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* range */
.cht-range { --p: 50%; }
.cht-range__value { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 14px; }
.cht-range__amount { font: 600 29px/1 var(--ch-head); letter-spacing: -.02em; color: var(--ch-nuit); font-variant-numeric: tabular-nums; }
.cht-range__label { display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--ch-nuage); color: var(--ch-bleu-roi); font: 600 13px/1.2 var(--ch-head); letter-spacing: .01em; }
.cht-range.is-untouched .cht-range__amount { color: var(--ch-brume); }
.cht-range.is-untouched .cht-range__label { background: transparent; color: var(--ch-ardoise); font-weight: 500; padding-left: 0; }
.cht-range input[type=range] { -webkit-appearance: none; appearance: none; width: 100%; height: 28px; margin: 0; background: transparent; cursor: pointer; }
.cht-range input[type=range]::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: linear-gradient(to right, var(--ch-bleu-roi) var(--p), var(--ch-trait) var(--p)); }
.cht-range input[type=range]::-moz-range-track { height: 6px; border-radius: 999px; background: var(--ch-trait); }
.cht-range input[type=range]::-moz-range-progress { height: 6px; border-radius: 999px; background: var(--ch-bleu-roi); }
.cht-range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 24px; height: 24px; margin-top: -9px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px var(--ch-bleu-roi), 0 4px 12px rgba(11,20,55,.2); transition: transform .15s; }
.cht-range input[type=range]::-moz-range-thumb { width: 24px; height: 24px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px var(--ch-bleu-roi), 0 4px 12px rgba(11,20,55,.2); }
.cht-range input[type=range]:active::-webkit-slider-thumb { transform: scale(1.12); }
.cht-range.is-untouched input[type=range]::-webkit-slider-runnable-track { background: linear-gradient(to right, var(--ch-brume) var(--p), var(--ch-trait) var(--p)); }
.cht-range.is-untouched input[type=range]::-moz-range-progress { background: var(--ch-brume); }
.cht-range__ends { display: flex; justify-content: space-between; margin-top: 6px; font-size: 12.5px; color: var(--ch-brume); font-variant-numeric: tabular-nums; }

/* step 3 */
.cht-lines { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ch-trait); }
.cht-line { border-bottom: 1px solid var(--ch-trait); }
.cht-line__head { display: flex; align-items: center; gap: 14px; min-height: 64px; }
.cht-line__toggle { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 14px 0; font: 500 16px/1.35 var(--ch-head); color: var(--ch-nuit); }
.cht-line__toggle.is-static { cursor: default; }
.cht-line__icon { flex: none; width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: var(--ch-papier); color: var(--ch-bleu-roi); transition: background .2s, color .2s; }
.cht-line__icon svg { width: 20px; height: 20px; }
.cht-line:not(.is-open) .cht-line__toggle:not(.is-static):hover .cht-line__icon { background: var(--ch-nuage); }
.cht-line.is-open .cht-line__icon { background: var(--ch-bleu-roi); color: #fff; }
.cht-line__chev { flex: none; display: grid; place-items: center; color: var(--ch-brume); transform: rotate(90deg); transition: transform .25s, color .2s; }
.cht-line__chev svg { width: 18px; height: 18px; }
.cht-line__toggle:not(.is-static):hover .cht-line__chev { color: var(--ch-bleu-roi); }
.cht-line.is-open .cht-line__chev { transform: rotate(-90deg); color: var(--ch-bleu-roi); }
.cht-line__label { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.cht-line__name { min-width: 0; }
.cht-line__price { flex: none; font: 600 16px/1.2 var(--ch-head); color: var(--ch-nuit); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.cht-price-note { display: block; margin-top: 3px; font: 400 12px/1.3 var(--ch-body); color: var(--ch-ardoise); white-space: normal; }
.cht-upsell__price .cht-price-note { text-transform: none; letter-spacing: 0; }
.cht-recap li .cht-price-note { font-size: 11.5px; text-align: right; }
.cht-line.is-included .cht-line__price { color: var(--ch-bleu-roi); font-weight: 500; }
.cht-line.is-included .cht-line__name { color: var(--ch-ardoise); }
.cht-tag { flex: none; padding: 3px 9px; border-radius: 999px; background: var(--ch-glace); color: var(--ch-nuit); font: 600 11px/1.4 var(--ch-head); letter-spacing: .06em; text-transform: uppercase; }
.cht-icon-btn { flex: none; width: 32px; height: 32px; border-radius: 999px; display: grid !important; place-items: center; color: var(--ch-brume) !important; transition: background .2s, color .2s; }
.cht-icon-btn svg { width: 18px; height: 18px; }
.cht-icon-btn:hover { background: var(--ch-papier) !important; color: var(--ch-nuit) !important; }
.cht-icon-spacer { flex: none; width: 32px; }
.cht-restore { flex: none; padding: 7px 12px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--ch-bleu-roi); color: var(--ch-bleu-roi) !important; font: 600 13px/1 var(--ch-head); }
.cht-restore:hover { background: var(--ch-nuage) !important; }
.cht-switch { flex: none; width: 44px; height: 26px; border-radius: 999px; background: var(--ch-trait) !important; position: relative; transition: background .2s; }
.cht-switch span { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(11,20,55,.25); transition: transform .2s; }
.cht-switch[aria-checked="true"] { background: var(--ch-bleu-roi) !important; }
.cht-switch[aria-checked="true"] span { transform: translateX(18px); }
.cht-line.is-removed .cht-line__name, .cht-line.is-removed .cht-line__price { color: var(--ch-brume); text-decoration: line-through; text-decoration-thickness: 1px; }
.cht-line.is-removed .cht-line__icon, .cht-line.is-removed .cht-line__chev { opacity: .45; }
.cht-line__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s cubic-bezier(.2,.7,.2,1); }
.cht-line__body > div { overflow: hidden; }
.cht-line.is-open .cht-line__body { grid-template-rows: 1fr; }
.cht-line__body ul { list-style: none; margin: 0; padding: 6px 0 20px 48px; columns: 2; column-gap: 36px; }
.cht-line__body li { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; font-size: 14px; line-height: 20px; color: var(--ch-ardoise); break-inside: avoid; }
.cht-line__body li svg { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--ch-bleu-roi); }
.cht-line__body li strong { font-weight: 600; color: var(--ch-nuit); }

.cht-upsells { margin-top: 32px; }
.cht-upsells__title { margin: 0 0 14px; font: 500 13px/1.3 var(--ch-head); letter-spacing: .16em; text-transform: uppercase; color: var(--ch-bleu-roi); }
.cht-upsells__list { display: flex; flex-direction: column; gap: 10px; }
.cht-upsell { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 18px; box-shadow: inset 0 0 0 1px var(--ch-trait); transition: all .2s; }
.cht-upsell:hover { box-shadow: inset 0 0 0 1px var(--ch-bleu); }
.cht-upsell__icon { flex: none; width: 30px; height: 30px; border-radius: 999px; display: grid; place-items: center; background: var(--ch-nuage); color: var(--ch-bleu-roi); transition: all .2s; }
.cht-upsell__icon svg { width: 18px; height: 18px; }
.cht-upsell__label { flex: 1; font: 500 15.5px/1.35 var(--ch-head); color: var(--ch-nuit); }
.cht-upsell__price { flex: none; font: 600 14px/1.2 var(--ch-head); color: var(--ch-ardoise); font-variant-numeric: tabular-nums; text-align: right; }
.cht-upsell.is-on { background: var(--ch-nuage); box-shadow: inset 0 0 0 2px var(--ch-bleu-roi); }
.cht-upsell.is-on .cht-upsell__icon { background: var(--ch-bleu-roi); color: #fff; }
.cht-upsell.is-on .cht-upsell__price { color: var(--ch-bleu-roi); text-transform: uppercase; font-size: 12px; letter-spacing: .08em; }

.cht-ads { margin-top: 24px; padding: 26px; border-radius: 20px; background: var(--ch-papier); animation: cht-in .45s cubic-bezier(.2,.7,.2,1) both; }
.cht-ads__q { margin: 0; font: 600 17px/1.35 var(--ch-head); color: var(--ch-nuit); }
.cht-ads__help { margin: 6px 0 18px; font-size: 14px; line-height: 1.5; color: var(--ch-ardoise); }

/* ---------- estimation card ---------- */
.cht-card { position: relative; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.2) transparent; border-radius: var(--cht-radius); background: var(--ch-halo-nuit); color: #fff; padding: 30px; max-height: calc(100vh - 48px); display: flex; flex-direction: column; }
.cht-card > * { flex: none; }
/* When the card is taller than the screen only the service list scrolls: totals, ROI and CTA stay visible. */
.cht-card__list { flex: 0 1 auto; min-height: 60px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.25) transparent; -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 22px), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 22px), transparent); }
.admin-bar .cht-card { max-height: calc(100vh - 80px); }
.cht-card__over { font: 500 12px/1.3 var(--ch-head); letter-spacing: .16em; text-transform: uppercase; color: var(--ch-bleu-ciel); }
.cht-card__title { margin: 12px 0 0; font: 600 25px/1.15 var(--ch-head); letter-spacing: -.01em; text-transform: uppercase; color: #fff; }
.cht-card__title.is-intro { text-transform: none; font-size: 24px; letter-spacing: -.02em; line-height: 1.25; }
.cht-card__steps { margin: 22px 0 0; padding: 0; list-style: none; counter-reset: s; display: flex; flex-direction: column; gap: 12px; }
.cht-card__steps li { counter-increment: s; display: flex; gap: 12px; align-items: center; font-size: 14.5px; color: rgba(255,255,255,.72); }
.cht-card__steps li::before { content: "0" counter(s); flex: none; color: var(--ch-bleu-ciel); font: 600 13px var(--ch-head); letter-spacing: .16em; font-variant-numeric: tabular-nums; }
.cht-card__meta { margin-top: 8px; font-size: 13.5px; color: rgba(255,255,255,.6); }
.cht-card__list { list-style: none; margin: 18px 0 0; padding: 0 0 18px; display: flex; flex-direction: column; gap: 7px; border-bottom: 1px solid rgba(255,255,255,.12); }
.cht-card__list li { display: flex; gap: 8px; font-size: 13.5px; line-height: 1.4; color: rgba(255,255,255,.8); }
.cht-card__list svg { flex: none; width: 15px; height: 15px; margin-top: 1px; color: var(--ch-bleu-ciel); }
.cht-total { padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.cht-total__label { font: 500 12px/1.3 var(--ch-head); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.62); }
.cht-total__row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin-top: 8px; }
.cht-total__from { font-size: 14px; color: rgba(255,255,255,.7); }
.cht-total__amount { font: 600 44px/1 var(--ch-head); letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.cht-total.is-monthly .cht-total__amount { font-size: 32px; }
.cht-total__note { font: 600 14px var(--ch-head); color: var(--ch-bleu-ciel); }
.cht-total.is-ads { margin-top: 14px; padding: 16px 18px; border: 1px dashed rgba(255,255,255,.22); border-radius: 16px; }
.cht-total.is-ads .cht-total__amount { font-size: 24px; color: rgba(255,255,255,.9); }
.cht-total.is-ads .cht-total__note { color: rgba(255,255,255,.6); }
.cht-total__small { margin-top: 6px; font-size: 12.5px; color: rgba(255,255,255,.55); }
.cht-total__label-note { display: block; margin-top: 3px; font: 400 12px/1.35 var(--ch-body); letter-spacing: 0; text-transform: none; color: rgba(255,255,255,.55); }
.cht-bonus { margin-top: 16px; display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 16px; background: rgba(95,212,255,.07); box-shadow: inset 0 0 0 1px rgba(95,212,255,.22); }
.cht-bonus__icon { flex: none; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: rgba(95,212,255,.14); color: var(--ch-bleu-ciel); }
.cht-bonus__icon svg { width: 19px; height: 19px; }
.cht-bonus__label { font: 500 14px/1.35 var(--ch-head); color: #fff; }
.cht-bonus__value { margin-top: 5px; display: flex; align-items: center; gap: 8px; font-size: 13px; color: rgba(255,255,255,.5); }
.cht-bonus__value s { text-decoration-thickness: 1.5px; }
.cht-bonus__tag { padding: 2px 8px; border-radius: 999px; background: var(--ch-bleu-ciel); color: var(--ch-nuit); font: 600 11px/1.5 var(--ch-head); letter-spacing: .06em; text-transform: uppercase; }
.cht-roi { margin-top: 16px; padding: 18px 20px; border-radius: 18px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.cht-roi__title { font-size: 14px; color: rgba(255,255,255,.78); }
.cht-roi__figure { margin-top: 8px; font: 600 22px/1.2 var(--ch-head); letter-spacing: -.01em; color: #fff; }
.cht-roi__n { font-size: 44px; letter-spacing: -.04em; color: var(--ch-bleu-ciel); font-variant-numeric: tabular-nums; }
.cht-roi__text { margin: 8px 0 0; font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.78); }
.cht-roi__note { margin: 10px 0 0; font-size: 12px; color: rgba(255,255,255,.5); }
.cht-roi__placeholder { margin: 8px 0 0; font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.6); }
.cht-cta { margin-top: 18px; width: 100%; display: inline-flex !important; align-items: center; justify-content: center; gap: 10px; padding: 18px 24px !important; border-radius: 999px !important; background: var(--ch-bleu-roi) !important; color: #fff !important; font: 600 16px/1 var(--ch-head) !important; letter-spacing: -.005em; transition: background .2s, transform .2s; text-align: center !important; }
.cht-cta svg { width: 18px; height: 18px; transition: transform .2s; }
.cht-cta:hover { background: var(--ch-azur) !important; }
.cht-cta:hover svg { transform: translateX(3px); }
.cht-cta.is-loading { opacity: .7; pointer-events: none; }

/* Short laptop screens: tighten the card so the CTA stays on screen. */
@media (min-width: 961px) and (max-height: 920px) {
	.cht-card { padding: 24px 26px; }
	.cht-card__title { font-size: 21px; margin-top: 8px; }
	.cht-card__meta { margin-top: 4px; font-size: 13px; }
	.cht-card__list { margin-top: 12px; padding-bottom: 12px; gap: 5px; }
	.cht-card__list li { font-size: 13px; }
	.cht-total { padding: 11px 0; }
	.cht-total__row { margin-top: 5px; }
	.cht-total__amount { font-size: 36px; }
	.cht-total.is-monthly .cht-total__amount { font-size: 26px; }
	.cht-total.is-ads { margin-top: 10px; padding: 11px 14px; }
	.cht-total.is-ads .cht-total__amount { font-size: 20px; }
	.cht-total__small { margin-top: 3px; font-size: 12px; }
	.cht-roi { margin-top: 12px; padding: 13px 16px; }
	.cht-roi__title { font-size: 13px; }
	.cht-roi__figure { margin-top: 4px; font-size: 18px; }
	.cht-roi__n { font-size: 34px; }
	.cht-roi__text { margin-top: 4px; font-size: 13px; line-height: 1.4; }
	.cht-roi__note { margin-top: 5px; font-size: 11.5px; }
	.cht-cta { margin-top: 14px; padding: 15px 22px !important; }
	.cht-bonus { margin-top: 10px; padding: 10px 12px; }
	.cht-bonus__icon { width: 28px; height: 28px; }
	.cht-bonus__label { font-size: 13px; }
	.cht-total__label-note { font-size: 11px; }
}

/* ---------- mobile bar ---------- */
.cht-bar { display: none; }

/* ---------- modal ---------- */
.cht-modal-open, .cht-modal-open body { overflow: hidden; }
.cht-modal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 16px; font-family: var(--ch-body); color: var(--ch-encre); }
.cht-modal[hidden] { display: none; }
.cht-modal__backdrop { position: absolute; inset: 0; background: rgba(7,11,26,.62); backdrop-filter: blur(6px); animation: cht-fade .25s both; }
.cht-modal__dialog { position: relative; width: 100%; max-width: 640px; max-height: calc(100vh - 32px); overflow-y: auto; background: #fff; border-radius: var(--cht-radius); padding: 40px; animation: cht-pop .3s cubic-bezier(.2,.7,.2,1) both; }
.cht-modal__close { position: absolute; top: 18px; right: 18px; }
.cht-modal__title { margin: 0 40px 0 0; font: 600 28px/1.2 var(--ch-head); letter-spacing: -.02em; color: var(--ch-nuit); }
.cht-modal__subtitle { margin: 10px 40px 0 0; font-size: 14.5px; line-height: 1.55; color: var(--ch-ardoise); }
.cht-recap { margin-top: 22px; padding: 20px 22px; border-radius: 18px; background: var(--ch-papier); }
.cht-recap__title { font: 600 14px var(--ch-head); letter-spacing: .08em; text-transform: uppercase; color: var(--ch-bleu-roi); }
.cht-recap ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.cht-recap li { display: flex; justify-content: space-between; gap: 16px; font-size: 14px; color: var(--ch-ardoise); }
.cht-recap li span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ch-nuit); font-weight: 500; text-align: right; }
.cht-recap__totals { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--ch-trait); display: flex; flex-direction: column; gap: 6px; }
.cht-recap__totals div { display: flex; justify-content: space-between; gap: 16px; font-size: 15px; color: var(--ch-nuit); }
.cht-recap__totals strong { font: 600 16px var(--ch-head); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cht-recap__totals .is-ads { color: var(--ch-ardoise); font-size: 14px; }
.cht-recap__totals .is-ads small { display: block; font-size: 12px; }
.cht-recap__totals .is-bonus { color: var(--ch-ardoise); font-size: 14px; }
.cht-recap__totals .is-bonus strong { font: 500 13px var(--ch-body); color: var(--ch-bleu-roi); }
.cht-recap__totals .is-bonus s { color: var(--ch-brume); }
.cht-form { margin-top: 24px; }
.cht-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cht-field { display: flex; flex-direction: column; gap: 6px; }
.cht-field span { font: 500 13.5px var(--ch-head); color: var(--ch-nuit); }
.cht-field__control { position: relative; display: block; }
.cht-field__control svg { position: absolute; left: 15px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--ch-brume); pointer-events: none; transition: color .2s; }
.cht-field__control:focus-within svg { color: var(--ch-bleu-roi); }
.cht-field input { height: 50px; padding: 0 16px 0 46px; border-radius: 14px; border: 1px solid var(--ch-trait); background: #fff; font: 400 16px var(--ch-body); color: var(--ch-encre); transition: border-color .2s, box-shadow .2s; width: 100%; }
.cht-field input:focus { outline: none; border-color: var(--ch-bleu); box-shadow: 0 0 0 4px rgba(61,123,255,.15); }
.cht-field input.is-invalid { border-color: var(--ch-error); }
.cht-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cht-consent { margin-top: 18px; display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; line-height: 1.5; color: var(--ch-ardoise); cursor: pointer; }
.cht-consent input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--ch-bleu-roi); }
.cht-consent > span { display: grid; gap: 6px; font-size: 12.5px; line-height: 1.55; }
.cht-consent a { color: var(--ch-bleu-roi); text-decoration: underline; text-underline-offset: 2px; }
.cht-form__error { margin: 14px 0 0; padding: 12px 14px; border-radius: 12px; background: #FDECEE; color: var(--ch-error); font-size: 14px; }
.cht-form__error[hidden] { display: none; }
.cht-success { text-align: center; padding: 12px 0 4px; }
.cht-success__icon { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--ch-bleu-roi); color: #fff; margin-bottom: 20px; }
.cht-success__icon svg { width: 34px; height: 34px; }
.cht-success .cht-modal__title { margin: 0; }
.cht-success p { margin: 12px auto 0; max-width: 420px; color: var(--ch-ardoise); line-height: 1.6; }
.cht-success .cht-cta { max-width: 220px; }
@keyframes cht-fade { from { opacity: 0; } }
@keyframes cht-pop { from { opacity: 0; transform: translateY(12px) scale(.98); } }

.cht-noscript { padding: 24px; text-align: center; }

/* ---------- FAQ (TICKET-04) ---------- */
.cht-faq { padding: 96px 0 0; }
.cht-faq .cht-wrap { max-width: 920px; }
.cht-faq__title { margin: 0 0 32px; text-align: center; font: 600 40px/1.1 var(--ch-head); letter-spacing: -.03em; color: var(--ch-nuit); }
.cht-faq__list { display: flex; flex-direction: column; gap: 12px; }
.cht-faq__item { background: #fff; border-radius: 20px; box-shadow: 0 1px 0 var(--ch-trait); }
.cht-faq__h { margin: 0; font: inherit; }
.cht .cht-faq__q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 26px; font: 600 18px/1.35 var(--ch-head); letter-spacing: -.01em; color: var(--ch-nuit); text-align: left; border-radius: 20px; }
.cht-faq__icon { flex: none; position: relative; width: 34px; height: 34px; border-radius: 999px; background: var(--ch-nuage); transition: background .2s, transform .3s; }
.cht-faq__icon::before, .cht-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 13px; height: 2px; margin: -1px 0 0 -6.5px; border-radius: 2px; background: var(--ch-bleu-roi); transition: transform .3s, background .2s; }
.cht-faq__icon::after { transform: rotate(90deg); }
.cht-faq__q[aria-expanded="true"] .cht-faq__icon { background: var(--ch-bleu-roi); transform: rotate(180deg); }
.cht-faq__q[aria-expanded="true"] .cht-faq__icon::before, .cht-faq__q[aria-expanded="true"] .cht-faq__icon::after { background: #fff; }
.cht-faq__q[aria-expanded="true"] .cht-faq__icon::after { transform: rotate(0deg); }
.cht-faq__q:hover .cht-faq__icon { background: #DCE6FF; }
.cht-faq__a { overflow: hidden; transition: height .32s cubic-bezier(.2,.7,.2,1); }
.cht-faq__inner { padding: 0 26px 24px; color: var(--ch-ardoise); font-size: 16px; line-height: 1.65; }
.cht-faq__inner p { margin: 0 0 10px; } .cht-faq__inner p:last-child { margin-bottom: 0; }
.cht-faq__inner strong { color: var(--ch-nuit); }
.cht-faq__inner a { color: var(--ch-bleu-roi); }

/* ---------- footer ---------- */
.cht-footer { position: relative; overflow: hidden; background: var(--ch-halo-horizon); color: rgba(255,255,255,.66); padding: 120px 0 56px; font: 400 14px var(--ch-body); }
.cht-footer::after { content: ""; position: absolute; inset: 0; background-image: var(--ch-grain); opacity: .06; pointer-events: none; }
.cht-footer__inner { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.cht-footer img { height: 60px; width: auto; }
.cht-footer p { margin: 0; }
.cht-footer a { color: inherit; text-decoration: none; }
.cht-footer a:hover { color: #fff; }

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
	.cht-grid { grid-template-columns: minmax(0, 1fr) 360px; }
	.cht-hero__symbol { width: 380px; right: -110px; opacity: .8; }
}

@media (max-width: 960px) {
	:root { --cht-gutter: 16px; --cht-radius: 22px; }
	.cht-hero { padding: 68px 0 64px; min-height: 0; }
	.cht-nav { gap: 12px; flex-wrap: wrap; }
	.cht-nav__logo img { height: 26px; }
	.cht-nav__burger { display: block; }
	.cht-nav__links { display: none; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 18px; padding: 24px 4px 8px; }
	.cht-nav.is-open .cht-nav__links { display: flex; }
	.cht-hero__body { margin-top: 64px; }
	.cht-overline { font-size: 11px; letter-spacing: .14em; }
	.cht-hero__title { font-size: 56px; margin-top: 20px; }
	.cht-hero__subtitle { font-size: 18px; margin-top: 18px; }
	.cht-hero__symbol { display: none; }

	.cht { padding: 24px 0 120px; }
	.cht-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.cht-main { gap: 16px; }
	.cht-aside { position: static; }
	.cht-card { max-height: none; padding: 26px 22px; }
	.cht-card__list { overflow: visible; -webkit-mask-image: none; mask-image: none; }
	.cht-step { padding: 26px 20px; }
	.cht-step__head { gap: 14px; margin-bottom: 22px; }
	.cht-step__num { font-size: 23px; }
	.cht-step__head { gap: 10px; }
	.cht-step__title { font-size: 22px; }
	.cht-objectives { grid-template-columns: minmax(0, 1fr); gap: 10px; }
	.cht-obj { padding: 18px; }
	.cht-row { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px 0; }
	.cht-row__label { padding-top: 0; font-size: 12px; }
	.cht-row__q { padding-top: 0; font-size: 15px; margin-bottom: 12px; }
	.cht-chip { padding: 9px 14px; font-size: 14px; }
	.cht-range__amount { font-size: 28px; }
	.cht-line__head { gap: 8px; min-height: 58px; }
	.cht-line__toggle { gap: 10px; font-size: 15px; }
	.cht-line__price { font-size: 14.5px; }
	.cht-line__price .cht-price-note { max-width: 118px; margin-left: auto; font-size: 11.5px; }
	.cht-line__toggle .cht-tag { font-size: 10px; padding: 2px 7px; }
	.cht-line__body ul { columns: 1; padding-left: 44px; }
	.cht-line__icon { width: 32px; height: 32px; }
	.cht-upsell { padding: 14px; gap: 12px; flex-wrap: wrap; }
	.cht-upsell__label { flex: 1 1 calc(100% - 44px); font-size: 15px; }
	.cht-upsell__price { flex-basis: 100%; padding-left: 42px; text-align: left; }
	.cht-ads { padding: 20px 18px; }
	.cht-total__amount { font-size: 40px; }

	.cht-bar { position: fixed; z-index: 9990; left: 12px; right: 12px; bottom: 12px; display: flex; align-items: center; gap: 12px; padding: 12px 12px 12px 20px; border-radius: 20px; background: var(--ch-nuit); color: #fff; box-shadow: 0 18px 40px rgba(7,11,26,.35); transition: transform .3s cubic-bezier(.2,.7,.2,1), opacity .3s; }
	.cht-bar[hidden] { display: none; }
	.cht.card-visible .cht-bar { transform: translateY(140%); opacity: 0; pointer-events: none; }
	.cht-bar__totals { flex: 1; min-width: 0; display: flex; flex-direction: column; }
	.cht-bar__label { font: 500 10.5px var(--ch-head); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.6); }
	.cht-bar__amount { font: 600 22px/1.15 var(--ch-head); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
	.cht-bar__monthly { font-size: 12.5px; color: var(--ch-bleu-ciel); }
	.cht-bar__btn { flex: none; padding: 13px 16px !important; border-radius: 999px !important; background: var(--ch-bleu-roi) !important; color: #fff !important; font: 600 14px/1 var(--ch-head) !important; }

	.cht-modal { padding: 0; place-items: end stretch; }
	.cht-modal__dialog { max-height: 92vh; border-radius: 24px 24px 0 0; padding: 30px 20px 24px; }
	.cht-modal__title { font-size: 23px; }
	.cht-form__grid { grid-template-columns: minmax(0, 1fr); }
	.cht-faq { padding-top: 56px; }
	.cht-faq__title { font-size: 28px; margin-bottom: 20px; }
	.cht .cht-faq__q { padding: 18px; font-size: 16px; gap: 14px; }
	.cht-faq__inner { padding: 0 18px 20px; font-size: 15px; }
	.cht-footer { padding: 72px 0 120px; }
	.cht-footer img { height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
	.cht *, .cht-modal * { animation: none !important; transition: none !important; }
}
