:root {
  --vmi-violet: #5b3a96;
  --vmi-black: #050703;
  --vmi-blue-deep: #121124;
  --vmi-cyan: #35b8e8;
  --vmi-white: #ffffff;
  --vmi-surface: #f6f4fb;
  --vmi-surface-2: #f1ecfa;
  --vmi-line: #d9d4e5;
  --vmi-line-strong: #b9b0cd;
  --vmi-text: #1a1726;
  --vmi-muted: #5f6174;
  --ok: #1f9d63;
  --ko: #e14b4b;
  --shadow-soft: 0 16px 36px rgba(18, 17, 36, 0.08);
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 16px;
}
* { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  font-family: Roboto, Arial, sans-serif;
  background: #f5f4f8;
  color: var(--vmi-text);
  scroll-behavior: smooth;
}
body::before {
  content: "";
  position: fixed;
  inset: 0 0 auto 0;
  height: 5px;
  background: var(--vmi-violet);
  z-index: 10;
}
img, svg { max-width: 100%; display: block; }
input, button, select { font: inherit; }

.shell { display: grid; grid-template-columns: 260px minmax(0, 1fr); min-height: 100vh; }
.sidebar {
  position: sticky;
  top: 0;
  align-self: start;
  height: 100vh;
  padding: 28px 20px;
  background: var(--vmi-violet);
  border-right: 1px solid rgba(255,255,255,.12);
  display: flex;
  flex-direction: column;
}
.sidebar-footer { margin-top: auto; padding-top: 22px; }
.sidebar-problem-btn { display: block; width: 100%; box-sizing: border-box; text-align: center; text-decoration: none; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.08); color: rgba(255,255,255,.92); border-radius: 16px; padding: 12px 14px; cursor: pointer; }
.logo-link { display: inline-block; margin-bottom: 16px; }
.logo { width: 132px; margin-bottom: 0; }
.sidebar h1 {
  margin: 0 0 28px;
  font-family: "Barlow Condensed", Roboto, Arial, sans-serif;
  font-size: 2rem;
  line-height: .95;
  font-style: italic;
  color: var(--vmi-white);
}
.sidebar__lead { color: rgba(255,255,255,.82); line-height: 1.5; margin: 0 0 22px; }
.side-nav { display: grid; gap: 10px; }
.side-nav a {
  color: rgba(255,255,255,.92);
  text-decoration: none;
  font-weight: 800;
  font-family: "Barlow Condensed", Roboto, Arial, sans-serif;
  letter-spacing: .03em;
  font-size: 1.08rem;
}
.main-content { padding: 24px; display: grid; gap: 18px; }

.recaptcha-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 18px;
  background: #ffffff;
  border: 1px solid var(--vmi-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}
.recaptcha-banner p { margin: 6px 0 0; color: var(--vmi-muted); }

