/* doc-project | projet/assets/css/product-configurator-v2/base.css | Styles scopes du configurateur V2, modale avec fermeture superposee hors flux, bloc stepper prix sticky, panneau prix portail nu repliable avec ligne finale Total configuration en cours, animation panier vers pcv2-price, etat validation epure masquant le header le stepper et le recapitulatif prix superieur en conservant seulement le bouton Reinitialiser mon devis, cartes de choix contenues avec retour ligne force des textes longs sans chevauchement responsive, champs avec suffixe visuel cm reutilisable, recapitulatif premium unifie de fin d etape avec eyebrow centre sur les deux definitions pcv2-summary__eyebrow, accessibilite et navigation sans effet de bord legacy. | Expose: pcv2-modal, pcv2-stepper, pcv2-price, pcv2-sticky-stack, pcv2-choice-card, pcv2-summary, pcv2-summary-line, pcv2-summary__eyebrow, pcv2-unit-field, pcv2-unit-field__suffix, pcv2-price-current-total, pcv2-price-fly-item | Dépend de: media-frame.css | Impacte: affichage configurateur V2, maintien visible du stepper hors validation, affichage prioritaire du prix portail nu hors validation, feedback visuel panier, total configuration visible en bas du detail prix, etape Validation epuree avec uniquement le bouton de reinitialisation dans le bloc superieur, lisibilite premium homogene des recapitulatif de chaque etape, centrage systematique des titres courts de recapitulatif comme Controle des cotes meme avec la regle pcv2-summary__eyebrow de base, affichage cm purement visuel sur les champs de dimensions, confinement et retour a la ligne des textes longs dans les cards selectionnables, masquage par defaut du detail prix, positionnement de la fermeture et verrouillage du scroll body | Tables: aucune */
.pcv2-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
}

.pcv2-modal[hidden],.pcv2-step[hidden],.pcv2-fieldset[hidden],.pcv2-field[hidden],.pcv2-info[hidden],.pcv2-error[hidden],.pcv2-nav__help[hidden],.pcv2-price__notice[hidden] {
    display: none!important
}

.pcv2-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: clamp(10px,2vw,28px)
}

.pcv2-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20,14,10,.62);
    backdrop-filter: blur(4px)
}

.pcv2-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(1180px,100%);
    max-height: min(92vh,980px);
    overflow: auto;
    border-radius: 28px;
    background: #fffaf4;
    box-shadow: 0 30px 90px rgba(20,14,10,.32);
    outline: 0
}

.pcv2-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 10;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: #3f2a1c;
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer
}

.pcv2-modal__shell {
    display: grid;
    grid-template-columns: minmax(280px,360px) 1fr;
    gap: 0
}

