/* Kit Pro — panier, tunnel de commande et devis (couloir ds-checkout).
   Maquettes : Panier, PanierMobile, TunnelLivraison, TunnelPaiement,
   TunnelMobile, Devis, DevisMobile. Composants : kp-cart-line, kp-summary,
   kp-steps, kp-choice, kp-field, kp-btn, kp-price (kp-components.css).
   Ruptures en min-width : 576 / 768 / 992. */

/* ─── Conteneurs de page ─────────────────────────────────── */
.kp-cart,
.kp-checkout,
.kp-quote {
  max-width: calc(var(--kp-container) + 2 * var(--kp-space-6));
  margin: 0 auto;
  padding: 0 var(--kp-space-4) var(--kp-space-12);
  color: var(--kp-ink-80);
}
@media (min-width: 768px) {
  .kp-cart,
  .kp-checkout,
  .kp-quote { padding: 0 var(--kp-space-6) var(--kp-space-16); }
}

/* ─── Panier ─────────────────────────────────────────────── */
.kp-cart__head { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding-top: 20px; }
.kp-cart__title { margin: 0; font-size: 26px; line-height: 32px; font-weight: 800; letter-spacing: -0.03em; color: var(--kp-ink); }
.kp-cart__count { font-size: 14px; line-height: 20px; color: var(--kp-ink-60); }
.kp-cart__count strong { color: var(--kp-ink); }
.kp-cart__grid { display: grid; gap: var(--kp-space-4); margin-top: 14px; align-items: start; }
.kp-cart__main { display: flex; flex-direction: column; gap: var(--kp-space-4); min-width: 0; }
.kp-cart__lines { padding: 0 14px; background: var(--kp-white); border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-lg); }
.kp-cart__lines .js-cart-item:last-child .kp-cart-line { border-bottom: 0; }
.kp-cart-line__name a { color: inherit; text-decoration: none; }
.kp-cart-line__name a:hover { text-decoration: underline; }
.kp-cart-line__thumb { overflow: hidden; }
.kp-cart-line__attr { font-size: 13px; line-height: 18px; color: var(--kp-ink-60); }
.kp-cart-line__remove { justify-self: start; margin-left: -8px; text-decoration: none; }
.kp-cart-line__remove svg,
.kp-qty button > * { pointer-events: none; }
.kp-cart-line__gift { font-size: 13px; font-weight: 600; color: var(--kp-ink-60); }
.kp-cart__continue { align-self: flex-start; font-size: 14px; }
.kp-cart__empty-text { margin: 0; padding: var(--kp-space-4) 0; color: var(--kp-ink-60); }
.kp-cart__aside { display: flex; flex-direction: column; gap: 14px; }
.kp-cart-totals,
.kp-cart-actions { display: grid; gap: var(--kp-space-4); }
.kp-cart-actions { gap: 10px; }
.kp-cart__facts { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 4px 4px 0; list-style: none; font-size: 13px; line-height: 18px; color: var(--kp-ink-80); }
.kp-cart__facts li { display: flex; align-items: center; gap: 10px; }
.kp-cart__facts a { color: var(--kp-ink); font-weight: 700; text-decoration: none; }
.kp-cart__empty { display: grid; justify-items: center; gap: var(--kp-space-4); margin-top: 20px; padding: var(--kp-space-8) var(--kp-space-4); background: var(--kp-white); border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-lg); text-align: center; color: var(--kp-ink-60); }
.kp-quote-cta { display: grid; gap: 10px; }
.kp-quote-cta__note { margin: 0; font-size: 13px; line-height: 19px; color: var(--kp-ink-60); }
.kp-summary__total-label small { display: block; font-size: 12px; line-height: 16px; font-weight: 500; color: var(--kp-ink-60); }
/* Bootstrap (reboot) met les <dt> en gras : le libellé d'une ligne de récapitulatif reste en texte courant. */
.kp-summary__row dt { font-weight: 400; }

@media (max-width: 767.98px) {
  .kp-cart-line__name { font-size: 14px; line-height: 19px; }
}
@media (min-width: 768px) {
  .kp-cart__head { justify-content: flex-start; padding-top: 32px; }
  .kp-cart__title { font-size: 32px; line-height: 38px; }
  .kp-cart__count { font-size: 15px; line-height: 22px; }
  .kp-cart__count-total { display: none; }
  .kp-cart__grid { margin-top: 20px; }
  .kp-cart__main { gap: var(--kp-space-6); }
  .kp-cart__lines { padding: 0 var(--kp-space-6); }
  .kp-cart-line .kp-price { min-width: 130px; }
}
@media (min-width: 992px) {
  .kp-cart__grid { grid-template-columns: minmax(0, 1fr) 400px; gap: var(--kp-space-8); }
  .kp-cart__aside { position: sticky; top: var(--kp-space-6); }
}