.card, .result-card, .summary-banner, .alert, .action-bar {
  background: var(--vmi-white);
  border: 1px solid var(--vmi-line);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
}
.action-bar {
  padding: 12px 18px;
}
.section-ribbon, .card__title, .result-card__head h3, .details-title {
  font-family: "Barlow Condensed", Roboto, Arial, sans-serif;
}
.actions { display: flex; gap: 12px; flex-wrap: wrap; }
.actions--center { justify-content: center; }
.btn {
  border: none;
  border-radius: 999px;
  padding: 12px 18px;
  font-weight: 500;
  cursor: pointer;
}
.btn-primary { background: var(--vmi-violet); color: var(--vmi-white); }
.btn-secondary { background: var(--vmi-cyan); color: #08303a; }
.btn-price-opt { background: var(--vmi-violet); color: var(--vmi-white); }
.btn-ghost { background: #f1ebfa; color: var(--vmi-violet); }
.card { padding: 20px; }
.section-ribbon {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  margin-bottom: 14px;
  border-radius: 4px;
  color: var(--vmi-white);
  background: var(--vmi-violet);
  font-size: 1.28rem;
  font-weight: 800;
  font-style: italic;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.subsection-title {
  margin: 8px 0 10px;
  color: var(--vmi-violet);
  font-family: "Barlow Condensed", Roboto, Arial, sans-serif;
  font-size: 1.25rem;
  font-weight: 800;
}
.card-grid.two-col, .details-grid.two-col { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.card__header-row, .result-card__head, .summary-banner__head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}
.form-grid { display: grid; gap: 14px; }
.form-grid.two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.four-col { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-grid .full { grid-column: 1 / -1; }
label span {
  font-size: .88rem;
  color: var(--vmi-muted);
  display: block;
  margin-bottom: 6px;
}
input, select {
  width: 100%;
  border: 1px solid var(--vmi-line-strong);
  border-radius: 12px;
  padding: 10px 12px;
  background: var(--vmi-white);
  color: var(--vmi-text);
}
input:disabled, select:disabled { background: #f3f2f7; color: #77728a; }
.caisson-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.caisson-choice {
  padding: 16px;
  border: 1px solid var(--vmi-line);
  border-radius: 18px;
  background: #fcfbfe;
}
.caisson-choice h3 { margin: 0 0 12px; font-size: 1.2rem; }

.caisson-network-block { margin-top: 22px; padding-top: 10px; border-top: 1px solid var(--vmi-line); }
.caisson-network-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 12px;
}
.caisson-network-head h3 { margin: 0 0 4px; }
.caisson-network-head p { margin: 0; color: var(--vmi-muted); }
.inline-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.col-nature { width: 120px; }
.col-label { width: 230px; }
.network-table tbody tr.row-room td:first-child strong,
.network-table tbody tr.row-rejet td:first-child strong,
.network-table tbody tr.row-kitchen td:first-child strong { color: var(--vmi-blue-deep); }
.badge, .badge--soft, .badge--ok, .badge--ko, .fixed-chip {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 700;
}
.badge { background: rgba(58,189,220,.15); color: #0f6873; }
.badge--soft { background: #efe8f8; color: var(--vmi-violet); }
.badge--ok { background: rgba(31,157,99,.14); color: var(--ok); }
.badge--ko { background: rgba(225,75,75,.12); color: var(--ko); }
.fixed-chip { background: #efe8f8; color: var(--vmi-violet); justify-content: center; }
.table-wrap, .details-table-wrap { overflow-x: auto; }
.data-table, .mini-table, .details-table { width: 100%; border-collapse: collapse; table-layout: auto; }
.details-table { table-layout: fixed; }
.data-table th, .data-table td, .mini-table th, .mini-table td, .details-table th, .details-table td {
  padding: 10px;
  border-bottom: 1px solid #ece7f5;
  text-align: left;
  vertical-align: middle;
}
.data-table th, .mini-table th, .details-table th { font-size: .88rem; color: var(--vmi-blue-deep); }
.data-table thead th, .details-table thead th {
  background: #f4effa;
  color: var(--vmi-blue-deep);
  font-weight: 800;
  white-space: nowrap;
}
.col-caisson { width: 84px; }
.col-piece { width: 170px; }
.col-duct { width: 110px; }
.col-small { width: 112px; }
.col-action { width: 52px; }
.row-fixed td { background: #fbfafc; }
.icon-btn {
  width: 34px;
  height: 34px;
  border: none;
  border-radius: 50%;
  background: #f4eff9;
  color: var(--vmi-violet);
  cursor: pointer;
}
.results-zone { display: grid; gap: 18px; }
.alert { padding: 16px 18px; }
.alert--error { border-color: rgba(225,75,75,.25); background: #fff7f7; }
.alert ul { margin: 8px 0 0 20px; }
.summary-banner { padding: 22px; display: grid; gap: 18px; }
.summary-banner--ok { border-top: 6px solid var(--ok); }
.summary-banner--ko { border-top: 6px solid var(--ko); }

.summary-banner--pending { border-top: 6px solid var(--vmi-cyan); }
.results-pending-banner { display: none; }
.results-zone--pending .results-pending-banner { display: grid; }
.results-zone--pending > :not(.results-pending-banner):not(.action-bar--result-optim) { display: none; }
.results-zone--pending > .action-bar--result-optim { display: block; }
.network-table select.branch-duct-type { min-width: 120px; }
.summary-banner h2 { margin: 8px 0 6px; font-size: 2rem; }
.summary-text { margin: 0; color: var(--vmi-muted); white-space: pre-line; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.kpi-grid--small { grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 14px; }
.kpi {
  padding: 14px;
  background: #fbf9fd;
  border: 1px solid #ede3f7;
  border-radius: 18px;
}
.kpi span { display: block; color: var(--vmi-muted); font-size: .84rem; margin-bottom: 6px; }
.kpi .kpi-label { display: block; color: var(--vmi-muted); font-size: .84rem; margin-bottom: 8px; line-height: 1.35; }
.kpi strong { font-size: 1.45rem; }
.kpi--with-corner-help { position: relative; padding-right: 48px; }
.help-inline--card .help-tooltip { left: auto; right: 0; top: calc(100% + 8px); transform: none; }
.result-card { padding: 22px; }
.result-card__head h3 { margin: 0 0 6px; font-size: 1.5rem; color: var(--vmi-blue-deep); }
.result-card__head p, .muted { color: var(--vmi-muted); margin: 0; }
.curve-card {
  margin-top: 18px;
  border: 1px solid var(--vmi-line);
  border-radius: var(--radius-lg);
  background: var(--vmi-white);
}
.curve-card--spaced { padding: 16px; }
.curve-card__header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 10px; }
.curve-card__header h4 { margin: 0 0 4px; color: var(--vmi-violet); font-size: 1.35rem; font-style: italic; }
.curve-card__header p { margin: 0; color: var(--vmi-muted); }
.curve-card__svg {
  padding: 8px;
  border: 1px solid #ebe5f5;
  border-radius: 18px;
  background: linear-gradient(180deg, #fff 0%, #fbfbfd 100%);
  overflow: auto;
}
.curve-card__svg svg { width: min(100%, 900px); height: auto; display: block; margin: 0 auto; min-width: 0; }
.details-box {
  margin-top: 18px;
  border: 1px solid #ebe4f4;
  border-radius: 18px;
  padding: 14px 16px;
  background: #fcfbfe;
}
.details-box summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--vmi-violet);
  font-family: "Barlow Condensed", Roboto, Arial, sans-serif;
  font-size: 1.2rem;
}
.details-title {
  margin: 18px 0 10px;
  color: var(--vmi-blue-deep);
  font-size: 1.35rem;
  font-style: italic;
}
.pressure-table .dim {
  background: #efe6fb;
  color: #472d80;
  font-weight: 700;
}
.pressure-table .bad {
  background: #fde6eb;
  color: #b4233c;
  font-weight: 700;
}
.mini-table th { width: 45%; }
.details-grid--bottom { margin-top: 8px; }
.details-stack { display: grid; gap: 14px; }
.details-note-card { margin-bottom: 0; }
.details-thermal-card { margin-top: 0; }
.details-thermal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.details-thermal-grid .mini-table th { width: 62%; }
.details-thermal-grid .mini-table td { text-align: right; }
.is-hidden-caisson { display: none; }

@media (max-width: 1100px) {
  .caisson-network-head { flex-direction: column; }
  .form-grid.four-col { grid-template-columns: 1fr; }
  .shell { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; }
  .card-grid.two-col, .details-grid.two-col, .caisson-grid, .kpi-grid, .kpi-grid--small { grid-template-columns: 1fr; }
  .main-content { padding: 16px; }
  .card, .result-card, .summary-banner, .action-bar { border-radius: 22px; }
}

.logo { filter: brightness(0) invert(1); opacity: 0.96; }
.kpi-grid--caisson { grid-template-columns: repeat(5, minmax(0,1fr)); margin-top: 14px; }
.kpi--danger { border-color: rgba(225,75,75,.35); background: #fff1f2; }
.kpi--danger span, .kpi--danger strong { color: #b4233c; }
.curve-card--compact .curve-card__svg { padding: 6px; max-width: 940px; margin: 0 auto; }
.curve-card--compact .curve-card__header h4 { font-size: 1.05rem; }
.curve-card--compact .curve-card__header p { font-size: .85rem; }
.curve-card--compact { margin-top: 14px; }
.network-table tbody tr.row-rejet { border-top: 2px solid #e8def7; }
.network-table tbody tr.row-rejet td:first-child strong { color: var(--vmi-violet); }
@media (max-width: 1100px) {
  .kpi-grid--caisson { grid-template-columns: 1fr; }
}

.details-col-first { width: 260px; }
.details-col-mid { width: 132px; }
.details-col-last { width: 112px; }
.details-table th:first-child, .details-table td:first-child { width: 260px; }
.details-table th:last-child, .details-table td:last-child { width: 112px; }
.details-table th, .details-table td { white-space: nowrap; }
.details-table th:not(:first-child), .details-table td:not(:first-child) { text-align: center; }
.details-table-wrap + .details-table-wrap { margin-top: 14px; }
.remove-row { background: #f4eff9; color: var(--vmi-violet); border: none; border-radius: 999px; width: 34px; height: 34px; font-size: 1rem; cursor: pointer; }
.remove-row:hover { background: #eadff7; }


.wizard-step { display: none !important; }
.wizard-step--active { display: grid !important; gap: 18px; }
.wizard-nav a {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.10);
  color: rgba(255,255,255,.88);
  font-weight: 500;
  text-decoration: none;
}
.wizard-nav a.is-active {
  background: var(--vmi-cyan);
  color: var(--vmi-blue-deep);
}
.step-actions {
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.step-actions--full { grid-column: 1 / -1; }
.wizard-action-bar { margin-top: 18px; }
.actions--between { justify-content: space-between; align-items: center; width: 100%; }
.results-zone { margin-top: 0; }


.form-grid.three-col { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.actions--between { justify-content: space-between; align-items: center; }
.empty-state { text-align: center; }
.empty-state h3 { margin: 0 0 8px; }
.side-nav a.is-active { color: var(--vmi-blue-deep); text-decoration: none; }
.wizard-step > .results-zone { display: grid; gap: 18px; }
@media (max-width: 960px) {
  .form-grid.three-col, .caisson-grid, .kpi-grid, .card-grid.two-col, .details-grid.two-col, .details-thermal-grid { grid-template-columns: 1fr; }
  .shell { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; }
}


.comparatif-caissons{margin-top:1rem;padding:0.5rem 0 0;}
.comparatif-caissons__img{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:16px;background:#fff;}
.network-help{margin-top:1rem;padding:1rem 1.25rem;border-top:1px solid var(--line);color:var(--ink-soft);font-size:0.95rem;line-height:1.5;}
.network-help p{margin:0.35rem 0;}


.comparatif-caissons { margin-top: 10px; padding: 18px; border: 1px solid var(--vmi-line); border-radius: 22px; background: #fcfbfe; }
.guide-choix { margin-top: 18px; }
.muted-inline { color: var(--vmi-muted); font-weight: 600; font-size: .95em; }
.rejet-guide-card h4 .muted-inline { display: block; margin-top: 4px; color: var(--vmi-muted); font-family: Roboto, Arial, sans-serif !important; font-size: 0.9rem; font-weight: 400; line-height: 1.3; }

.network-help { margin: 6px 0 0; color: var(--vmi-muted); max-width: 900px; line-height: 1.45; }
.kpi-grid--single-caisson { grid-template-columns: minmax(220px, 320px); justify-content: start; }
.row-fuite td { background: #faf8fd; color: var(--vmi-violet); font-weight: 600; }
.actions--between { justify-content: space-between; }
.hero-card { padding: 24px; }
.hero-title { margin: 0 0 10px; font-size: 2rem; color: var(--vmi-blue-deep); }
.mini-panel { padding: 18px; border: 1px solid var(--vmi-line); border-radius: 18px; background: #fcfbfe; }
.info-note {
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid #e6dff3;
  background: #faf7fe;
}
.info-note p, .info-note ul { margin: 6px 0 0; color: var(--vmi-muted); }
.hero-card .info-note .intro-paragraph { margin: 0; line-height: 1.55; }
.hero-card .info-note .intro-paragraph + .intro-paragraph { margin-top: 16px; }
.locked-fixed-input[disabled] { cursor: not-allowed; }
.info-note--soft { background: #faf7fe; }
.info-note--success { background: #f5fcf8; border-color: rgba(31,157,99,.22); }
.info-note--warning { background: #fff8f3; border-color: rgba(225,75,75,.18); }
.network-help--footer { margin: 14px 0 0; color: var(--vmi-muted); }
.curve-card__svg { position: relative; }
.curve-point { cursor: pointer; }
.curve-point:focus { outline: none; stroke: #111827; stroke-width: 2; }
.curve-tooltip {
  position: absolute;
  z-index: 3;
  min-width: 170px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(17,24,39,.94);
  color: #fff;
  font-size: .82rem;
  line-height: 1.4;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  pointer-events: none;
}
.step-actions { padding: 14px 18px; display: flex; justify-content: space-between; gap: 12px; }
.step-actions .btn + .btn { margin-left: 0; }
.kpi--danger { border-color: rgba(225,75,75,.24); background: #fff7f7; }
@media (max-width: 980px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar { position: relative; height: auto; }
  .form-grid.four-col, .card-grid.two-col, .details-grid.two-col, .caisson-grid, .kpi-grid { grid-template-columns: 1fr; }
  .step-actions { flex-direction: column; }
}

.project-start-grid { align-items: stretch; }
.mini-panel--project-start { display:flex; flex-direction:column; gap:14px; }
.mini-panel--project-start .muted { min-height: 3.2em; margin: 0; }
.actions--stretch { width:100%; }
.actions--align-end { margin-top:auto; }
.btn--full { width:100%; justify-content:center; }
.caisson-intro { margin-bottom: 16px; }
.field-label { display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; }
.help-inline { position:relative; display:inline-flex; align-items:center; }
.help-btn { width:20px; height:20px; border-radius:999px; border:1px solid var(--vmi-line); background:#fff; color:var(--vmi-violet); font-weight:700; font-size:.78rem; line-height:1; display:inline-flex; align-items:center; justify-content:center; cursor:help; padding:0; }
.help-tooltip { position:absolute; left:calc(100% + 8px); top:50%; transform:translateY(-50%); min-width:220px; max-width:280px; padding:10px 12px; border-radius:12px; background:rgba(17,24,39,.96); color:#fff; font-size:.8rem; line-height:1.35; box-shadow:0 10px 24px rgba(0,0,0,.18); opacity:0; pointer-events:none; transition:opacity .15s ease; z-index:5; }
.help-inline:hover .help-tooltip, .help-inline:focus-within .help-tooltip { opacity:1; }
.help-inline.help-inline--card { position:absolute; top:12px; right:12px; display:inline-flex; align-items:center; z-index:6; }
.help-inline.help-inline--card .help-btn { width:20px; height:20px; background:#fff; border:1px solid var(--vmi-line); color:var(--vmi-violet); }
.help-inline.help-inline--card .help-tooltip { left:auto; right:0; top:calc(100% + 8px); transform:none; background:rgba(17,24,39,.96); color:#fff; }
.help-inline.help-inline--below-left .help-tooltip { left:auto; right:0; top:calc(100% + 8px); transform:none; }
.export-meta-grid { margin: 10px 0 18px; }
.field-span-2 { grid-column: 1 / -1; }
.plain-list { margin: 0; padding-left: 1.1rem; }
.plain-list li + li { margin-top: .7rem; }
.curve-point-label { font-family: system-ui, Arial, sans-serif; font-size: 9px; font-weight: 600; fill: #3f3b53; }
@media (max-width: 980px) {
  .help-tooltip { left:0; top:calc(100% + 8px); transform:none; }
  .help-inline--card .help-tooltip { left:auto; right:0; }
  .help-inline--below-left .help-tooltip { left:auto; right:0; }
  .field-span-2 { grid-column:auto; }
  .export-action-grid { grid-template-columns: 1fr; }
}


.field-label { min-height: 1.2rem; }
.locked-fixed-input { background: #f3f2f7; color: #77728a; pointer-events: none; user-select: none; }
.export-action-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.export-action-card { padding: 16px; border: 1px solid #ede3f7; border-radius: 18px; background: #fbf9fd; display:flex; flex-direction:column; gap: 12px; }
.export-action-card p { margin: 0; color: var(--vmi-muted); line-height: 1.45; text-align: center; }
.export-warning { margin: 12px 0 0; text-align: center; color: var(--vmi-muted); font-size: 0.95rem; }
.export-disclaimer-box { margin-bottom: 18px; }
.export-disclaimer-box p { margin: 0; line-height: 1.55; }
.export-disclaimer-box p + p { margin-top: 12px; }
.caisson-intro { margin-bottom: 18px; }
.guide-choix--rejet { margin-top: 18px; }
.rejet-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 10px; }
.rejet-guide-card { padding: 16px; border: 1px solid var(--vmi-line); border-radius: 18px; background: #fcfbfe; display: grid; gap: 10px; }
.rejet-guide-card h4 { margin: 0; color: var(--vmi-violet); font-family: "Barlow Condensed", Roboto, Arial, sans-serif; font-size: 1.15rem; }
.rejet-guide-card p { margin: 0; color: var(--vmi-muted); line-height: 1.45; }
.rejet-guide-card__meta { font-size: .9rem; }
.rejet-guide-card__img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; border-radius: 14px; background: #fff; border: 1px solid #ebe5f5; padding: 10px; }
.curve-tooltip { position: absolute; right: 12px; top: 12px; left: auto; max-width: 220px; }
.curve-card--interactive { position: relative; }
@media (max-width: 980px) { .rejet-guide-grid { grid-template-columns: 1fr; } }


.guide-choix--rejet {
  max-width: 980px;
  padding: 18px 20px 20px;
  border: 1px solid var(--vmi-line);
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(18, 17, 36, 0.04);
}
.rejet-guide-grid--compact { gap: 12px; }
.rejet-guide-card--compact { padding: 12px; gap: 8px; }
.rejet-guide-card--compact h4 { font-size: 1.02rem; line-height: 1.2; }
.rejet-guide-card--compact .rejet-guide-card__img { aspect-ratio: 16 / 10; max-height: 150px; padding: 8px; }


.form-grid.compact > label {
  display: flex;
  flex-direction: column;
  align-self: start;
}
.form-grid.compact > label > span,
.form-grid.compact > label > .field-label {
  min-height: 28px;
}
#nb_caissons {
  margin-top: 0;
}

.guide-note-inline { margin-top: 18px; margin-bottom: 10px; }
.guide-note-standalone {
  margin-top: 18px;
  margin-bottom: 0;
}
.guide-note-inline p { margin: 0; }
.guide-panel {
  margin-top: 28px;
  padding: 22px 22px 20px;
  background: #ffffff;
  border: 1px solid var(--vmi-line);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
}
.guide-panel .guide-note-inline {
  margin-top: 0;
  margin-bottom: 14px;
}
.guide-panel .guide-choix--rejet {
  margin-top: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.guide-panel--standalone {
  margin-top: 16px;
}
.guide-panel--standalone .guide-choix--rejet {
  margin-top: 0;
}
.form-grid.compact { align-items: start; }
.form-grid.compact > label > select,
.form-grid.compact > label > input { min-height: 44px; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}
.action-bar--result-optim {
  margin: 0 0 18px;
  display: flex;
  justify-content: flex-start;
}
.result-caisson-picker__controls {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.btn-icon {
  width: 42px;
  height: 42px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #f1ebfa;
  color: var(--vmi-violet);
  font-size: 1.2rem;
  font-weight: 800;
}
.mini-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
}
.mini-badge--ok {
  background: rgba(31, 157, 99, 0.12);
  color: var(--ok);
  border: 1px solid rgba(31, 157, 99, 0.22);
}

@media (max-width: 900px) {
  .recaptcha-banner { flex-direction: column; align-items: stretch; }
}


@font-face {
  font-family: "Rift Demi";
  src: url("/static/fonts/rift-demi.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Rift Medium Italic";
  src: url("/static/fonts/rift-medium-italic.otf") format("opentype");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Rift Bold";
  src: url("/static/fonts/rift-bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Rift Bold Italic";
  src: url("/static/fonts/rift-bold-italic.otf") format("opentype");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

:root {
  --font-title: "Rift Bold Italic", "Rift Bold", Arial, sans-serif;
  --title-color: #57368c;
  --focus-ring: rgba(181, 151, 255, 0.34);
  --section-label-color: #a6a9b7;
}

.sidebar h1,
.hero-title,
.subsection-title,
.result-card__head h3,
.details-title,
.summary-banner h2,
.curve-card__header h4,
.details-box summary,
.rejet-guide-card h4,
.caisson-choice h3,
.caisson-network-head h3,
.empty-state h3,
.mini-panel h3 {
  font-family: var(--font-title) !important;
  font-style: italic;
  letter-spacing: 0.01em;
}

.sidebar h1 {
  color: var(--vmi-white);
}

.wizard-step > .section-ribbon,
.section-ribbon {
  display: block !important;
  min-height: 0 !important;
  width: 100%;
  margin: 0 0 -2px !important;
  padding: 0 1px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  color: var(--section-label-color) !important;
  font-family: Roboto, Arial, sans-serif !important;
  font-size: 0.96rem !important;
  font-style: normal !important;
  font-weight: 500 !important;
  line-height: 1.02 !important;
  letter-spacing: 0.02em !important;
  text-transform: lowercase !important;
}

.wizard-step > .section-ribbon {
  margin-top: -8px !important;
}

.hero-title,
.subsection-title,
.result-card__head h3,
.details-title,
.summary-banner h2,
.curve-card__header h4,
.details-box summary,
.rejet-guide-card h4,
.caisson-choice h3,
.caisson-network-head h3,
.empty-state h3,
.mini-panel h3 {
  color: var(--title-color);
}

.hero-title {
  margin: 0 0 12px;
  padding: 0;
  background: transparent;
  border-radius: 0;
  font-size: 2.04rem;
  line-height: 1.15;
  letter-spacing: 0.01em;
}

.details-title,
.curve-card__header h4,
.rejet-guide-card h4,
.rejet-guide-card--compact h4 {
  font-family: Roboto, Arial, sans-serif !important;
}

.btn,
.sidebar-problem-btn,
.help-btn,
.icon-btn,
.remove-row,
.wizard-nav a {
  transition:
    transform 0.25s ease,
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    opacity 0.25s ease;
  transform-origin: center;
}

.btn,
.sidebar-problem-btn,
.icon-btn,
.remove-row,
.help-btn {
  text-decoration: none;
}

.btn-primary {
  --btn-bg: var(--vmi-violet);
  --btn-bg-hover: #6845a8;
  background: var(--btn-bg);
  color: var(--vmi-white);
}

.btn-secondary {
  --btn-bg: var(--vmi-cyan);
  --btn-bg-hover: #2fa9d5;
  background: var(--btn-bg);
  color: #08303a;
}

.btn-price-opt {
  --btn-bg: var(--vmi-violet);
  --btn-bg-hover: #6845a8;
  background: var(--btn-bg);
  color: var(--vmi-white);
}

.btn-ghost {
  --btn-bg: #f1ebfa;
  --btn-bg-hover: #e4daf3;
  background: var(--btn-bg);
  color: var(--vmi-violet);
}

#resume-project-btn {
  --btn-bg: #ceb3ff;
  --btn-bg-hover: #bda1f2;
  background: var(--btn-bg);
  color: #2c194f;
}

.export-action-card [data-export-action="save_project"] {
  --btn-bg: #ceb3ff;
  --btn-bg-hover: #bda1f2;
  background: var(--btn-bg);
  color: #2c194f;
}

.sidebar-problem-btn {
  --btn-bg: rgba(255,255,255,.08);
  --btn-bg-hover: rgba(255,255,255,.16);
  background: var(--btn-bg);
}

.icon-btn,
.remove-row,
.help-btn {
  --btn-bg: #f4eff9;
  --btn-bg-hover: #e7def3;
  background: var(--btn-bg);
}

.wizard-nav a {
  --btn-bg: rgba(255,255,255,0.10);
  --btn-bg-hover: rgba(255,255,255,0.18);
}

.wizard-nav a:hover,
.wizard-nav a:focus-visible {
  background: var(--btn-bg-hover);
}

.btn:hover:not(:disabled),
.btn:focus-visible,
.sidebar-problem-btn:hover,
.sidebar-problem-btn:focus-visible,
.help-btn:hover,
.help-btn:focus-visible,
.icon-btn:hover,
.icon-btn:focus-visible,
.remove-row:hover,
.remove-row:focus-visible,
.wizard-nav a:hover,
.wizard-nav a:focus-visible {
  transform: scale(1.04);
}

.btn:hover:not(:disabled),
.btn:focus-visible,
.sidebar-problem-btn:hover,
.sidebar-problem-btn:focus-visible,
.help-btn:hover,
.help-btn:focus-visible,
.icon-btn:hover,
.icon-btn:focus-visible,
.remove-row:hover,
.remove-row:focus-visible {
  background: var(--btn-bg-hover);
}

.btn:focus-visible,
.sidebar-problem-btn:focus-visible,
.help-btn:focus-visible,
.icon-btn:focus-visible,
.remove-row:focus-visible,
.wizard-nav a:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--focus-ring);
}


.wizard-step > .card,
.wizard-step > .results-zone {
  margin-top: 0;
}

.wizard-step > .section-ribbon + .card,
.wizard-step > .section-ribbon + .results-zone {
  margin-top: -8px !important;
}

.subsection-title,
.result-card__head h3,
.details-title,
.caisson-choice h3,
.caisson-network-head h3,
.empty-state h3,
.mini-panel h3 {
  font-size: 1.64rem !important;
  line-height: 1.22 !important;
  letter-spacing: 0.01em !important;
  font-weight: 700 !important;
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}

@media (max-width: 900px) {
  .wizard-step > .section-ribbon,
  .section-ribbon {
    font-size: 0.92rem !important;
    margin-bottom: -2px !important;
    line-height: 1.02 !important;
  }

  .subsection-title,
  .result-card__head h3,
  .details-title,
  .caisson-choice h3,
  .caisson-network-head h3,
  .empty-state h3,
  .mini-panel h3 {
    font-size: 1.52rem !important;
    line-height: 1.2 !important;
    margin-bottom: 9px !important;
  }
}


.curve-card__header h4,
.rejet-guide-card h4,
.rejet-guide-card--compact h4 {
  font-family: Roboto, Arial, sans-serif !important;
  font-style: normal !important;
  letter-spacing: 0.01em !important;
}

.rejet-guide-card h4 .muted-inline {
  display: block;
  margin-top: 4px;
  color: var(--vmi-muted);
  font-family: Roboto, Arial, sans-serif !important;
  font-size: 0.9rem;
  font-style: normal !important;
  font-weight: 400;
  line-height: 1.3;
}

.rejet-guide-card__meta {
  color: var(--vmi-muted);
  font-family: Roboto, Arial, sans-serif !important;
  font-size: 0.9rem;
  font-style: normal !important;
  font-weight: 400;
  line-height: 1.3;
}