.pcv2-model {
    padding: clamp(20px,3vw,36px);
    background: linear-gradient(180deg,#f4e6d5,#fff8ef);
    border-right: 1px solid rgba(82,54,34,.12)
}

.pcv2-model__media,.pcv2-model-preview__media {
    border-radius: 20px;
    overflow: hidden;
    background: #efe2d2
}

.pcv2-model__title,.pcv2-config__title {
    margin: .25rem 0 .5rem;
    color: #2e1e13
}

.pcv2-model__description,.pcv2-muted {
    color: #725a48
}

.pcv2-model__tags {
    display: flex;
    wrap: wrap;
    gap: 8px;
    margin-top: 12px
}

.pcv2-model__tag {
    display: inline-flex;
    border-radius: 999px;
    padding: 6px 10px;
    background: #fff;
    border: 1px solid rgba(82,54,34,.16);
    font-size: .85rem
}

.pcv2-config {
    padding: clamp(18px,3vw,36px);
    display: grid;
    gap: 18px
}

.pcv2-eyebrow {
    margin: 0 0 4px;
    color: #8a5a2b;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    font-size: .75rem
}

.pcv2-stepper {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 0 10px;
    scrollbar-width: thin
}

.pcv2-stepper__button {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px 8px;
    align-items: center;
    min-width: 150px;
    padding: 12px;
    border: 1px solid rgba(82,54,34,.16);
    border-radius: 16px;
    background: #fff;
    cursor: pointer;
    text-align: left
}

.pcv2-stepper__button[aria-current="step"] {
    border-color: #8a5a2b;
    box-shadow: 0 0 0 3px rgba(138,90,43,.12)
}

.pcv2-stepper__index {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    background: #f0dfcb;
    color: #3f2a1c;
    font-weight: 700
}

.pcv2-stepper__label {
    font-weight: 700;
    color: #3f2a1c
}

.pcv2-stepper__status {
    grid-column: 2;
    font-size: .8rem;
    color: #725a48
}

.pcv2-step {
    display: grid;
    gap: 18px
}

.pcv2-step__intro {
    display: grid;
    gap: 4px
}

.pcv2-step__intro h4 {
    margin: 0;
    color: #2e1e13;
    font-size: 1.35rem
}

.pcv2-error {
    margin: 0;
    padding: 12px 14px;
    border-radius: 14px;
    background: #fff1f0;
    color: #8a1f11;
    border: 1px solid rgba(138,31,17,.18)
}

.pcv2-card,.pcv2-summary,.pcv2-info,.pcv2-price {
    border: 1px solid rgba(82,54,34,.14);
    border-radius: 20px;
    background: #fff;
    padding: 16px
}

.pcv2-model-preview {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 14px;
    align-items: center
}

.pcv2-fieldset {
    margin: 0;
    padding: 16px;
    border: 2px solid rgba(82,54,34,1);
    border-radius: 20px;
    background: #fff
}

.pcv2-fieldset legend {
    font-weight: 800;
    color: #3f2a1c
}

.pcv2-field {
    display: grid;
    gap: 8px;
    color: #3f2a1c;
    font-weight: 700
}

.pcv2-input,.pcv2-select {
    width: 100%;
    min-height: 46px;
    border: 1px solid rgba(82,54,34,.22);
    border-radius: 14px;
    background: #fff;
    padding: 10px 12px;
    font: inherit;
    color: #2e1e13
}

.pcv2-input:focus-visible,.pcv2-select:focus-visible,.pcv2-button:focus-visible,.pcv2-choice-card:focus-visible,.pcv2-stepper__button:focus-visible,.pcv2-modal__close:focus-visible {
    outline: 3px solid rgba(138,90,43,.35);
    outline-offset: 2px
}

.pcv2-choice-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(180px,1fr));
    gap: 12px;
    margin-top: 12px
}

.pcv2-choice-card {
    display: grid;
    gap: 6px;
    min-height: 76px;
    padding: 14px;
    border: 1px solid rgba(82,54,34,.16);
    border-radius: 18px;
    background: #fffdf9;
    color: #3f2a1c;
    font: inherit;
    font-weight: 800;
    text-align: left;
    cursor: pointer
}

.pcv2-choice-card[aria-checked="true"],.pcv2-choice-card.pcv2-is-selected {
    border-color: #8a5a2b;
    background: #fff4e6;
    box-shadow: 0 0 0 3px rgba(138,90,43,.12)
}

.pcv2-choice-card__meta,.pcv2-choice-card span {
    font-size: .9rem;
    font-weight: 600;
    color: #725a48
}

.pcv2-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    border: 1px solid #6f4324;
    border-radius: 999px;
    background: #6f4324;
    color: #fff;
    padding: 10px 18px;
    font-weight: 800;
    cursor: pointer;
    text-decoration: none
}

.pcv2-button:disabled {
    opacity: .55;
    cursor: not-allowed
}

.pcv2-button--secondary {
    background: #fff;
    color: #6f4324
}

.pcv2-button--ghost {
    background: transparent;
    color: #6f4324
}

.pcv2-button--primary {
    width: 100%;
    font-size: 1rem
}

.pcv2-nav {
    position: sticky;
    bottom: 0;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    background: linear-gradient(180deg,rgba(255,250,244,.82),#fffaf4 45%);
    border-top: 1px solid rgba(82,54,34,.1)
}

.pcv2-nav__next {
    display: grid;
    gap: 6px;
    justify-items: end
}

.pcv2-nav__help {
    margin: 0;
    color: #8a1f11;
    font-size: .9rem
}

.pcv2-price {
    display: grid;
    gap: 10px;
    background: #3f2a1c;
    color: #fff
}

.pcv2-price__main {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center
}

.pcv2-price__lines,.pcv2-price__notice {
    color: #f4e6d5
}

.pcv2-price-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid rgba(255,255,255,.14);
    padding-top: 8px
}

.pcv2-summary {
    display: grid;
    gap: 8px
}

.pcv2-summary-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid rgba(82,54,34,.1);
    padding-top: 8px;
    color: #725a48
}

.pcv2-field-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px
}

