.nsf-form-shell{display:flex;flex-direction:column;gap:16px;max-width:760px}

.nsf-form{

  position:relative;

  display:grid;

  gap:16px;

  width:100%;

  max-width:100%;

  /* Thème overlay envoi : surcharger depuis le thème enfant, ex. .nsf-form { --nsf-submit-spinner-accent: #123B09; } */

  --nsf-submit-backdrop: rgba(255,255,255,.78);

  --nsf-submit-panel-bg: #fff;

  --nsf-submit-panel-shadow: 0 12px 40px rgba(8,15,61,.12), 0 0 0 1px rgba(6,102,221,.08);

  --nsf-submit-spinner-trail: rgba(6,102,221,.18);

  --nsf-submit-spinner-accent: #0666dd;

  --nsf-submit-text: #080f3d;

}

.nsf-form--submitting{pointer-events:none}

.nsf-form--step-changing{pointer-events:none}

.nsf-submit-busy{position:absolute;inset:0;z-index:200;display:grid;place-items:center;padding:24px;box-sizing:border-box;pointer-events:none}

.nsf-submit-busy[hidden]{display:none!important}

.nsf-submit-busy__backdrop{position:absolute;inset:0;background:var(--nsf-submit-backdrop);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:12px}

.nsf-submit-busy__panel{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 32px;border-radius:16px;background:var(--nsf-submit-panel-bg);box-shadow:var(--nsf-submit-panel-shadow);max-width:min(320px,100%)}

.nsf-submit-busy__spinner{width:44px;height:44px;border-radius:50%;border:3px solid var(--nsf-submit-spinner-trail);border-top-color:var(--nsf-submit-spinner-accent);animation:nsf-submit-spin .72s linear infinite;box-sizing:border-box}

.nsf-submit-busy__text{margin:0;font-size:15px;font-weight:600;color:var(--nsf-submit-text);letter-spacing:.02em;text-align:center;line-height:1.35}

/* Navigation d’étapes : overlay plus léger / spinner plus petit */

.nsf-submit-busy--step .nsf-submit-busy__backdrop{background:rgba(255,255,255,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}

.nsf-submit-busy--step .nsf-submit-busy__panel{padding:16px 20px;gap:10px;border-radius:12px;box-shadow:0 8px 24px rgba(8,15,61,.1),0 0 0 1px rgba(6,102,221,.06)}

.nsf-submit-busy--step .nsf-submit-busy__spinner{width:28px;height:28px;border-width:2.5px;animation-duration:.6s}

.nsf-submit-busy--step .nsf-submit-busy__text{font-size:13px;font-weight:500}

@keyframes nsf-submit-spin{to{transform:rotate(360deg)}}

.nsf-step--enter{animation:nsf-step-enter .34s ease both}

@keyframes nsf-step-enter{

  from{opacity:0;transform:translateY(10px)}

  to{opacity:1;transform:none}

}

.nsf-step-rich{margin:12px 0;line-height:1.5}

.nsf-step-title--rich{margin:0 0 8px;line-height:1.35}

.nsf-step-title--rich > :first-child{margin-top:0}

.nsf-step-title--rich > :last-child{margin-bottom:0}

.nsf-step-desc--rich{margin:8px 0;line-height:1.5}

.nsf-step-desc--rich > :first-child{margin-top:0}

.nsf-step-desc--rich > :last-child{margin-bottom:0}

.nsf-step-rich-outside{margin:0;line-height:1.5}

.nsf-nav-mount{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}

/* Emplacements : .nsf-nav-mount--before-fields = avant .nsf-fields-grid ; .nsf-nav-mount--after-fields = après. data-nsf-nav-slot="before"|"after". */

.nsf-actions:empty{display:none}

.nsf-form.nsf-form-loading{opacity:0;visibility:hidden}

.nsf-form.nsf-form-ready{opacity:1;visibility:visible;transition:opacity .2s ease}

/* Canvas Elementor : formulaire visible meme si encore en loading */
html.nova-editor-preview .nsf-form.nsf-form-loading,
body.elementor-editor-active .nsf-form.nsf-form-loading,
body.elementor-editor-preview .nsf-form.nsf-form-loading,
.elementor-editor-active .nsf-form.nsf-form-loading,
.elementor-editor-preview .nsf-form.nsf-form-loading {
	opacity: 1 !important;
	visibility: visible !important;
}


.nsf-fields-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--nsf-fields-gap,12px)}