/* ─── Tunnel : en-tête et pied réduits ───────────────────── */
.kp-checkout-header { display: flex; justify-content: space-between; align-items: center; gap: var(--kp-space-4); padding: 14px var(--kp-space-4); background: var(--kp-white); border-bottom: 1px solid var(--kp-ink-10); }
.kp-checkout-header__logo img { display: block; height: 26px; width: auto; }
.kp-checkout-header__facts { display: flex; align-items: center; gap: 28px; font-size: 13px; line-height: 18px; color: var(--kp-ink-80); }
.kp-checkout-header__fact { display: inline-flex; align-items: center; gap: 6px; }
.kp-checkout-header__fact a { color: var(--kp-ink); font-weight: 700; text-decoration: none; }
.kp-checkout-header__phone { display: none; }
.kp-checkout-footer { display: flex; flex-direction: column; gap: 6px; padding: 18px var(--kp-space-4) 24px; font-size: 13px; line-height: 18px; color: var(--kp-ink-60); }
.kp-checkout-footer a { color: var(--kp-ink-60); }
.kp-checkout-footer > span:first-child a { color: var(--kp-ink); font-weight: 700; text-decoration: none; }
.kp-checkout-footer__links { display: flex; flex-wrap: wrap; gap: 6px 20px; }
@media (min-width: 768px) {
  /* Bords alignés sur le conteneur de page (1320px), comme les maquettes. */
  .kp-checkout-header,
  .kp-checkout-footer { padding-inline: max(var(--kp-space-6), calc((100% - var(--kp-container)) / 2)); }
  .kp-checkout-header { padding-block: 16px; }
  .kp-checkout-header__logo img { height: 32px; }
  .kp-checkout-header__facts { font-size: 14px; line-height: 20px; }
  .kp-checkout-header__phone { display: inline-flex; }
  .kp-checkout-footer { flex-direction: row; justify-content: space-between; padding-block: 20px; background: var(--kp-white); border-top: 1px solid var(--kp-ink-10); }
}

/* ─── Tunnel : mise en page ──────────────────────────────── */
.kp-checkout { display: grid; align-items: start; }
.kp-checkout__toggle { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 52px; margin: 0 calc(-1 * var(--kp-space-4)); padding: 0 var(--kp-space-4); border: 0; border-bottom: 1px solid var(--kp-ink-10); background: var(--kp-ink-05); font: 600 14px/20px var(--kp-font-sans); color: var(--kp-ink); cursor: pointer; text-align: left; }
.kp-checkout__toggle-label,
.kp-checkout__toggle-total { display: inline-flex; align-items: center; gap: 8px; }
.kp-checkout__toggle-total strong { font-weight: 800; white-space: nowrap; }
.kp-checkout__toggle[aria-expanded="true"] .kp-checkout__toggle-total svg { transform: rotate(180deg); }
.kp-checkout__aside { min-width: 0; }
.kp-checkout-summary { margin-top: 12px; }
/* Hummingbird range Bootstrap dans des couches CSS (@layer) : les feuilles du
   thème, hors couche, l'emportent. Le repli du récapitulatif (.collapse) doit
   donc être redit face à display: grid de .kp-summary. */
.kp-checkout-summary.collapse:not(.show) { display: none; }
.kp-checkout__main { display: flex; flex-direction: column; min-width: 0; }
.kp-checkout__nav { padding: 18px 0 4px; }
.kp-checkout__steps { display: flex; flex-direction: column; gap: var(--kp-space-4); margin-top: 14px; }

@media (min-width: 768px) {
  .kp-checkout__toggle { margin: 0 calc(-1 * var(--kp-space-6)); padding: 0 var(--kp-space-6); }
}
@media (min-width: 992px) {
  .kp-checkout { grid-template-columns: minmax(0, 1fr) 400px; column-gap: 40px; padding-top: 28px; }
  .kp-checkout__toggle { display: none; }
  .kp-checkout__main { grid-column: 1; grid-row: 1; }
  .kp-checkout__aside { grid-column: 2; grid-row: 1; margin-top: 56px; position: sticky; top: var(--kp-space-6); }
  .kp-checkout #js-checkout-summary.collapse:not(.show) { display: grid; }
  .kp-checkout-summary { margin-top: 0; }
  .kp-checkout__nav { padding: 0 0 8px; }
  .kp-checkout__steps { margin-top: 8px; }
}