.pcv2-field--wide {
    grid-column: 1/-1
}

.pcv2-technical-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none
}

.pcv2-address-panel {
    grid-column: 1/-1;
    border: 1px solid rgba(82,54,34,.14);
    border-radius: 16px;
    background: #fff;
    padding: 10px
}

.pcv2-submit {
    margin-top: 18px
}

@media (max-width:900px) {
    .pcv2-modal {
        padding: 0;
        place-items: stretch
    }

    .pcv2-modal__dialog {
        width: 100%;
        height: 100%;
        max-height: none;
        border-radius: 0
    }

    .pcv2-modal__shell {
        grid-template-columns: 1fr
    }

    .pcv2-model {
        border-right: 0;
        border-bottom: 1px solid rgba(82,54,34,.12)
    }

    .pcv2-field-grid {
        grid-template-columns: 1fr
    }

    .pcv2-nav {
        align-items: stretch
    }

    .pcv2-nav__next {
        justify-items: stretch
    }

    .pcv2-button {
        width: 100%
    }}
.pcv2-modal-open {
    overflow: hidden !important;
    touch-action: none;
    -webkit-overflow-scrolling: auto;
}
.pcv2-modal-open body {
    overflow: hidden !important;
    overscroll-behavior: contain;
}
.pcv2-modal__dialog {
    overscroll-behavior: contain;
}

/* doc-project | projet/assets/css/product-configurator-v2/base.css | Styles scopes du configurateur V2, modale avec fermeture superposee hors flux, bloc stepper prix sticky en haut de la zone de scroll, panneau prix groupe par familles Portail Portillon Motorisation Options Peinture Livraison, animation panier vers pcv2-price, ligne finale Total configuration en cours, cartes de choix harmonisees, confinement des textes longs, champs, prix, accessibilite et navigation sans effet de bord legacy. | Expose: pcv2-modal, pcv2-stepper, pcv2-price, pcv2-price-group, pcv2-sticky-stack, pcv2-choice-card, pcv2-price-current-total, pcv2-price-fly-item | Dépend de: media-frame.css | Impacte: affichage configurateur V2, maintien visible du stepper et du prix pendant le scroll, lisibilite des familles de prix, feedback visuel panier, total configuration visible en bas du detail prix, cards selectionnables, positionnement fermeture, verrouillage scroll body | Tables: aucune */
.pcv2-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
}

.pcv2-modal[hidden],.pcv2-step[hidden],.pcv2-fieldset[hidden],.pcv2-field[hidden],.pcv2-info[hidden],.pcv2-error[hidden],.pcv2-nav__help[hidden],.pcv2-price__notice[hidden] {
    display: none!important
}

.pcv2-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: clamp(10px,2vw,28px)
}

.pcv2-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20,14,10,.62);
    backdrop-filter: blur(4px)
}

.pcv2-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(1180px,100%);
    max-height: min(92vh,980px);
    overflow: auto;
    border-radius: 28px;
    background: #fffaf4;
    box-shadow: 0 30px 90px rgba(20,14,10,.32);
    outline: 0
}

.pcv2-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 10;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: #3f2a1c;
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer
}

.pcv2-modal__shell {
    display: grid;
    grid-template-columns: minmax(280px,360px) 1fr;
    gap: 0
}

.pcv2-model {
    padding: clamp(20px,3vw,36px);
    background: linear-gradient(180deg,#f4e6d5,#fff8ef);
    border-right: 1px solid rgba(82,54,34,.12)
}

.pcv2-model__media,.pcv2-model-preview__media {
    border-radius: 20px;
    overflow: hidden;
    background: #efe2d2
}

.pcv2-model__title,.pcv2-config__title {
    margin: .25rem 0 .5rem;
    color: #2e1e13
}

.pcv2-model__description,.pcv2-muted {
    color: #725a48
}

.pcv2-model__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px
}

.pcv2-model__tag {
    display: inline-flex;
    border-radius: 999px;
    padding: 6px 10px;
    background: #fff;
    border: 1px solid rgba(82,54,34,.16);
    font-size: .85rem
}

.pcv2-config {
    padding: clamp(18px,3vw,36px);
    display: grid;
    gap: 18px
}

.pcv2-eyebrow {
    margin: 0 0 4px;
    color: #8a5a2b;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    font-size: .75rem
}