.nsf-field{display:grid;gap:6px;grid-column:span var(--nsf-col-span,12)}

.nsf-field.nsf-field--cond-hidden{display:none!important;visibility:hidden!important;pointer-events:none!important}

.nsf-field > label{transition:color .15s ease}

.nsf-field.nsf-field-invalid > label,

.nsf-field.nsf-field-erreur > label{color:#d62828;font-weight:600}

.nsf-field.nsf-field-invalid input,

.nsf-field.nsf-field-invalid textarea,

.nsf-field.nsf-field-invalid select,

.nsf-field.nsf-field-erreur input,

.nsf-field.nsf-field-erreur textarea,

.nsf-field.nsf-field-erreur select{border-color:#d62828}

.nsf-field.nsf-field-invalid .nice-select,

.nsf-field.nsf-field-erreur .nice-select{border-color:#d62828}

.nsf-field.nsf-field-password .nsf-password-wrap{display:grid;grid-template-columns:1fr;grid-template-rows:auto;min-width:0;width:100%;align-items:stretch}

.nsf-field.nsf-field-password .nsf-password-input{grid-column:1;grid-row:1;width:100%;min-width:0;padding-right:48px;box-sizing:border-box}

.nsf-field.nsf-field-password .nsf-password-toggle{grid-column:1;grid-row:1;justify-self:end;align-self:center;margin-right:8px;z-index:2;display:inline-flex;align-items:center;justify-content:center;padding:4px;margin-top:0;margin-bottom:0;margin-left:0;border:0;background:transparent;cursor:pointer;line-height:0;border-radius:4px;pointer-events:auto}

.nsf-field.nsf-field-password .nsf-password-toggle:focus-visible{outline:2px solid #0666dd;outline-offset:2px}

.nsf-field.nsf-field-password .nsf-password-toggle img{display:block;width:22px;height:22px;object-fit:contain}

.nsf-field .nice-select{width:100%;height:42px;line-height:40px;border:1px solid #d2d2d2;border-radius:6px;float:none;padding-left:12px;padding-right:34px;font-size:14px;position:relative;z-index:3;pointer-events:auto}

.nsf-field .nice-select:after{right:12px;border-bottom:2px solid #666;border-right:2px solid #666;width:8px;height:8px}

.nsf-field .nice-select.open,.nsf-field .nice-select:focus{border-color:#0666dd;z-index:9999}

.nsf-field .nice-select .list{width:100%;max-height:260px;overflow:auto;border:1px solid #d2d2d2;border-radius:6px;z-index:10000;pointer-events:auto;padding-top:0}

.nsf-field .nice-select .nsf-nice-search {

    position: sticky;

    top: 0;

    z-index: 2;

    padding: 0px 18px 0px;

    background: #fff;

    border-bottom: 1px solid #ececec;

}

.nsf-field .nice-select .nsf-nice-search__input{

	display:block;width:100%;box-sizing:border-box;height:34px;line-height:34px;padding:0 10px;margin:0;

	border:1px solid #d2d2d2;border-radius:4px;font-size:13px;color:#1d2327;background:#fff;

}

.nsf-field .nice-select .nsf-nice-search__input:focus{border-color:#0666dd;outline:none;box-shadow:0 0 0 1px #0666dd}

.nsf-field .nice-select .option.nsf-nice-search-hidden{display:none!important}

.nsf-field .nice-select .option.nsf-nice-search-empty{display:block;padding:10px 12px;color:#717171;cursor:default;font-style:italic}

.nsf-field .nice-select .option.nsf-nice-search-empty:hover{background:transparent}



/* Multiselect NiceSelect : checkbox visible (bordure inactive) + coche si sélectionné */

.nsf-field-multiselect select.nsf-multiselect{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;border:0!important}

.nsf-field .nice-select.nsf-multiselect-ui{white-space:nowrap}

.nsf-field .nice-select.nsf-multiselect-ui .current {

    text-overflow: ellipsis;

    white-space: nowrap;

    overflow: hidden;

    -webkit-line-clamp: 1;

    line-clamp: 1;

    -webkit-box-orient: vertical;

}

.nsf-field .nice-select.nsf-multiselect-ui.nsf-multiselect--empty .current {

    color: #717171;

}

.nsf-field .nice-select.nsf-multiselect-ui .list{padding:6px 0}

.nsf-field .nice-select.nsf-multiselect-ui .option{padding:0;line-height:1.35;min-height:0;cursor:pointer;position:relative}

.nsf-field .nice-select.nsf-multiselect-ui .option:before,

.nsf-field .nice-select.nsf-multiselect-ui .option:after,

.nsf-field .nice-select.nsf-multiselect-ui .list span:before,

.nsf-field .nice-select.nsf-multiselect-ui .list span:after{

	content:none!important;display:none!important;border:0!important;background:none!important;width:0!important;height:0!important;

}

.nsf-field .nice-select.nsf-multiselect-ui .option:hover,

.nsf-field .nice-select.nsf-multiselect-ui .option.focus,

.nsf-field .nice-select.nsf-multiselect-ui .option.selected.focus{background:#f6f6f6}

.nsf-field .nice-select.nsf-multiselect-ui .option.selected{font-weight:500;background:transparent}

.nsf-ms-option{display:flex;align-items:center;gap:7px;width:100%;box-sizing:border-box;padding:10px 14px;cursor:pointer;margin:0;font-weight:500;}

.nsf-ms-check {

    width: 18px;

    height: 18px;

    flex-shrink: 0;

    box-sizing: border-box;

    border: 1px solid #717171;

    border-radius: 5px;

    background: #fff;

    opacity: 1;

    visibility: visible;

    transition: border-color .15s ease,background .15s ease;

}

.nsf-field .nice-select.nsf-multiselect-ui .option:hover .nsf-ms-check{border-color:#717171}

.nsf-field .nice-select.nsf-multiselect-ui .option.selected .nsf-ms-check {

    border-color: #717171;

    background: #717171;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");

    background-repeat: no-repeat;

    background-position: center;

    background-size: 8px 8px;

}

.nice-select .option {

    color: #717171!important;

    font-weight: 500 !important;

}

.nsf-field .nice-select.nsf-multiselect-ui .option.nsf-ms-placeholder{

}

.nsf-field .nice-select.nsf-multiselect-ui .option.nsf-ms-placeholder .nsf-ms-option{color:#717171;}

.nsf-field .nice-select.nsf-multiselect-ui .option.nsf-ms-placeholder .nsf-ms-check{display:none}

.nice-select .option{color:#717171!important}

.nsf-ms-label{flex:1;min-width:0;line-height:1.35}

.nsf-actions{display:flex;gap:10px}

.nsf-btn{padding:10px 16px;border:none;border-radius:6px;cursor:pointer}

.nsf-btn-secondary{background:#efefef;color:#222;border:1px solid #ccc}

.nsf-lost-password-resend{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}

.nsf-lost-password-resend-notice{display:block;width:100%;margin:0;font-size:14px;line-height:1.4}

.nsf-lost-password-resend-notice--success{color:#137914}

.nsf-lost-password-resend-notice--error{color:#b32d2e}

.nsf-next,.nsf-submit{background:#0666dd;color:#fff}

.nsf-prev{background:#efefef}

.nsf-form .nsf-prev,.nsf-form .nsf-next,.nsf-form .nsf-submit{display:none}

.nsf-form:not(.nsf-js-ready) .nsf-submit{display:inline-flex}

.nsf-form.nsf-js-ready[data-nsf-nav="single"] .nsf-submit{display:inline-flex}

.nsf-form.nsf-js-ready[data-nsf-nav="start"] .nsf-next{display:inline-flex}

.nsf-form.nsf-js-ready[data-nsf-nav="middle"] .nsf-prev,.nsf-form.nsf-js-ready[data-nsf-nav="middle"] .nsf-next{display:inline-flex}

.nsf-form.nsf-js-ready[data-nsf-nav="end"] .nsf-prev,.nsf-form.nsf-js-ready[data-nsf-nav="end"] .nsf-submit{display:inline-flex}

.nsf-form.nsf-js-ready .nsf-btn.nsf-step-hidden{display:none !important}

.nsf-validation-message{padding:10px

    ;background:#fff4e5;border:1px solid #f0c36d;border-radius:6px;color:#7a4b00;font-size:14px}

.nsf-validation-message.is-success {

    background: #22aaa1;

    border-color: #22aaa1;

    color: #fff;

}

.nsf-validation-message.is-error {

    background: #d62828;

    border-color: #d62828;

    color: #fff;

}

.nsf-success {

    padding: 10px;

    background: #22aaa1;

    border: 1px solid #22aaa1;

    color: #fff;



    border-radius: 6px;

    font-size: 15px;

    line-height: 15px;

}

.nice-select:not(.open) {

    overflow: hidden !important;

    z-index: 1 !important;

}

.nsf-error{padding:10px;background:#d62828;border:1px solid #d62828;border-radius:6px}





fieldset.nsf-step {

    border: none;

    padding: 0;

    overflow: visible;

}

@media (max-width:782px){

    .nsf-fields-grid{grid-template-columns:1fr}

    .nsf-field{grid-column:span 1}

}

.nsf-field input, .nsf-field textarea, .nsf-field select {

    outline: none !important;

}



/* Date : saisie via Flatpickr (soumission ISO Y-m-d) */

.nsf-field-date .flatpickr-input,

.nsf-field-date input.nsf-input-date {

    width: 100%;

    max-width: 100%;

    box-sizing: border-box;

    padding: 12px 14px;

    border: 1px solid #e4e6ef;

    border-radius: 10px;

    background: #fff;

    font-size: 15px;

    font-weight: 500;

    color: #080f3d;

    min-height: 46px;

}

.nsf-field-date .flatpickr-input:focus,

.nsf-field-date input.nsf-input-date:focus {

    border-color: #0666dd;

    box-shadow: 0 0 0 1px rgba(6, 102, 221, 0.12);

    outline: none;

}

.flatpickr-calendar {

    z-index: 1000001;

}



.nsf-field-after--rich{margin-top:8px;line-height:1.5;font-size:14px}

.nsf-field-after--rich > :first-child{margin-top:0}

.nsf-field-after--rich > :last-child{margin-bottom:0}

.nsf-field-before--rich{margin-bottom:8px;line-height:1.5;font-size:14px}

.nsf-field-before--rich > :first-child{margin-top:0}

.nsf-field-before--rich > :last-child{margin-bottom:0}

.nsf-field-required{color:#d62828;font-weight:700;margin-left:2px;white-space:nowrap}

.nsf-radio-group,.nsf-checkbox-group{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:8px;align-items:center}

.nsf-radio-option,.nsf-checkbox-option{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:15px;font-weight:500;color:#4a5568;line-height:1.35;margin:0}

/* Type `file` (UI m2) : seul le bandeau global est visible.
   Ne pas utiliser display:none sur les rows — les navigateurs bloquent
   alors le click programmatique sur l’input file. */
.nsf-field-file .nsf-fb-card {
    display: none !important;
}
.nsf-field-file .nsf-fb-m2-global-add-text {
    max-width: 300px !important;
}
.nsf-field-file .nsf-file-bundle-rows.nsf-file-bundle-rows--grid.nsf-file-bundle-rows--m2 {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.nsf-field-file.nsf-field-file-bundle--ui-m2 {
    position: relative;
}
.nsf-field-file .nsf-file-bundle-row-actions,
.nsf-field-file .nsf-file-bundle-add-wrap {
    display: none !important;
}
.nsf-choice-text{flex:1;min-width:0}

/* Cases carrées arrondies + bord lavande (radio & checkbox), cohérent charte */

.nsf-field-radio .nsf-radio-option input[type="radio"],

.nsf-field-checkbox .nsf-checkbox-option input[type="checkbox"]{

    -webkit-appearance:none;appearance:none;

    width:22px;height:22px;margin:0;flex-shrink:0;

    border:2px solid #c8bfe0;border-radius:8px;background:#fff;

    box-sizing:border-box;

    transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;

    cursor:pointer;

}

.nsf-field-radio .nsf-radio-option input[type="radio"]:hover,

.nsf-field-checkbox .nsf-checkbox-option input[type="checkbox"]:hover{border-color:#9b8fd4}

.nsf-field-radio .nsf-radio-option input[type="radio"]:focus-visible,

.nsf-field-checkbox .nsf-checkbox-option input[type="checkbox"]:focus-visible{

    outline:2px solid #0666dd;outline-offset:2px;

}

.nsf-field-radio .nsf-radio-option input[type="radio"]:checked{

    border-color:#0666dd;background:#0666dd;

    box-shadow:none;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");

    background-repeat:no-repeat;background-position:center;background-size:12px 10px;

}

.nsf-field-checkbox .nsf-checkbox-option input[type="checkbox"]:checked{

    border-color:#0666dd;background:#0666dd;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");

    background-repeat:no-repeat;background-position:center;background-size:12px 10px;

}

.nsf-field-radio .nsf-radio-option:has(input:checked) .nsf-choice-text,

.nsf-field-checkbox .nsf-checkbox-option:has(input:checked) .nsf-choice-text{

    color:#080f3d;font-weight:600;

}

.nsf-field-file-bundle .nsf-file-bundle-rows{margin-top:10px}

.nsf-file-bundle-rows--grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}

@media (max-width:782px){

    .nsf-file-bundle-rows--grid{grid-template-columns:1fr}

}

.nsf-file-bundle-row{display:grid;grid-template-columns:1fr;gap:0;align-items:start}

.nsf-file-bundle-row--dynamic{grid-template-columns:1fr auto;gap:10px;align-items:center}

.nsf-fb-row-stack{display:flex;flex-direction:column;gap:10px;min-width:0;position:relative}

/* Badge « Document à mettre à jour » : lecture seule sur le front, affiché uniquement quand `update=true` côté bo. */

.nsf-fb-update-badge{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#8b6914;pointer-events:none;z-index:1}

.nsf-fb-update-badge__text{line-height:1}

.nsf-fb-update-badge__icon{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:5px;background:#d4a017;color:#fff;font-style:italic;font-weight:700;font-size:13px;line-height:1;font-family:Georgia,serif}

/* Slot marqué pour mise à jour : fond crème + bordure dorée. */

.nsf-file-bundle-row--marked-update .nsf-fb-face--full{background:#fdf3d8;border-color:#d4a017}

.nsf-field.nsf-field-file-bundle .nsf-fb-nom-input{width:100%;box-sizing:border-box;padding:12px 14px!important;border:1px solid #e4e6ef!important;border-radius:10px!important;background:#fff!important;font-size:15px!important;font-weight:600!important;color:#080f3d!important;outline:none}

.nsf-field.nsf-field-file-bundle .nsf-fb-nom-input:focus{border-color:#0666dd!important;box-shadow:0 0 0 1px rgba(6,102,221,.12)!important}

.nsf-field-file-bundle .nsf-fb-nom-label{display:block;margin:0;font-size:15px;font-weight:600;color:#080f3d;line-height:1.35}

.nsf-field-file-bundle[data-nsf-file-bundle-only-upload="1"] .nsf-fb-nom-label{color:#080f3d}

.nsf-fb-slot{position:relative;min-width:0}

.nsf-fb-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0;pointer-events:none}

.nsf-fb-slot--filled .nsf-fb-file-input{pointer-events:none}

/* Une seule zone (vide OU remplie) : ne pas aligner les deux faces en flex-row */

.nsf-fb-card{display:block;position:relative;min-height:0;border-radius:10px;cursor:pointer;outline:none;transition:box-shadow .15s ease, border-color .15s ease, background .15s ease}

.nsf-fb-card:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #0666dd}

.nsf-fb-face{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px 14px;border:1px dashed #9eb4d8;border-radius:10px;background:#eef2f8;box-sizing:border-box}

.nsf-fb-face[hidden]{display:none!important}

.nsf-fb-face--full{border-color:#5bb98a;background:#e8f7ef;border-style:dashed}

.nsf-fb-card-msg{font-size:14px;font-weight:500;color:#080f3d;text-align:left}

.nsf-fb-face--full .nsf-fb-filename{font-size:14px;font-weight:600;color:#1d2327;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

.nsf-fb-ico-upload{position:relative;width:40px;height:40px;flex-shrink:0;border:2px dashed #7eb8e0;border-radius:50%;box-sizing:border-box;background:linear-gradient(180deg,#fff 0%,#f0f7fc 100%)}

.nsf-fb-ico-upload::after{content:"";position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid #5a9bc9}

.nsf-fb-ico-plus{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;border:2px solid #0666dd;background:transparent;color:#0666dd;font-size:18px;font-weight:700;line-height:1;box-sizing:border-box}

.nsf-fb-ico-check{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#22a756;color:#fff;font-size:16px;font-weight:700;line-height:1}

.nsf-fb-clear{display:grid;place-items:center;width:40px;height:40px;padding:0;border:none;border-radius:8px;background:transparent;color:#d62828;cursor:pointer;flex-shrink:0;transition:background .12s ease}

.nsf-fb-clear:hover{background:rgba(214,40,40,.08)}

.nsf-fb-ico-trash{display:block;width:22px;height:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d62828' stroke-width='2'%3E%3Cpath d='M3 6h18M8 6V4h8v2M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M10 11v6M14 11v6'/%3E%3C/svg%3E") center/contain no-repeat}

.nsf-file-bundle-row-actions{display:flex;align-items:center;padding-top:0}

.nsf-file-bundle-remove{min-width:36px;height:36px;padding:0;line-height:1;border:1px solid #c3c4c7;border-radius:6px;background:#fff;color:#50575e;cursor:pointer;font-size:18px}

.nsf-file-bundle-remove:hover{background:#f0f0f1}

.nsf-file-bundle-remove:disabled{opacity:.45;cursor:not-allowed}

.nsf-file-bundle-add-wrap{margin:14px 0 0}

.nsf-field-file-bundle--ui-m2 .nsf-file-bundle-add-wrap{display:none!important}

/* File bundle — mode d’affichage 2 (bandeau + cartes compactes) */

.nsf-field.nsf-field-invalid > .nsf-field-label, .nsf-field.nsf-field-erreur > .nsf-field-label {

    color: #d62828;

    font-weight: 600;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add{

    width:100%;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:16px;

    margin:4px 0 18px;

    padding:16px 20px;

    border:none;

    border-radius:14px;

    background:linear-gradient(180deg,#e8f2ff 0%,#d4e8ff 100%);

    color:#063d8f;

    font-size:16px;

    font-weight:600;

    cursor:pointer;

    box-sizing:border-box;

    text-align:left;

    box-shadow:0 1px 0 rgba(255,255,255,.6) inset;

    transition:box-shadow .15s ease,transform .08s ease;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add:hover{box-shadow:0 4px 18px rgba(6,102,221,.2)}

.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add:focus-visible{outline:2px solid #0666dd;outline-offset:2px}

.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add-text{flex:1;min-width:0;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add--has-file .nsf-fb-m2-global-add-text{font-weight:600}

.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add-ico{

    width:48px;height:48px;flex-shrink:0;border-radius:12px;background:#fff;

    border:2px solid #7eb8e0;box-sizing:border-box;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='6' y='4' width='20' height='24' rx='2' fill='%23e8f2ff' stroke='%230666dd' stroke-width='1.5'/%3E%3Cpath d='M10 12h12M10 16h8' stroke='%23666' stroke-width='1.2'/%3E%3Ccircle cx='24' cy='8' r='6' fill='%230666dd'/%3E%3Cpath d='M24 5.5v5M21.5 8h5' stroke='%23fff' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");

    background-repeat:no-repeat;background-position:center;background-size:70% 70%;

}

.nsf-field-file-bundle--ui-m2 .nsf-file-bundle-rows--m2{

    display:flex;flex-direction:row;flex-wrap:wrap;gap:14px 16px;margin-top:0;

    align-items:flex-start;

}

.nsf-field-file-bundle--ui-m2 .nsf-file-bundle-row--m2{

    flex:0 1 148px;max-width:160px;min-width:120px;margin:0;

}

.nsf-field-file-bundle--ui-m2 .nsf-file-bundle-row--dynamic{

    display:grid;

    grid-template-columns:minmax(0,160px) auto;

    gap:8px;

    align-items:start;

    flex:0 1 auto;

    max-width:220px;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-row-stack{gap:8px}

.nsf-field-file-bundle--ui-m2 .nsf-fb-card{min-height:0}

.nsf-field-file-bundle--ui-m2 .nsf-fb-face{

    min-height:104px;padding:10px 10px 12px;border-radius:12px;box-sizing:border-box;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-face--empty{

    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;

    border-style:dashed;border-color:#9eb4d8;background:#f5f8fd;

    grid-template-columns:unset;

}

/*

 * File bundle mode 2 — icônes par type de fichier (thème / surcharge)

 * -----------------------------------------------------------------

 * Après sélection d’un fichier, le slot porte data-nsf-fb-ext="pdf" (extension seule, minuscule).

 * Définissez vos background-image dans le thème (ex. themes/euroweb-child ou main.css) :

 *

 * .nsf-field-file-bundle--ui-m2 [data-nsf-fb-slot][data-nsf-fb-ext="pdf"] .nsf-fb-face--full .nsf-fb-m2-doc-ico { }

 * .nsf-field-file-bundle--ui-m2 [data-nsf-fb-slot][data-nsf-fb-ext="pdf"] .nsf-fb-face--empty .nsf-fb-m2-doc-ico--muted { }

 * (répéter pour jpg, png, doc, etc.)

 */

.nsf-field-file-bundle--ui-m2 .nsf-fb-face--empty .nsf-fb-m2-doc-ico--muted{

    width:36px;height:36px;opacity:.55;

    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%239aa3b2' d='M6 2h9l5 5v15a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z'/%3E%3Cpath fill='%23fff' d='M14 2v5h5' opacity='.35'/%3E%3C/svg%3E") center/contain no-repeat;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-plus-ico{

    width:26px;height:26px;display:grid;place-items:center;border-radius:50%;

    border:2px solid #0666dd;color:#0666dd;font-size:16px;font-weight:700;line-height:1;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full{

    display:grid;

    grid-template-columns:1fr auto;

    grid-template-rows:auto minmax(0,1fr);

    gap:6px 8px;

    align-items:start;

    border-style:solid;border-color:#b8d0f0;background:#eef4ff;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full .nsf-fb-m2-doc-ico{

    width:32px;height:32px;

    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230666dd' d='M6 2h9l5 5v15a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z'/%3E%3Cpath fill='%23fff' d='M14 2v5h5' opacity='.4'/%3E%3C/svg%3E") center/contain no-repeat;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full .nsf-fb-clear.nsf-fb-m2-clear{

    width:28px;height:28px;padding:0;border:none;border-radius:8px;

    background:#c53030;color:#fff;font-weight:700;font-size:16px;line-height:1;

    display:grid;place-items:center;align-self:start;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full .nsf-fb-clear.nsf-fb-m2-clear:hover{background:#9b2c2c}

.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full .nsf-fb-filename{

    grid-column:1 / -1;

    font-size:12px;font-weight:600;color:#1d2327;

    text-align:center;white-space:normal;word-break:break-word;line-height:1.25;

    align-self:end;padding-top:4px;

}

.nsf-field-file-bundle--ui-m2 .nsf-fb-nom-input{

    padding:8px 10px!important;font-size:13px!important;border-radius:8px!important;

}

.nsf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Stepper progression (segments regroupant plusieurs étapes builder) */

.nsf-step-progress{margin:0 0 20px;padding:16px 14px;border-radius:12px;background:#eef2f8;box-sizing:border-box;width:100%;max-width:100%}

.nsf-step-progress__list {

    display: flex;

    list-style: none;

    margin: 0;

    padding: 0;

    gap: 0;

    -webkit-overflow-scrolling: touch;

    justify-content: space-between;

}

.nsf-step-progress__item {

    position: relative;

    display: flex;

    align-items: center;

    flex: 1 1 0;

    min-width: auto;

    margin: 0;

    padding: 0;

    flex: 0 0 auto;

}

.nsf-step-progress__item:not(:last-child)::after {

    content: "";

    position: absolute;

    left: calc(50% + 18px);

    right: -50%;

    height: 1px;

    background: #717171;

    z-index: 0;

}

.nsf-step-progress__item.is-done:not(:last-child)::after{background:#080f3d}

.nsf-step-progress__track{position:relative;z-index:1;display:flex;align-items:center;flex-shrink:0}

.nsf-step-progress__circle{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid #9aa3b2;background:#fff;color:#6b7280;font-size:14px;font-weight:700;line-height:1;box-sizing:border-box;transition:background .15s ease,border-color .15s ease,color .15s ease}

.nsf-step-progress__label{margin-left:10px;font-size:14px;font-weight:500;color:#6b7280;line-height:1.25;min-width:0}

.nsf-step-progress__item.is-active .nsf-step-progress__circle{background:#080f3d;border-color:#080f3d;color:#fff}

.nsf-step-progress__item.is-active .nsf-step-progress__label{color:#080f3d;font-weight:700}

.nsf-step-progress__item.is-done .nsf-step-progress__circle{background:#080f3d;border-color:#080f3d;color:#fff}

.nsf-step-progress__item.is-done .nsf-step-progress__label{color:#6b7280;font-weight:500}

.nsf-step-progress__item.is-step-skipped{display:none}

@media (max-width:600px){

    .nsf-step-progress__label{font-size:12px}

    .nsf-step-progress__circle{width:30px;height:30px;font-size:13px}

}

.nsf-field input.nsf-nice-search__input {

    border: none !important;

    padding: 0 !important;

}