/*
 * Boutique (lnkboot.fr/boutique) et espace client : panier, commande,
 * licences. Variables Bootstrap (--bs-*) seulement, pour le mode sombre du
 * site ; propriétés logiques pour l'arabe. Même langage visuel que le
 * catalogue addons.lnkboot.fr.
 *
 * Le site donne 7,5 rem de padding à tout <section> (_reboot.scss) : chaque
 * section de la boutique fixe le sien.
 */

.shop-page {
    padding-block: 3rem 5rem;
}

.shop-page__head {
    margin-block-end: 2rem;
}

.shop-page__title {
    margin: 0;
    font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.shop-page__subtitle {
    margin: 0.5rem 0 0;
    color: var(--bs-secondary-color);
}

.shop-alert {
    display: flex;
    gap: 0.75rem;
    margin-block-end: 1.5rem;
    padding: 1rem 1.25rem;
    border-radius: 0.75rem;
    background: var(--bs-tertiary-bg);
}

.shop-alert[hidden] {
    display: none;
}

.shop-alert--success {
    background: var(--bs-success-bg-subtle);
    color: var(--bs-success-text-emphasis);
}

.shop-alert--warning {
    background: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

/* Panier : lignes à gauche, récapitulatif à droite */

.shop-cart {
    display: grid;
    gap: 2rem;
    align-items: start;
}

@media (min-width: 992px) {
    .shop-cart {
        grid-template-columns: minmax(0, 1fr) 22rem;
        gap: 3rem;
    }

    .shop-summary {
        position: sticky;
        inset-block-start: 6rem;
    }
}

.shop-lines {
    margin: 0;
    padding: 0;
    list-style: none;
    border-block-start: 1px solid var(--bs-border-color);
}

.shop-line {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.5rem 1rem;
    align-items: center;
    padding-block: 1.25rem;
    border-block-end: 1px solid var(--bs-border-color);
}

.shop-line__icon {
    grid-row: span 2;
    border-radius: 0.75rem;
}

.shop-line__name {
    font-weight: 700;
    color: var(--bs-heading-color);
    text-decoration: none;
}

.shop-line__name:hover {
    color: var(--bs-primary);
}

.shop-line__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.875rem;
    color: var(--bs-secondary-color);
}

.shop-line__price {
    text-align: end;
    white-space: nowrap;
}

.shop-line__price strong {
    display: block;
    font-size: 1.125rem;
    color: var(--bs-heading-color);
}

.shop-line__price small,
.shop-line__price span {
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
}

.shop-line__remove {
    grid-column: 3;
    justify-self: end;
    padding: 0;
    border: 0;
    background: none;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    text-decoration: underline;
}

.shop-line__remove:hover {
    color: var(--bs-danger);
}

.shop-note {
    margin-block-start: 1rem;
    font-size: 0.875rem;
    color: var(--bs-secondary-color);
}

.shop-summary {
    padding: 1.5rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    background: var(--bs-tertiary-bg);
}

.shop-summary__title {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    font-weight: 700;
}

.shop-summary__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
}

.shop-summary__total {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--bs-heading-color);
}