.pcv2-sticky-stack {
    position: sticky;
    top: 0;
    z-index: 8;
    display: grid;
    gap: 10px;
    margin: -4px 0 0;
    padding: 4px 0 12px;
    background: linear-gradient(180deg,#fffaf4 0,#fffaf4 calc(100% - 18px),rgba(255,250,244,0));
}

.pcv2-stepper {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 0 10px;
    scrollbar-width: thin
}

.pcv2-stepper__button {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px 8px;
    align-items: center;
    min-width: 150px;
    padding: 12px;
    border: 1px solid rgba(82,54,34,.16);
    border-radius: 16px;
    background: #fff;
    cursor: pointer;
    text-align: left
}

.pcv2-stepper__button[aria-current="step"] {
    border-color: #8a5a2b;
    box-shadow: 0 0 0 3px rgba(138,90,43,.12)
}

.pcv2-stepper__index {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    background: #f0dfcb;
    color: #3f2a1c;
    font-weight: 700
}

.pcv2-stepper__label {
    font-weight: 700;
    color: #3f2a1c
}

.pcv2-stepper__status {
    grid-column: 2;
    font-size: .8rem;
    color: #725a48
}

.pcv2-step {
    display: grid;
    gap: 18px
}

.pcv2-step__intro {
    display: grid;
    gap: 4px
}

.pcv2-step__intro h4 {
    margin: 0;
    color: #2e1e13;
    font-size: 1.35rem
}

.pcv2-error {
    margin: 0;
    padding: 12px 14px;
    border-radius: 14px;
    background: #fff1f0;
    color: #8a1f11;
    border: 1px solid rgba(138,31,17,.18)
}

.pcv2-card,.pcv2-summary,.pcv2-info,.pcv2-price {
    border: 1px solid rgba(82,54,34,.14);
    border-radius: 20px;
    background: #fff;
    padding: 16px
}

.pcv2-model-preview {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 14px;
    align-items: center
}

.pcv2-fieldset {
    margin: 0;
    padding: 16px;
    border: 1px solid rgba(82,54,34,.14);
    border-radius: 20px;
    background: #fff
}

.pcv2-fieldset legend {
    font-weight: 800;
    color: #3f2a1c
}

.pcv2-field {
    display: grid;
    gap: 8px;
    color: #3f2a1c;
    font-weight: 700
}

.pcv2-input,.pcv2-select {
    width: 100%;
    min-height: 46px;
    border: 1px solid rgba(82,54,34,.22);
    border-radius: 14px;
    background: #fff;
    padding: 10px 12px;
    font: inherit;
    color: #2e1e13
}

.pcv2-input:focus-visible,.pcv2-select:focus-visible,.pcv2-button:focus-visible,.pcv2-choice-card:focus-visible,.pcv2-stepper__button:focus-visible,.pcv2-modal__close:focus-visible {
    outline: 3px solid rgba(138,90,43,.35);
    outline-offset: 2px
}

.pcv2-choice-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(180px,1fr));
    gap: 12px;
    margin-top: 12px
}

.pcv2-choice-card {
    display: grid;
    gap: 6px;
    min-height: 76px;
    padding: 14px;
    border: 1px solid rgba(82,54,34,.22);
    border-radius: 18px;
    background: linear-gradient(180deg,#fffefb,#fff8ef);
    color: #3f2a1c;
    font: inherit;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(63,42,28,.06);
    transition: border-color .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,transform .18s ease
}

.pcv2-choice-card:hover {
    border-color: rgba(138,90,43,.48);
    box-shadow: 0 14px 30px rgba(63,42,28,.12);
    transform: translateY(-1px)
}

.pcv2-choice-card[aria-checked="true"],.pcv2-choice-card[aria-pressed="true"],.pcv2-choice-card.pcv2-is-selected,.pcv2-choice-card.is-selected,.pcv2-choice-card.pcv2-choice-card--selected {
    border-color: #3f2a1c;
    background: #3f2a1c;
    color: #fff;
    box-shadow: 0 0 0 3px rgba(63,42,28,.16),0 16px 34px rgba(63,42,28,.18);
    transform: none
}

.pcv2-choice-card__meta,.pcv2-choice-card span {
    font-size: .9rem;
    font-weight: 600;
    color: #725a48
}

.pcv2-choice-card[aria-checked="true"] .pcv2-choice-card__meta,.pcv2-choice-card[aria-checked="true"] span,.pcv2-choice-card[aria-pressed="true"] .pcv2-choice-card__meta,.pcv2-choice-card[aria-pressed="true"] span,.pcv2-choice-card.pcv2-is-selected .pcv2-choice-card__meta,.pcv2-choice-card.pcv2-is-selected span,.pcv2-choice-card.is-selected .pcv2-choice-card__meta,.pcv2-choice-card.is-selected span,.pcv2-choice-card.pcv2-choice-card--selected .pcv2-choice-card__meta,.pcv2-choice-card.pcv2-choice-card--selected span {
    color: #fff
}

.pcv2-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    border: 1px solid #6f4324;
    border-radius: 999px;
    background: #6f4324;
    color: #fff;
    padding: 10px 18px;
    font-weight: 800;
    cursor: pointer;
    text-decoration: none
}