/* ─── Tunnel : étapes (kp-steps, états posés par Hummingbird) ─ */
.kp-steps__label { min-width: 0; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.kp-steps__name { min-width: 0; }
.kp-steps__label[disabled] { cursor: default; }
.kp-steps__item.checkout-steps__step--success { color: var(--kp-ink-80); }
.kp-steps__item.checkout-steps__step--success .kp-steps__bar { background: var(--kp-success); }
.kp-steps__item.checkout-steps__step--success .kp-steps__label::before { content: "✓"; border-color: var(--kp-success); background: var(--kp-success); color: var(--kp-white); }
.kp-steps__item:has(> .kp-steps__label.active) { color: var(--kp-ink); font-weight: 800; }
.kp-steps__item:has(> .kp-steps__label.active) .kp-steps__bar { background: var(--kp-ink); }
.kp-steps__item:has(> .kp-steps__label.active) .kp-steps__label::before { content: counter(kp-step); border-color: var(--kp-ink); background: var(--kp-ink); color: var(--kp-white); }
@media (max-width: 575.98px) {
  /* Seule l'étape en cours garde son nom : elle prend la place des autres. */
  .kp-steps__item:has(> .kp-steps__label.active) { flex-grow: 2; }
  .kp-steps__item:has(> .kp-steps__label.active) .kp-steps__name { display: block; }
}

/* Cartes d'étape (terminée / à venir) et étape en cours */
.kp-step-card { display: flex; justify-content: space-between; align-items: center; gap: var(--kp-space-6); padding: 18px 22px; background: var(--kp-white); border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-lg); }
.kp-step-card:has(+ .kp-step.active) { display: none; }
.kp-step-card__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.kp-step-card__title { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; line-height: 20px; font-weight: 700; color: var(--kp-ink); }
.kp-step-card--done .kp-step-card__title .kp-i { color: var(--kp-success); }
.kp-step-card__text { margin: 0; font-size: 14px; line-height: 20px; color: var(--kp-ink-60); overflow-wrap: anywhere; }
.kp-step-card__edit { flex: none; min-height: var(--kp-control-md); padding: 0 8px; border: 0; border-radius: var(--kp-radius-sm); background: none; font: 600 14px/20px var(--kp-font-sans); color: var(--kp-blue); cursor: pointer; }
.kp-step-card__edit:hover { color: var(--kp-blue-dark); background: var(--kp-blue-light); }
.kp-step-card--todo { color: var(--kp-ink-40); }
.kp-step-card--todo .kp-step-card__title { color: inherit; }