.shop-summary__tax {
    margin: 0.5rem 0 1.25rem;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.shop-summary .form-check {
    margin-block-end: 0.75rem;
    font-size: 0.875rem;
}

.shop-summary__cta {
    display: flex;
    justify-content: center;
    inline-size: 100%;
    margin-block-start: 0.5rem;
}

.shop-summary__closed {
    padding: 1rem;
    border-radius: 0.75rem;
    background: var(--bs-body-bg);
    font-size: 0.9375rem;
}

.shop-summary__closed a {
    font-weight: 600;
}

.shop-summary__guest {
    display: grid;
    gap: 0.5rem;
}

.shop-summary__guest p {
    margin: 0 0 0.25rem;
    font-size: 0.9375rem;
}

.shop-continue {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-block-start: 1.5rem;
    font-weight: 600;
    color: var(--bs-primary);
    text-decoration: none;
}

[dir="rtl"] .shop-continue .bi-arrow-left {
    transform: scaleX(-1);
}

/* États vides et pages de fin (merci, annulation) */

.shop-state {
    max-inline-size: 36rem;
    margin-inline: auto;
    padding-block: 2rem;
    text-align: center;
}

.shop-state__icon {
    display: inline-grid;
    place-items: center;
    inline-size: 4rem;
    block-size: 4rem;
    margin-block-end: 1.25rem;
    border-radius: 50%;
    background: var(--bs-tertiary-bg);
    font-size: 1.75rem;
    color: var(--bs-secondary-color);
}

.shop-state__icon--success {
    background: var(--bs-success-bg-subtle);
    color: var(--bs-success);
}

.shop-state__icon--warning {
    background: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

.shop-state__title {
    margin: 0 0 0.5rem;
    font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
    font-weight: 700;
}

.shop-state__text {
    color: var(--bs-secondary-color);
}

.shop-state__ref {
    display: inline-block;
    margin-block-end: 1rem;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: var(--bs-tertiary-bg);
    font-size: 0.875rem;
    font-weight: 600;
}

.shop-state__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin-block-start: 1.5rem;
}

/* CGV */

.shop-terms {
    max-inline-size: 48rem;
    line-height: 1.7;
}

.shop-terms h2 {
    margin-block: 2.5rem 0.75rem;
    font-size: 1.375rem;
    font-weight: 700;
}

.shop-terms h3 {
    margin-block: 1.75rem 0.5rem;
    font-size: 1.125rem;
    font-weight: 700;
}

/* Espace client : commandes et licences */

.client-status {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    background: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
}

.client-status--paid,
.client-status--active {
    background: var(--bs-success-bg-subtle);
    color: var(--bs-success-text-emphasis);
}

.client-status--pending {
    background: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

.client-status--refunded,
.client-status--revoked {
    background: var(--bs-danger-bg-subtle);
    color: var(--bs-danger-text-emphasis);
}

.client-orders__items {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.client-license {
    padding: 1.5rem;
}

.client-license__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-block-end: 1.25rem;
}

.client-license__icon {
    border-radius: 0.75rem;
}

.client-license__name {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
}

.client-license__meta {
    font-size: 0.875rem;
    color: var(--bs-secondary-color);
}

.client-license__grid {
    display: grid;
    gap: 1.25rem;
}

@media (min-width: 768px) {
    .client-license__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.client-license__label {
    margin: 0 0 0.35rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.client-license__key {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.client-license__key code {
    flex: 1;
    min-inline-size: 0;
    padding: 0.5rem 0.75rem;
    overflow: hidden;
    border-radius: 0.5rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-heading-color);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.client-license__updates {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.client-license__updates.is-expired {
    color: var(--bs-warning-text-emphasis);
}

.client-license__downloads {
    margin: 0;
    padding: 0;
    list-style: none;
}

.client-license__downloads li + li {
    border-block-start: 1px solid var(--bs-border-color);
}

.client-license__downloads a {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-block: 0.6rem;
    font-weight: 600;
    text-decoration: none;
}

.client-license__downloads small {
    margin-inline-start: auto;
    font-weight: 400;
    color: var(--bs-secondary-color);
}

.client-license__section + .client-license__section {
    margin-block-start: 1.25rem;
    padding-block-start: 1.25rem;
    border-block-start: 1px solid var(--bs-border-color);
}

/* Connexion, inscription et vérification sur addons */

.shop-auth {
    max-inline-size: 28rem;
    margin-inline: auto;
    padding: 2rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.06);
}

.shop-auth__title {
    margin: 0 0 0.5rem;
    font-size: 1.625rem;
    font-weight: 700;
}

.shop-auth__lead {
    margin-block-end: 1.5rem;
    font-size: 0.875rem;
    color: var(--bs-secondary-color);
}

.shop-auth__submit {
    display: flex;
    justify-content: center;
    inline-size: 100%;
    margin-block-start: 0.5rem;
}

.shop-auth__links {
    margin-block-start: 1.5rem;
    padding-block-start: 1.25rem;
    border-block-start: 1px solid var(--bs-border-color);
    font-size: 0.875rem;
}

.shop-auth__links p {
    margin-block-end: 0.35rem;
}

.shop-auth__links a {
    font-weight: 600;
}

.shop-auth__social,
.shop-auth__social a {
    font-weight: 400 !important;
    color: var(--bs-secondary-color);
}

/* Espace client sur addons : profil et navigation à gauche, contenu à droite */

.addons-account {
    padding-block: 3rem 5rem;
}

.addons-account__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

@media (min-width: 992px) {
    .addons-account__layout {
        grid-template-columns: 16rem minmax(0, 1fr);
        gap: 3rem;
    }

    .addons-account__side {
        position: sticky;
        inset-block-start: 6rem;
    }
}

.addons-account__side {
    padding: 1.25rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    background: var(--bs-body-bg);
}

.addons-account__profile {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-block-end: 1rem;
    border-block-end: 1px solid var(--bs-border-color);
}

.addons-account__avatar {
    display: grid;
    flex-shrink: 0;
    place-items: center;
    inline-size: 48px;
    block-size: 48px;
    overflow: hidden;
    border-radius: 50%;
    background: color-mix(in srgb, var(--bs-primary) 14%, transparent);
    color: var(--bs-primary);
    font-weight: 700;
}

.addons-account__avatar img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.addons-account__identity {
    min-inline-size: 0;
}

.addons-account__name {
    margin: 0;
    font-weight: 700;
    color: var(--bs-heading-color);
}

.addons-account__email {
    margin: 0;
    overflow: hidden;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.addons-account__nav {
    display: flex;
    flex-direction: column;
    margin-block: 0.75rem;
}

.addons-account__link {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.75rem;
    border-inline-start: 2px solid transparent;
    border-radius: 0 0.5rem 0.5rem 0;
    color: var(--bs-body-color);
    font-weight: 500;
    text-decoration: none;
}

[dir="rtl"] .addons-account__link {
    border-radius: 0.5rem 0 0 0.5rem;
}

.addons-account__link:hover {
    background: var(--bs-tertiary-bg);
    color: var(--bs-heading-color);
}

.addons-account__link.is-active {
    border-inline-start-color: var(--bs-primary);
    background: var(--bs-tertiary-bg);
    color: var(--bs-heading-color);
    font-weight: 600;
}

.addons-account__logout {
    padding-block-start: 0.75rem;
    border-block-start: 1px solid var(--bs-border-color);
}

.addons-account__logout button {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.4rem 0.75rem;
    border: 0;
    background: none;
    color: var(--bs-danger);
    font-weight: 500;
}

@media (max-width: 991.98px) {
    .addons-account__side {
        padding: 1rem;
    }

    .addons-account__nav {
        flex-direction: row;
        gap: 0.25rem;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .addons-account__link {
        flex-shrink: 0;
        border-inline-start: 0;
        border-block-end: 2px solid transparent;
        border-radius: 0.5rem 0.5rem 0 0;
    }

    .addons-account__link.is-active {
        border-block-end-color: var(--bs-primary);
    }
}

/* Bouton du compte dans la navbar : chevron discret qui pivote à l'ouverture */
.addons-account-toggle__chevron {
    margin-inline-start: 0.35rem;
    font-size: 0.7rem;
}

.addons-account-toggle[aria-expanded="true"] .addons-account-toggle__chevron {
    transform: rotate(180deg);
}

/* Espace client sur addons : en-tête de page, tableau de bord, panneaux.
   Écran de travail : aucune carte ne bouge au survol, aucun contenu centré. */

.addons-account .card-lnk,
.addons-account .card-lnk:hover {
    transform: none;
    box-shadow: none;
    transition: border-color 0.15s ease;
}

.addons-account .card-lnk:hover {
    border-color: var(--bs-border-color);
}

.addons-account__head {
    margin-block-end: 1.75rem;
}

.addons-account__title {
    margin: 0;
    font-size: 1.625rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--bs-heading-color);
}

.addons-account__lead {
    margin: 0.35rem 0 0;
    color: var(--bs-secondary-color);
}

.account-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 1rem;
    margin-block-end: 1.5rem;
}

.account-stat {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 0.875rem;
    align-items: center;
    padding: 1.125rem 1.25rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.875rem;
    background: var(--bs-body-bg);
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease;
}

.account-stat:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 45%, var(--bs-border-color));
    color: inherit;
}

.account-stat__icon {
    display: grid;
    grid-row: span 2;
    place-items: center;
    inline-size: 2.5rem;
    block-size: 2.5rem;
    border-radius: 0.625rem;
    background: color-mix(in srgb, var(--bs-primary) 10%, transparent);
    color: var(--bs-primary);
    font-size: 1.125rem;
}

.account-stat__value {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--bs-heading-color);
    font-variant-numeric: tabular-nums;
}

.account-stat__label {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.account-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
}

@media (min-width: 1200px) {
    .account-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.account-panel {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.875rem;
    background: var(--bs-body-bg);
}

.account-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-block-end: 1px solid var(--bs-border-color);
}

.account-panel__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bs-heading-color);
}