.pcv2-button:disabled {
    opacity: .55;
    cursor: not-allowed
}

.pcv2-button--secondary {
    background: #fff;
    color: #6f4324
}

.pcv2-button--ghost {
    background: transparent;
    color: #6f4324
}

.pcv2-button--primary {
    width: 100%;
    font-size: 1rem
}

.pcv2-nav {
    position: sticky;
    bottom: 0;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    background: linear-gradient(180deg,rgba(255,250,244,.82),#fffaf4 45%);
    border-top: 1px solid rgba(82,54,34,.1)
}

.pcv2-nav__next {
    display: grid;
    gap: 6px;
    justify-items: end
}

.pcv2-nav__help {
    margin: 0;
    color: #8a1f11;
    font-size: .9rem
}

.pcv2-price {
    display: grid;
    gap: 10px;
    background: #3f2a1c;
    color: #fff;
    box-shadow: 0 14px 34px rgba(63,42,28,.16)
}

.pcv2-price__main {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center
}

.pcv2-price__lines,.pcv2-price__notice {
    color: #f4e6d5
}

.pcv2-price-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid rgba(255,255,255,.14);
    padding-top: 8px
}

.pcv2-summary {
    display: grid;
    gap: 8px
}

.pcv2-summary-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid rgba(82,54,34,.1);
    padding-top: 8px;
    color: #725a48
}

.pcv2-field-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px
}

.pcv2-field--wide {
    grid-column: 1/-1
}

.pcv2-technical-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none
}

.pcv2-address-panel {
    grid-column: 1/-1;
    border: 1px solid rgba(82,54,34,.14);
    border-radius: 16px;
    background: #fff;
    padding: 10px
}

.pcv2-submit {
    margin-top: 18px
}

@media (max-width:900px) {
    .pcv2-modal {
        padding: 0;
        place-items: stretch
    }

    .pcv2-modal__dialog {
        width: 100%;
        height: 100%;
        max-height: none;
        border-radius: 0
    }

    .pcv2-modal__shell {
        grid-template-columns: 1fr
    }

    .pcv2-model {
        border-right: 0;
        border-bottom: 1px solid rgba(82,54,34,.12)
    }

    .pcv2-sticky-stack {
        margin: -2px 0 0;
        padding: 2px 0 10px
    }

    .pcv2-price {
        padding: 12px
    }

    .pcv2-field-grid {
        grid-template-columns: 1fr
    }

    .pcv2-nav {
        align-items: stretch
    }

    .pcv2-nav__next {
        justify-items: stretch
    }

    .pcv2-button {
        width: 100%
    }}

.pcv2-price__details[hidden] {
    display: none!important
}
.pcv2-price {
    padding: 0;
    overflow: hidden
}
.pcv2-price__toggle {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 12px;
    width: 100%;
    border: 0;
    background: transparent;
    color: inherit;
    padding: 16px;
    text-align: left;
    cursor: pointer;
    font: inherit
}
.pcv2-price__toggle:focus-visible {
    outline: 3px solid rgba(255,255,255,.38);
    outline-offset: -4px
}
.pcv2-price__main {
    grid-column: 1;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center
}
.pcv2-price__main strong {
    font-size: 1.16rem;
    white-space: nowrap
}
.pcv2-price__hint {
    grid-column: 1;
    color: #f4e6d5;
    font-size: .86rem
}
.pcv2-price__chevron {
    grid-column: 2;
    grid-row: 1/3;
    align-self: center;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    transition: transform .18s ease
}
.pcv2-price--expanded .pcv2-price__chevron {
    transform: rotate(180deg)
}
.pcv2-price__details {
    display: grid;
    gap: 10px;
    padding: 0 16px 16px
}
.pcv2-price__lines:empty::before {
    content: "Aucune option ou ligne complémentaire ajoutée.";
    display: block;
    border-top: 1px solid rgba(255,255,255,.14);
    padding-top: 8px;
    color: #f4e6d5
}
.pcv2-price-group {
    display: grid;
    gap: 6px;
    border-top: 1px solid rgba(255,255,255,.16);
    padding-top: 9px;
}
.pcv2-price-group:first-child {
    border-top: 0;
    padding-top: 0;
}
.pcv2-summary__eyebrow {
    margin: 0;
    color: var(--pcv2-muted);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-align: center;
}