.kp-checkout__steps > .kp-step.active { display: flex; flex-direction: column; gap: var(--kp-space-4); padding: 20px var(--kp-space-4); background: var(--kp-white); border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-lg); }
.kp-step__title { margin: 0; font-size: 22px; line-height: 28px; font-weight: 800; letter-spacing: -0.02em; color: var(--kp-ink); }
.kp-step__content { display: flex; flex-direction: column; gap: var(--kp-space-4); min-width: 0; }
.kp-step__content form { display: flex; flex-direction: column; gap: var(--kp-space-4); }
/* Conteneurs de hooks transporteur souvent vides : pas d'espace fantôme. */
#delivery-options__hook,
#hook-display-after-carrier,
#extra_carrier { display: contents; }
.kp-step__intro,
.kp-step__account p { margin: 0; font-size: 14px; line-height: 20px; color: var(--kp-ink-60); }
.kp-step__subtitle { margin: 8px 0 0; font-size: 17px; line-height: 24px; font-weight: 700; color: var(--kp-ink); }
.kp-step__links { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; }
.kp-step__actions { display: flex; flex-direction: column-reverse; gap: 12px; padding-top: 4px; }
.kp-step__actions .kp-btn--primary { width: 100%; }
.kp-step__actions .kp-link { align-self: center; font-size: 14px; }
.kp-step__note { font-size: 13px; line-height: 18px; color: var(--kp-ink-60); }
.kp-step__note:empty { display: none; }
@media (min-width: 768px) {
  .kp-checkout__steps > .kp-step.active { padding: var(--kp-space-6); border: 2px solid var(--kp-ink); }
  .kp-step__actions { flex-direction: row; justify-content: space-between; align-items: center; }
  .kp-step__actions--end { justify-content: flex-end; }
  .kp-step__actions .kp-btn--primary { width: auto; min-width: 300px; }
}
/* Étape Paiement : les trois étapes terminées côte à côte (maquette) */
@media (min-width: 992px) {
  .kp-checkout__steps:has(> #checkout-payment-step.active) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .kp-checkout__steps:has(> #checkout-payment-step.active) > :not(.kp-step-card) { grid-column: 1 / -1; }
  .kp-checkout__steps:has(> #checkout-payment-step.active) > .kp-step-card { flex-direction: column; align-items: stretch; gap: 4px; padding: 16px 18px; border-radius: var(--kp-radius-md); }
  .kp-checkout__steps:has(> #checkout-payment-step.active) .kp-step-card__edit { align-self: flex-start; min-height: 0; margin: 4px 0 0 -8px; }
}

/* ─── Tunnel : coordonnées et formulaires ────────────────── */
.kp-segmented { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 4px; background: var(--kp-ink-05); border-radius: var(--kp-radius-sm); }
.kp-segmented__btn { min-height: 40px; border: 0; border-radius: 6px; background: none; font: 600 14px/18px var(--kp-font-sans); color: var(--kp-ink-60); cursor: pointer; }
.kp-segmented__btn.active { background: var(--kp-white); box-shadow: var(--kp-shadow-sm); font-weight: 700; color: var(--kp-ink); }
#personal-information-tabs-content { margin-top: 0; }
.kp-checkout .kp-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--kp-space-4) 12px; }
.kp-checkout .kp-form-grid > .kp-field--full,
.kp-checkout .kp-form-grid > :not(.kp-field) { grid-column: 1 / -1; }
.kp-field__radios { display: flex; flex-wrap: wrap; gap: 4px var(--kp-space-4); }
.kp-check a { color: var(--kp-blue); }
.was-validated .kp-input:invalid { border-color: var(--kp-danger); box-shadow: inset 0 0 0 1px var(--kp-danger); }
/* Champs gardés au rendu natif (mot de passe, date) : alignés sur kp-input */
.kp-field--native .mb-3 { margin-bottom: 0; }
.kp-field--native .form-label { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--kp-ink); }
.kp-field--native .form-control,
.kp-field--native .form-select { min-height: var(--kp-control-md); border-color: var(--kp-ink-30); border-radius: var(--kp-radius-sm); font-size: 16px; }
@media (min-width: 576px) {
  .kp-field--native .form-control,
  .kp-field--native .form-select { font-size: 15px; }
}

/* Choix à une colonne de texte (adresse, réception du devis) */
.kp-choice--plain { grid-template-columns: 20px minmax(0, 1fr); }
.kp-choice__title,
.kp-choice__desc { display: block; }
.kp-addresses { display: grid; gap: 10px; }
.kp-address__actions { display: flex; gap: var(--kp-space-4); padding: 6px var(--kp-space-4) 0; font-size: 14px; }
.kp-address__delete { color: var(--kp-ink-60); }
.kp-choice address { font-style: normal; }

/* Livraison et paiement */
.kp-delivery__option,
.kp-payment__option { display: grid; gap: 8px; }
.kp-delivery__extra:not([data-active]),
.kp-delivery__extra:empty { display: none; }
.kp-payment__info { padding: 12px var(--kp-space-4); background: var(--kp-ink-02); border-radius: var(--kp-radius-md); font-size: 13px; line-height: 18px; color: var(--kp-ink-80); }
.kp-payment__info > :last-child,
.kp-payment__info p:last-child { margin-bottom: 0; }
.kp-conditions { padding-top: 4px; }
.kp-conditions .kp-check { grid-template-columns: 20px minmax(0, 1fr); }

/* Récapitulatif « Votre commande » */
.kp-checkout-summary__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.kp-checkout-summary__head .kp-link { font-size: 14px; }
.kp-checkout-summary__lines { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; font-size: 13px; line-height: 18px; }
.kp-checkout-summary__line { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.kp-checkout-summary__thumb { display: grid; place-items: center; width: 44px; height: 44px; overflow: hidden; border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-sm); background: var(--kp-white); }
.kp-checkout-summary__thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.kp-checkout-summary__name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--kp-ink-80); }
.kp-checkout-summary__qty { color: var(--kp-ink-40); }
.kp-checkout-summary__amount { font-weight: 700; color: var(--kp-ink); white-space: nowrap; }
.kp-checkout-summary .kp-summary__rows { padding-top: 14px; border-top: 1px solid var(--kp-ink-10); }