.account-panel__more {
    font-size: 0.8125rem;
    font-weight: 500;
    text-decoration: none;
}

.account-panel__empty {
    margin: 0;
    padding: 1.25rem;
    font-size: 0.875rem;
    color: var(--bs-secondary-color);
}

.account-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.875rem 1.25rem;
    color: inherit;
    text-decoration: none;
}

.account-row + .account-row {
    border-block-start: 1px solid var(--bs-border-color);
}

.account-row:hover {
    background: var(--bs-tertiary-bg);
    color: inherit;
}

.account-panel > .account-row:last-child {
    border-end-start-radius: 0.875rem;
    border-end-end-radius: 0.875rem;
}

.account-row__main {
    display: flex;
    flex-direction: column;
    min-inline-size: 0;
}

.account-row__title {
    overflow: hidden;
    font-weight: 600;
    color: var(--bs-heading-color);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-row__meta {
    overflow: hidden;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-row > .client-status,
.account-row > .status-badge {
    flex-shrink: 0;
}

.account-empty {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.5rem;
}

.account-empty__icon {
    display: grid;
    flex-shrink: 0;
    place-items: center;
    inline-size: 2.75rem;
    block-size: 2.75rem;
    border-radius: 0.75rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: 1.25rem;
}

.account-empty__title {
    margin: 0 0 0.25rem;
    font-weight: 600;
    color: var(--bs-heading-color);
}

.account-empty__text {
    margin: 0 0 1rem;
    color: var(--bs-secondary-color);
}

/* Titres des cartes de formulaire (profil, mot de passe) au niveau des panneaux */
.addons-account .card-lnk h5 {
    font-size: 1.0625rem;
    font-weight: 600;
}

.addons-account .client-license__grid {
    margin-block-end: 1.25rem;
}

/* Titre de demande tronqué : la vue emploie min-w-0, classe absente de Bootstrap 5 */
.addons-account .ticket-card .min-w-0 {
    min-width: 0;
}

/* Téléchargement et lien vers les nouveautés de la version, sur une ligne */
.client-license__downloads li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 1rem;
}

.client-license__downloads li > a:first-child {
    flex: 1 1 16rem;
}

.client-license__downloads a.client-license__notes {
    padding-block: 0;
    font-size: 0.8125rem;
    font-weight: 500;
}

/* Renouvellement des mises à jour : récapitulatif avant paiement */
.renewal {
    padding: 1.5rem;
}

.renewal__product {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding-block-end: 1rem;
    border-block-end: 1px solid var(--bs-border-color);
}

.renewal__name {
    margin: 0;
    font-weight: 700;
    color: var(--bs-heading-color);
}

.renewal__meta {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.renewal__facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 1rem;
    margin: 1.25rem 0;
}

.renewal__facts dt {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.renewal__facts dd {
    margin: 0.2rem 0 0;
}

.renewal__vat {
    display: block;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.renewal__note {
    font-size: 0.875rem;
    color: var(--bs-secondary-color);
}

.renewal__form .form-check {
    margin-block-end: 0.5rem;
}

.renewal__form .btn {
    margin-block-start: 0.75rem;
}

.client-license__renew {
    margin-block-start: 0.75rem;
}

.client-license__seen {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

/* Formulaire d'avis : étoiles cliquables en CSS seul (radios en ordre inverse) */
.review-form {
    padding: 1.5rem;
}

.review-form__rating {
    margin-block-end: 1.25rem;
}

.review-form__rating legend {
    margin-block-end: 0.35rem;
    font-size: 1rem;
    font-weight: 600;
}

.review-stars {
    display: inline-flex;
    flex-direction: row-reverse;
    gap: 0.15rem;
}

[dir="rtl"] .review-stars {
    flex-direction: row;
}

.review-stars input {
    position: absolute;
    opacity: 0;
}

.review-stars label {
    font-size: 1.75rem;
    line-height: 1;
    color: var(--bs-border-color);
    cursor: pointer;
}

.review-stars label:hover,
.review-stars label:hover ~ label,
.review-stars input:checked ~ label {
    color: #d99a00;
}

.review-stars input:focus-visible + label {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.client-license__review {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-block-start: 0.75rem;
    margin-inline-end: 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
}

.renewal__was {
    margin-inline-start: 0.35rem;
    font-size: 0.875rem;
    color: var(--bs-secondary-color);
}

.renewal__loyalty {
    padding-block: 0.75rem;
    border-block: 1px solid var(--bs-border-color);
    font-size: 0.875rem;
    color: var(--bs-secondary-color);
}

.renewal__loyalty strong {
    color: var(--bs-success-text-emphasis);
}

.renewal__rule {
    display: block;
    margin-block-start: 0.35rem;
    font-size: 0.8125rem;
}

/* ==========================================================================
   Page de commande : étapes numérotées à gauche, récapitulatif à droite
   ========================================================================== */

.checkout {
    padding-block: 2rem 5rem;
}

.checkout__back {
    font-size: 0.875rem;
    text-decoration: none;
}

.checkout__title {
    margin-block: 0.75rem 2rem;
    font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
}

.checkout__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
}

@media (min-width: 992px) {
    .checkout__layout {
        grid-template-columns: minmax(0, 1fr) 24rem;
        gap: 4rem;
    }

    .checkout__summary {
        position: sticky;
        inset-block-start: 6rem;
    }
}

.checkout__section {
    padding-block: 1.5rem;
    border-block-start: 1px solid var(--bs-border-color);
}

.checkout__form > .checkout__section:first-of-type {
    padding-block-start: 0;
    border-block-start: 0;
}

.checkout__heading {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-block-end: 1rem;
    font-size: 1.125rem;
    font-weight: 700;
}

.checkout__step {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--bs-secondary-color);
    font-variant-numeric: tabular-nums;
}

.checkout__account {
    margin: 0 0 0.25rem;
}

.checkout__hint {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.checkout__form .form-check {
    margin-block-end: 0.5rem;
}

/* Entreprise cliente (vente aux professionnels, CGV 5.4) */
.business-fields {
    display: grid;
    gap: 0.75rem 1rem;
    margin-block-end: 1rem;
}

@media (min-width: 576px) {
    .business-fields {
        grid-template-columns: 1fr 1fr;
    }

    .business-fields__wide {
        grid-column: 1 / -1;
    }
}

.business-fields .form-text {
    font-size: 0.75rem;
}

.checkout__pay {
    margin-block-start: 1rem;
    padding-inline: 1.5rem;
}

.pay-methods {
    margin: 0;
    padding: 0;
    border: 0;
}

.pay-method {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.875rem;
    padding: 0.875rem 0;
    border-block-start: 1px solid var(--bs-border-color);
    cursor: pointer;
}

.pay-method:last-of-type {
    border-block-end: 1px solid var(--bs-border-color);
}

.pay-method input {
    inline-size: 1.1rem;
    block-size: 1.1rem;
    accent-color: var(--bs-emphasis-color);
}

.pay-method__body {
    display: flex;
    flex-direction: column;
}

.pay-method__name {
    font-weight: 700;
    color: var(--bs-heading-color);
}

.pay-method__detail {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.pay-method__mark {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--bs-secondary-color);
    white-space: nowrap;
}

.pay-method:has(input:checked) .pay-method__mark {
    color: var(--bs-heading-color);
}

.checkout__summary-title {
    margin-block-end: 1rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.checkout__lines {
    margin: 0;
    padding: 0;
    list-style: none;
}

.checkout__lines li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-block: 0.75rem;
    border-block-start: 1px solid var(--bs-border-color);
}

.checkout__line-name {
    font-weight: 600;
    color: var(--bs-heading-color);
}

.checkout__line-name small {
    display: block;
    font-weight: 400;
    color: var(--bs-secondary-color);
}

.checkout__line-price {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.checkout__totals {
    margin: 0;
    border-block: 1px solid var(--bs-border-color);
}

.checkout__totals > div {
    display: flex;
    justify-content: space-between;
    padding-block: 0.6rem;
}

.checkout__totals > div + div {
    border-block-start: 1px solid var(--bs-border-color);
}

.checkout__totals dt {
    font-weight: 600;
}

.checkout__totals dd {
    margin: 0;
    font-variant-numeric: tabular-nums;
}

.checkout__assurances {
    margin: 1.25rem 0 0;
    padding: 0;
    list-style: none;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.checkout__assurances li {
    padding-block: 0.3rem;
}

/* Détail d'une commande (espace client) */
.order-detail {
    padding: 1.5rem;
}

.order-detail__facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 1rem;
    margin: 0 0 1.25rem;
}

.order-detail__facts dt {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.order-detail__facts dd {
    margin: 0.2rem 0 0;
}

.order-detail__lines {
    margin: 0;
    padding: 0;
    list-style: none;
}

.order-detail__lines li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    padding-block: 0.875rem;
    border-block-start: 1px solid var(--bs-border-color);
}

.order-detail__name {
    margin: 0;
    font-weight: 600;
    color: var(--bs-heading-color);
}

.order-detail__name span {
    font-weight: 400;
    color: var(--bs-secondary-color);
}

.order-detail__meta {
    margin: 0.15rem 0 0;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.order-detail__price {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.order-detail__totals {
    margin: 0 0 1.25rem;
    border-block: 1px solid var(--bs-border-color);
}

.order-detail__totals > div {
    display: flex;
    justify-content: space-between;
    padding-block: 0.5rem;
}

.order-detail__totals dd {
    margin: 0;
    font-variant-numeric: tabular-nums;
}

.order-detail__totals .is-total {
    border-block-start: 1px solid var(--bs-border-color);
    font-weight: 700;
    color: var(--bs-heading-color);
}

.order-detail__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.client-license__branch {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--bs-secondary-color);
}