.pcv2-price-group__lines {
    display: grid;
    gap: 6px;
}
.pcv2-price-group .pcv2-price-line {
    border-top: 0;
    padding-top: 0;
}
.pcv2-price-group .pcv2-price-line small {
    color: #f4e6d5;
}
.pcv2-summary__lines .pcv2-price-group {
    border-top: 1px solid rgba(82,54,34,.14);
    padding-top: 10px;
}
.pcv2-summary__lines .pcv2-price-group:first-child {
    border-top: 0;
    padding-top: 0;
}
.pcv2-summary__lines .pcv2-price-group__title {
    color: #8a5a2b;
}
.pcv2-summary__lines .pcv2-price-group .pcv2-price-line {
    color: #5f4634;
}
.pcv2-summary__lines .pcv2-price-group .pcv2-price-line strong {
    color: #24170f;
}
.pcv2-price__current-total {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    border-top: 1px solid rgba(255,255,255,.28);
    margin-top: 2px;
    padding-top: 10px;
    color: #fff;
    font-weight: 900
}
.pcv2-price__current-total strong {
    white-space: nowrap;
    font-size: 1.08rem
}
@media (max-width:900px) {
    .pcv2-price__toggle {
        padding: 12px
    }

    .pcv2-price__details {
        padding: 0 12px 12px
    }

    .pcv2-price__main {
        gap: 8px
    }

    .pcv2-price__main strong {
        font-size: 1.04rem
    }}

.pcv2-price-fly-item {
    position: fixed;
    z-index: 2200;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 170px;
    min-width: 38px;
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #fffaf4;
    color: #3f2a1c;
    border: 1px solid rgba(63,42,28,.18);
    box-shadow: 0 18px 48px rgba(20,14,10,.28);
    font-weight: 900;
    font-size: .86rem;
    line-height: 1;
    pointer-events: none;
    transform: translate(-50%,-50%) scale(.86);
    opacity: 1;
    transition: transform .62s cubic-bezier(.2,.8,.2,1),opacity .62s ease;
    will-change: transform,opacity;
}
.pcv2-price--pulse {
    animation: pcv2-price-pulse .52s ease;
}
@keyframes pcv2-price-pulse {
    0% {
        box-shadow: 0 14px 34px rgba(63,42,28,.16),0 0 0 0 rgba(255,250,244,0)
    }
    42% {
        box-shadow: 0 18px 42px rgba(63,42,28,.24),0 0 0 5px rgba(255,250,244,.34)
    }
    100% {
        box-shadow: 0 14px 34px rgba(63,42,28,.16),0 0 0 0 rgba(255,250,244,0)
    }
}
@media (prefers-reduced-motion:reduce) {
    .pcv2-price-fly-item {
        display: none!important
    }
    .pcv2-price--pulse {
        animation: none
    }
}