/* ─── Devis : demande (quickquote) et page publique (view) ── */
.kp-quote > .kp-alert { margin-top: var(--kp-space-4); }
.kp-quote__head { display: flex; flex-direction: column; gap: 6px; padding-top: 20px; }
.kp-quote__title { margin: 0; font-size: 26px; line-height: 32px; font-weight: 800; letter-spacing: -0.03em; color: var(--kp-ink); }
.kp-quote__ref { font-size: 0.7em; letter-spacing: 0; color: var(--kp-ink-60); }
.kp-quote__lead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-size: 15px; line-height: 22px; color: var(--kp-ink-60); }
.kp-quote__grid { display: grid; gap: var(--kp-space-4); margin-top: var(--kp-space-4); align-items: start; }
.kp-quote__need { margin: 0; font-size: 14px; line-height: 20px; color: var(--kp-ink-80); }
.kp-quote__summary { padding: var(--kp-space-4); }
.kp-quote__summary-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.kp-quote__summary-head .kp-link { font-size: 14px; }
.kp-quote-lines { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.kp-quote-lines__item { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; align-items: center; }
.kp-quote-lines__thumb { display: grid; place-items: center; width: 44px; height: 44px; overflow: hidden; border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-sm); background: var(--kp-white); }
.kp-quote-lines__thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.kp-quote-lines__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.kp-quote-lines__name { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--kp-ink); }
.kp-quote-lines__meta { display: flex; justify-content: space-between; gap: 12px; }
.kp-quote-lines__qty { font-size: 14px; font-weight: 800; color: var(--kp-ink); }
.kp-quote-lines__price { font-size: 14px; font-weight: 700; color: var(--kp-ink); white-space: nowrap; }
.kp-quote__form { display: flex; flex-direction: column; gap: var(--kp-space-4); padding: 20px var(--kp-space-4); background: var(--kp-white); border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-lg); min-width: 0; }
.kp-quote__fieldset { display: flex; flex-direction: column; gap: 12px; min-width: 0; margin: 0; padding: 0; border: 0; }
.kp-quote__fieldset + .kp-quote__fieldset { padding-top: var(--kp-space-4); border-top: 1px solid var(--kp-ink-10); }
.kp-quote__legend { float: left; width: 100%; margin: 0 0 4px; padding: 0; font-size: 18px; line-height: 24px; font-weight: 700; color: var(--kp-ink); }
.kp-quote__legend small { font-size: 14px; }
.kp-quote__legend + * { clear: both; }
.kp-quote__choices { display: grid; gap: 10px; }
@media (max-width: 575.98px) {
  /* Prénom et nom côte à côte sur mobile (maquette DevisMobile), le reste en pleine largeur. */
  .kp-quote .kp-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--kp-space-4) 12px; }
  .kp-quote .kp-form-grid > .kp-field:not(.kp-field--half) { grid-column: 1 / -1; }
}
.kp-quote__qty { max-width: 140px; }
.kp-quote__submit { display: flex; flex-direction: column-reverse; gap: 10px; }
.kp-quote__submit .kp-btn { width: 100%; }
.kp-quote__note { margin: 0; font-size: 13px; line-height: 19px; color: var(--kp-ink-60); text-align: center; }
.kp-quote-how { display: flex; flex-direction: column; gap: 14px; padding: 20px; background: var(--kp-white); border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-lg); }
.kp-quote-how h2 { margin: 0; font-size: 17px; line-height: 24px; font-weight: 700; color: var(--kp-ink); }
.kp-quote-how__steps { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.kp-quote-how__steps li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; font-size: 13px; line-height: 19px; color: var(--kp-ink-60); }
.kp-quote-how__steps strong { display: block; font-size: 14px; line-height: 20px; font-weight: 700; color: var(--kp-ink); }
.kp-quote-how__num { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--kp-ink); color: var(--kp-white); font-size: 13px; font-weight: 800; }
.kp-quote-how__phone { margin: 0; padding-top: 12px; border-top: 1px solid var(--kp-ink-10); font-size: 14px; line-height: 20px; color: var(--kp-ink-80); }
.kp-quote-how__phone a { color: var(--kp-ink); font-weight: 700; text-decoration: none; }

