/* Formulaires d'offre et de plaquette, pages légales */
.tf-wrap { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.tf { flex: 3 1 560px; min-width: 0; background: #FFFFFF; border: 1px solid #E4DED8; padding: 0 36px; box-sizing: border-box; }
.tf-sec { padding: 32px 0; display: flex; flex-wrap: wrap; gap: 16px 40px; border-top: 1px solid #E4DED8; }
.tf-sec:first-of-type, .tf-hp + .tf-sec { border-top: 0; }
.tf-sec-head { flex: 1 1 200px; min-width: 0; }
.tf-num { margin: 0 0 4px; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 700; font-size: 1.8rem; line-height: 1; color: #47141E; }
.tf-sec-title { margin: 0 0 6px; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 700; font-size: 1.5rem; line-height: 1.15; }
.tf-sec-desc { margin: 0; color: #4A4542; font-size: 0.92rem; }
.tf-sec-body { flex: 3 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.tf-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.tf-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.tf-span { grid-column: 1 / -1; }
.tf-label { margin: 0; font-weight: 600; font-size: 0.95rem; }
.tf-star { color: #B3261E; }
.tf-input { font: inherit; padding: 11px 14px; background: #FFFFFF; border: 1px solid #B9AFA7; border-radius: 2px; min-height: 48px; box-sizing: border-box; width: 100%; color: #1C1A19; }
textarea.tf-input { resize: vertical; }
.tf-input:focus-visible, .tf-opt:focus-visible, .tf-submit:focus-visible { outline: 2px solid #47141E; outline-offset: 2px; }
.tf-input.is-bad { border-color: #B3261E; }
.tf-err { font-size: 0.88rem; color: #B3261E; font-weight: 600; }
.tf-group { display: flex; flex-direction: column; gap: 8px; }
.tf-opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 0 24px; }
.tf-opt { font: inherit; font-size: 0.98rem; background: transparent; border: 0; padding: 7px 0; min-height: 44px; cursor: pointer; display: inline-flex; align-items: center; gap: 12px; text-align: left; color: #1C1A19; }
.tf-box { flex: none; width: 18px; height: 18px; box-sizing: border-box; border: 1px solid #8F857E; background: #FFFFFF; color: #FFFFFF; font-size: 12px; line-height: 16px; text-align: center; font-weight: 700; }
.tf-radio { border-radius: 50%; }
.tf-opt[aria-pressed="true"] .tf-box { background: #47141E; border-color: #47141E; }
.tf-opt[aria-pressed="true"] .tf-box::after { content: "✓"; }
.tf-other { max-width: 520px; margin-top: 4px; }
.tf-foot { border-top: 1px solid #E4DED8; padding: 28px 0 36px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.tf-submit, .tf-home { font: inherit; font-weight: 600; color: #FFFFFF; background: #47141E; border: 0; border-radius: 2px; padding: 15px 32px; min-height: 50px; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; box-sizing: border-box; }
.tf-submit:hover, .tf-home:hover { background: #2E0C13; color: #FFFFFF; }
.tf-submit:disabled { opacity: 0.6; cursor: progress; }
.tf-note { color: #4A4542; font-size: 0.92rem; }
.tf-banner { margin: 0; flex: 1 1 100%; padding: 14px 18px; background: #FBEAE9; color: #8C1D18; font-weight: 600; }
.tf-privacy { margin: 0; flex: 1 1 100%; color: #4A4542; font-size: 0.85rem; }
.tf-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.tf-preview { flex: 2 1 300px; min-width: 0; position: sticky; top: 24px; background: #2E0C13; color: #FFFFFF; padding: 32px; box-sizing: border-box; display: flex; flex-direction: column; gap: 24px; }
.tf-pv-eye { margin: 0; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.75rem; color: #F2C4CA; }
.tf-plate { background: #E4E1DC; border-radius: 2px; padding: 24px 20px; box-shadow: inset 0 0 0 1px #BDB7AE, 0 10px 28px rgba(0,0,0,0.4); text-align: center; color: #1C1A19; }
.tf-pv-name { margin: 0 0 6px; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 700; font-size: 1.7rem; line-height: 1.15; letter-spacing: 0.05em; text-transform: uppercase; overflow-wrap: anywhere; }
.tf-pv-bal { margin: 0; font-size: 0.85rem; letter-spacing: 0.14em; text-transform: uppercase; color: #4A4542; }
.tf-pv-info { display: flex; flex-direction: column; gap: 6px; font-size: 0.95rem; color: #DCD5CF; }
.tf-pv-info p { margin: 0; }
.tf-done { background: #F5F2EE; border: 1px solid #E4DED8; padding: 48px 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.tf-done-icon { flex: none; width: 56px; height: 56px; background: #47141E; color: #FFFFFF; font-size: 28px; display: flex; align-items: center; justify-content: center; }
.tf-done-text { flex: 1 1 300px; min-width: 0; }
.tf-done-text p { margin: 0; color: #4A4542; }
.tf-done-text .tf-done-title { margin: 0 0 4px; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 700; font-size: 2rem; line-height: 1.1; color: #1C1A19; }
.tf-done-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.tf-again { font: inherit; font-weight: 600; color: #1C1A19; background: transparent; border: 1px solid #1C1A19; border-radius: 2px; padding: 12px 24px; min-height: 48px; cursor: pointer; }
@media (max-width: 600px) { .tf { padding: 0 20px; } .tf-preview { position: static; } }

/* Pages légales */
.tus-legal h2 { margin: 40px 0 12px; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 700; font-size: 1.8rem; line-height: 1.15; }
.tus-legal p, .tus-legal li { color: #4A4542; }
.tus-legal ul { padding-left: 20px; }
.tus-legal .tus-note { background: #F5F2EE; border: 1px solid #E4DED8; padding: 16px 18px; font-size: 0.9rem; }
