/* Casaque – Demande de devis. Hérite de la police du thème. */
.cdv-wrap{margin:18px 0 0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.cdv-wrap .cdv-open{
	appearance:none;cursor:pointer;font:inherit;font-weight:600;font-size:14px;
	display:inline-flex!important;align-items:center;justify-content:center;text-align:center;
	box-sizing:border-box;height:auto!important;min-height:48px;margin:0!important;
	line-height:1.2!important;padding:0 32px!important;
	border-radius:50px;border:1px solid #222;background:transparent;color:#222;
	transition:background .2s,color .2s,border-color .2s;
}
.cdv-wrap .cdv-open:hover,.cdv-wrap .cdv-open:focus-visible{background:#222;color:#fff}
.cdv-note{font-size:13px;color:#8a8a8a}

.cdv-lock{overflow:hidden}
.cdv-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .18s}
.cdv-modal[hidden]{display:none}
.cdv-modal.is-open{opacity:1}
.cdv-backdrop{position:absolute;inset:0;background:rgba(20,24,28,.55)}
.cdv-dialog{
	position:relative;width:100%;max-width:640px;max-height:calc(100vh - 40px);overflow:auto;
	background:#fff;color:#222;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.25);
	transform:translateY(12px);transition:transform .2s;
}
.cdv-modal.is-open .cdv-dialog{transform:none}
.cdv-body{padding:36px 36px 32px}
.cdv-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;background:transparent;color:#222;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cdv-x:hover{background:#f2f2f2}

.cdv-title{margin:0 0 6px;font-size:24px;line-height:1.2;font-weight:700;color:#222}
.cdv-sub{margin:0 0 24px;font-size:14px;line-height:1.5;color:#777;max-width:48ch}

.cdv-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cdv-full{grid-column:1/-1}
.cdv-field{margin:0;padding:0;border:0;min-width:0}
.cdv-field label,.cdv-field legend{display:block;margin:0 0 6px;padding:0;font-size:13px;font-weight:600;color:#222}
.cdv-opt{font-weight:400;color:#999}
.cdv-field input[type=text],.cdv-field input[type=email],.cdv-field input[type=tel],.cdv-field input[type=number],.cdv-field textarea{
	width:100%;box-sizing:border-box;margin:0;font:inherit;font-size:14px;color:#222;
	padding:11px 14px;border:1px solid #cfcfcf;border-radius:0;background:#fff;box-shadow:none;
	transition:border-color .15s,box-shadow .15s;
}
.cdv-field textarea{resize:vertical;min-height:84px}
.cdv-field select{width:100%;box-sizing:border-box;margin:0;font:inherit;font-size:14px;color:#222;padding:11px 14px;height:auto;min-height:44px;border:1px solid #cfcfcf;border-radius:0;background-color:#fff;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.cdv-field select:focus{outline:0;border-color:var(--cdv-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--cdv-accent) 22%,transparent)}
.cdv-field select.is-invalid{border-color:#d63638}
.cdv-field input:focus,.cdv-field textarea:focus{outline:0;border-color:var(--cdv-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--cdv-accent) 22%,transparent)}
.cdv-field input[readonly]{background:#f6f6f6;color:#555}
.cdv-field input.is-invalid,.cdv-field textarea.is-invalid{border-color:#d63638}

.cdv-sizes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.cdv-size{display:flex;flex-direction:column;gap:4px;margin:0!important;font-weight:400!important}
.cdv-size span{font-size:12px;font-weight:600;color:#555}
.cdv-size input{text-align:center;padding:9px 6px!important}
.cdv-size input::-webkit-inner-spin-button{margin:0}
.cdv-total{margin:10px 0 0;font-size:13px;color:#777}
.cdv-total strong{color:var(--cdv-accent);font-size:15px}

.cdv-msg{grid-column:1/-1;margin:0;padding:10px 14px;font-size:13px;color:#a12a2c;background:#fcf0f0;border-left:3px solid #d63638}
.cdv-msg[hidden]{display:none}

.cdv-modal .cdv-submit{
	grid-column:1/-1;appearance:none;cursor:pointer;font:inherit;font-size:14px;font-weight:600;
	display:inline-flex!important;align-items:center;justify-content:center;text-align:center;
	box-sizing:border-box;height:auto!important;min-height:50px;margin:0!important;
	line-height:1.2!important;padding:0 36px!important;
	border:0;border-radius:50px;background:#222;color:#fff;justify-self:start;
	transition:background .2s,opacity .2s;
}
.cdv-modal .cdv-submit:hover,.cdv-modal .cdv-submit:focus-visible{background:var(--cdv-accent);color:#fff}
.cdv-modal .cdv-submit[disabled]{opacity:.55;cursor:progress}

.cdv-done{text-align:center;padding:20px 0 6px;color:var(--cdv-accent)}
.cdv-done[hidden]{display:none}
.cdv-done h3{margin:14px 0 6px;font-size:22px;color:#222}
.cdv-done p{margin:0 0 22px;color:#777;font-size:14px}
.cdv-done .cdv-submit{justify-self:center}


/* Logo + broderie / impression */
.cdv-field label.cdv-file{position:relative;display:flex;align-items:center;gap:12px;margin:0;padding:8px;border:1px dashed #b5b5b5;background:#fafafa;cursor:pointer;font-weight:400;transition:border-color .15s,background .15s}
.cdv-file:hover{border-color:var(--cdv-accent);background:#fff}
.cdv-file:focus-within{border-color:var(--cdv-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--cdv-accent) 22%,transparent)}
.cdv-file input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.cdv-file-btn{flex:none;padding:8px 16px;border-radius:50px;border:1px solid #222;font-size:13px;font-weight:600;color:#222;background:#fff}
.cdv-file-name{min-width:0;font-size:13px;color:#8a8a8a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cdv-file.has-file .cdv-file-name{color:#222;font-weight:600}
.cdv-choices{display:flex;gap:10px;flex-wrap:wrap}
.cdv-field label.cdv-choice{position:relative;display:inline-block;margin:0;font-weight:400;cursor:pointer}
.cdv-choice input{position:absolute;opacity:0;width:1px;height:1px}
.cdv-choice span{display:inline-block;padding:10px 24px;border:1px solid #cfcfcf;border-radius:50px;font-size:14px;font-weight:600;color:#222;background:#fff;transition:background .15s,color .15s,border-color .15s}
.cdv-choice:hover span{border-color:#222}
.cdv-choice input:checked + span{background:#222;border-color:#222;color:#fff}
.cdv-choice input:focus-visible + span{box-shadow:0 0 0 3px color-mix(in srgb,var(--cdv-accent) 35%,transparent)}

/* Champ piège anti-spam */
.cdv-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

@media (max-width:600px){
	.cdv-modal{padding:0;align-items:flex-end}
	.cdv-dialog{max-width:none;max-height:92vh;border-radius:14px 14px 0 0}
	.cdv-body{padding:28px 20px 24px}
	.cdv-form{grid-template-columns:1fr}
	.cdv-modal .cdv-submit{justify-self:stretch;width:100%}
}
@media (prefers-reduced-motion:reduce){
	.cdv-modal,.cdv-dialog{transition:none}
}

/* Lignes couleur + tailles */
.cdv-lines{display:block}
.cdv-line{margin:0 0 12px;padding:14px;border:1px solid #e3e3e3;background:#fafafa}
.cdv-line-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}
.cdv-line-title{font-size:13px;font-weight:700;color:#222}
.cdv-modal .cdv-line-remove{margin:0;padding:0;border:0;background:none;font:inherit;font-size:12px;color:#a12a2c;text-decoration:underline;cursor:pointer;box-shadow:none}
.cdv-modal .cdv-line-remove[hidden]{display:none}
.cdv-line .cdv-field{margin:0 0 10px}
.cdv-line .cdv-field:last-child{margin-bottom:0}
.cdv-lines-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:-4px}
.cdv-lines-foot .cdv-total{margin:0}
.cdv-modal .cdv-add{appearance:none;cursor:pointer;font:inherit;font-size:13px;font-weight:600;display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box;height:auto!important;min-height:40px;margin:0!important;padding:0 20px!important;line-height:1.2!important;border:1px solid #222;border-radius:50px;background:transparent;color:#222;transition:background .2s,color .2s}
.cdv-modal .cdv-add:hover,.cdv-modal .cdv-add:focus-visible{background:#222;color:#fff}
.cdv-modal .cdv-add[hidden]{display:none!important}