/* Page publique du devis */
.kp-quote-view__main,
.kp-quote-view__aside { display: flex; flex-direction: column; gap: var(--kp-space-4); min-width: 0; }
.kp-quote-panel { display: flex; flex-direction: column; gap: 12px; padding: 20px var(--kp-space-4); background: var(--kp-white); border: 1px solid var(--kp-ink-10); border-radius: var(--kp-radius-lg); }
.kp-quote-panel__title { margin: 0; font-size: 17px; line-height: 24px; font-weight: 700; color: var(--kp-ink); }
.kp-quote-table__wrap { overflow-x: auto; }
.kp-quote-table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 20px; }
.kp-quote-table th,
.kp-quote-table td { padding: 10px 8px; border-bottom: 1px solid var(--kp-ink-10); text-align: left; vertical-align: top; }
.kp-quote-table thead th { font-size: 13px; font-weight: 600; color: var(--kp-ink-60); }
.kp-quote-table tfoot th { font-weight: 600; text-align: right; color: var(--kp-ink-80); }
.kp-quote-table__num { text-align: right !important; white-space: nowrap; }
.kp-quote-table__name { display: block; font-weight: 600; color: var(--kp-ink); }
.kp-quote-table__total th,
.kp-quote-table__total td { border-bottom: 0; font-weight: 800; color: var(--kp-ink); }
.kp-quote-decision { display: grid; gap: var(--kp-space-6); }
.kp-quote-decision__form { display: flex; flex-direction: column; gap: 12px; }
.kp-quote-decision__title { margin: 0; font-size: 15px; line-height: 20px; font-weight: 700; color: var(--kp-ink); }
.kp-quote-decision .kp-check { grid-template-columns: 20px minmax(0, 1fr); }
.kp-quote-thread { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.kp-quote-thread__item { padding-bottom: 12px; border-bottom: 1px solid var(--kp-ink-10); }
.kp-quote-thread__meta { display: flex; justify-content: space-between; gap: 12px; margin: 0; font-size: 13px; color: var(--kp-ink-60); }
.kp-quote-thread__meta strong { color: var(--kp-ink); }
/* Sauts de ligne du commentaire conservés sans nl2br : le front échappe la sortie, un <br /> y deviendrait du texte. */
.kp-quote-thread__text { margin: 4px 0 0; font-size: 14px; line-height: 20px; white-space: pre-line; }
.kp-quote-thread__form { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.kp-quote-thread__form .kp-field { width: 100%; }
.kp-quote-client { margin: 0; font-size: 14px; line-height: 21px; overflow-wrap: anywhere; }
.kp-quote-activity { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: 13px; line-height: 18px; }

@media (min-width: 576px) {
  .kp-quote__choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  .kp-quote__title { font-size: 32px; line-height: 38px; }
  .kp-quote__lead { font-size: 16px; line-height: 24px; }
  .kp-quote__form { gap: 28px; padding: 28px; }
  .kp-quote__fieldset + .kp-quote__fieldset { padding-top: var(--kp-space-6); }
  .kp-quote__submit { flex-direction: row; justify-content: space-between; align-items: center; gap: 20px; }
  .kp-quote__submit .kp-btn { width: auto; min-width: 320px; }
  .kp-quote__note { max-width: 380px; text-align: left; }
  .kp-quote-panel { padding: 20px; }
  .kp-quote-decision { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  .kp-quote__grid { grid-template-columns: minmax(0, 1fr) 460px; grid-template-rows: auto 1fr; gap: var(--kp-space-4) 40px; margin-top: var(--kp-space-6); }
  .kp-quote__form { grid-column: 1; grid-row: 1 / span 2; }
  .kp-quote__summary { grid-column: 2; grid-row: 1; padding: var(--kp-space-5); }
  .kp-quote-how { grid-column: 2; grid-row: 2; }
  .kp-quote-lines__item { grid-template-columns: 52px minmax(0, 1fr); }
  .kp-quote-lines__thumb { width: 52px; height: 52px; }
  .kp-quote-lines__name { font-size: 14px; line-height: 19px; }
  .kp-quote-view .kp-quote__grid { grid-template-columns: minmax(0, 1fr) 400px; grid-template-rows: auto; }
}