/* doc-project | projet/assets/css/product-configurator-v2/base.css | Surcharge scopee pcv2-stepper: boutons compacts une seule ligne, coche statut alignee horizontalement avec le libelle de l etape. | Expose: pcv2-stepper__button, pcv2-stepper__status | Dépend de: regles pcv2-stepper de base | Impacte: hauteur des boutons stepper V2 et alignement vertical coche libelle, sans effet sur autres composants V2 ni legacy | Tables: aucune */
.pcv2-stepper__button {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    column-gap: 8px;
    grid-template-columns: none;
    min-height: 0;
    padding-block: 6px;
    padding-inline: 12px;
    line-height: 1.25;
}
.pcv2-stepper__button > .pcv2-stepper__index {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    line-height: 22px;
    font-size: .82rem;
}
.pcv2-stepper__button > .pcv2-stepper__label {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pcv2-stepper__button > .pcv2-stepper__status {
    grid-column: auto;
    flex: 0 0 auto;
    align-self: center;
    margin-left: auto;
    padding-left: 4px;
    font-size: .95rem;
    line-height: 1;
    color: #3f7a3f;
}
.pcv2-stepper__button > .pcv2-stepper__status:empty {
    display: none;
}
@media (max-width:900px) {
    .pcv2-stepper__button {
        padding-block: 5px;
        padding-inline: 10px;
    }
}

.pcv2-choice-grid,
.pcv2-choice-grid > .pcv2-choice-card {
    min-width: 0;
}
.pcv2-choice-grid > .pcv2-choice-card {
    box-sizing: border-box;
    max-width: 100%;
    overflow: hidden;
    overflow-wrap: anywhere;
    word-break: normal;
    white-space: normal;
}
.pcv2-choice-grid > .pcv2-choice-card *,
.pcv2-choice-grid > .pcv2-choice-card::before,
.pcv2-choice-grid > .pcv2-choice-card::after {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    white-space: normal;
}
.pcv2-choice-grid > .pcv2-choice-card span,
.pcv2-choice-grid > .pcv2-choice-card strong,
.pcv2-choice-grid > .pcv2-choice-card b {
    overflow-wrap: anywhere;
    word-break: normal;
    white-space: normal;
}
.pcv2-choice-grid > .pcv2-choice-card:not([aria-checked="true"]):not([aria-pressed="true"]):not(.pcv2-is-selected):not(.is-selected):not(.pcv2-choice-card--selected) {
    border-color: rgba(63,42,28,.5);
    background: linear-gradient(180deg,#f3e4d1,#e8d2b8);
    box-shadow: 0 12px 24px rgba(63,42,28,.16),inset 0 1px 0 rgba(255,255,255,.52);
    color: #2e1e13;
}
.pcv2-choice-grid > .pcv2-choice-card:not([aria-checked="true"]):not([aria-pressed="true"]):not(.pcv2-is-selected):not(.is-selected):not(.pcv2-choice-card--selected) .pcv2-choice-card__meta,
.pcv2-choice-grid > .pcv2-choice-card:not([aria-checked="true"]):not([aria-pressed="true"]):not(.pcv2-is-selected):not(.is-selected):not(.pcv2-choice-card--selected) span {
    color: #3f2a1c;
}
.pcv2-choice-grid > .pcv2-choice-card:not([aria-checked="true"]):not([aria-pressed="true"]):not(.pcv2-is-selected):not(.is-selected):not(.pcv2-choice-card--selected):hover {
    border-color: rgba(63,42,28,.72);
    background: linear-gradient(180deg,#f0dcc4,#dfc09d);
    box-shadow: 0 16px 34px rgba(63,42,28,.22),inset 0 1px 0 rgba(255,255,255,.56);
}

/* doc-project | projet/assets/css/product-configurator-v2/base.css | Pattern reutilisable de champ numerique avec suffixe cm purement visuel pour les dimensions du configurateur V2. | Expose: pcv2-unit-field, pcv2-unit-field__suffix | Dépend de: pcv2-input | Impacte: saisie visuelle des dimensions en centimetres sans modifier value input ni payload | Tables: aucune */
.pcv2-unit-field {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
}
.pcv2-unit-field > .pcv2-input {
    padding-right: 3.45rem;
}
.pcv2-unit-field__suffix {
    position: absolute;
    top: 50%;
    right: 14px;
    z-index: 1;
    transform: translateY(-50%);
    color: #5f4634;
    font-size: .9rem;
    font-weight: 950;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}
.pcv2-unit-field:focus-within .pcv2-unit-field__suffix {
    color: #3f2a1c;
}
.pcv2-choice-card .pcv2-unit-field {
    width: 100%;
}
.pcv2-choice-card .pcv2-unit-field > .pcv2-input {
    text-align: center;
}

.pcv2-modal .pcv2-step .pcv2-summary {
    position: relative;
    display: grid;
    gap: 14px;
    margin-top: clamp(16px,2.4vw,26px);
    padding: clamp(18px,2.8vw,24px);
    overflow: hidden;
    border: 1px solid rgba(138,90,43,.34);
    border-radius: 24px;
    background:
    radial-gradient(circle at top left,rgba(255,255,255,.92),rgba(255,255,255,0) 34%),
    linear-gradient(135deg,#fffdf8 0%,#f8ecdc 100%);
    box-shadow: 0 20px 48px rgba(63,42,28,.14),inset 0 1px 0 rgba(255,255,255,.78);
    color: #2e1e13;
}
.pcv2-modal .pcv2-step .pcv2-summary::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 6px;
    background: linear-gradient(180deg,#8a5a2b,#3f2a1c);
}
.pcv2-modal .pcv2-step .pcv2-summary__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-left: 4px;
}
.pcv2-modal .pcv2-step .pcv2-summary__eyebrow {
    margin: 0 0 4px;
    color: #8a5a2b;
    font-size: 1.5rem;
    font-weight: 950;
    letter-spacing: .09em;
    text-transform: uppercase;
    text-align: center;
}
.pcv2-modal .pcv2-step .pcv2-summary__title {
    display: block;
    margin: 0;
    color: #24170f;
    font-size: clamp(1.08rem,2vw,1.28rem);
    font-weight: 950;
    letter-spacing: -.015em;
}
.pcv2-modal .pcv2-step .pcv2-summary__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 6px 11px;
    border-radius: 999px;
    background: #3f2a1c;
    color: #fffaf4;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 10px 22px rgba(63,42,28,.18);
}
.pcv2-modal .pcv2-step [data-pcv2-summary-lines] {
    display: grid;
    gap: 9px;
}
.pcv2-modal .pcv2-step .pcv2-summary-line {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: baseline;
    gap: 12px;
    padding: 10px 0 0;
    border-top: 1px solid rgba(82,54,34,.14);
    color: #5f4634;
    font-weight: 700;
}
.pcv2-modal .pcv2-step .pcv2-summary-line:first-child {
    border-top-color: rgba(138,90,43,.22);
}
.pcv2-modal .pcv2-step .pcv2-summary-line strong,
.pcv2-modal .pcv2-step .pcv2-summary-line b,
.pcv2-modal .pcv2-step .pcv2-summary__price {
    color: #24170f;
    font-weight: 950;
}
.pcv2-modal .pcv2-step .pcv2-summary__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 4px;
    padding-top: 13px;
    border-top: 1px solid rgba(63,42,28,.26);
    color: #24170f;
    font-weight: 950;
}
.pcv2-modal .pcv2-step .pcv2-summary__total strong {
    font-size: clamp(1.18rem,3vw,1.55rem);
    white-space: nowrap;
}
.pcv2-modal .pcv2-step .pcv2-summary.pcv2-step-price-card {
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
}
.pcv2-modal .pcv2-step .pcv2-summary .pcv2-step-price-card__eyebrow {
    color: #8a5a2b;
}
.pcv2-modal .pcv2-step .pcv2-summary .pcv2-step-price-card__title,
.pcv2-modal .pcv2-step .pcv2-summary .pcv2-step-price-card__amount {
    color: #24170f;
}
.pcv2-modal .pcv2-step .pcv2-summary .pcv2-step-price-card__text,
.pcv2-modal .pcv2-step .pcv2-summary .pcv2-step-price-card__text p {
    color: #5f4634;
}

html.pcv2-is-validation-step .pcv2-modal .pcv2-modal__header,
html.pcv2-is-validation-step .pcv2-modal [data-pcv2-stepper],
html.pcv2-is-validation-step .pcv2-modal [data-pcv2-price-panel],
html.pcv2-is-validation-step .pcv2-modal [data-pcv2-nav-current],
html.pcv2-is-validation-step .pcv2-modal [data-pcv2-nav-count],
html.pcv2-is-validation-step .pcv2-modal [data-pcv2-next-help] {
    display: none!important;
}

html.pcv2-is-validation-step .pcv2-modal .pcv2-sticky-stack {
    position: static;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-block: 8px 12px;
    background: transparent;
    box-shadow: none;
}

html.pcv2-is-validation-step .pcv2-modal .pcv2-draft-actions {
    display: flex!important;
    justify-content: center;
    width: 100%;
    margin: 0;
}

html.pcv2-is-validation-step .pcv2-modal [data-pcv2-reset-draft] {
    display: inline-flex!important;
}
@media (max-width:720px) {
    .pcv2-modal .pcv2-step .pcv2-summary__header,
    .pcv2-modal .pcv2-step .pcv2-summary.pcv2-step-price-card {
        display: grid;
    }
    .pcv2-modal .pcv2-step .pcv2-summary__badge {
        justify-self: start;
    }
    .pcv2-modal .pcv2-step .pcv2-summary-line,
    .pcv2-modal .pcv2-step .pcv2-summary__total {
        grid-template-columns: 1fr;
    }
}