:root {
  --navy: #0b3a63;
  --navy-dark: #082943;
  --navy-soft: #eaf2f8;
  --gold: #bd7d00;
  --gold-soft: #fff7e6;
  --ink: #17212b;
  --muted: #5c6976;
  --line: #d6dde4;
  --line-dark: #aeb9c3;
  --bg: #f3f6f8;
  --surface: #ffffff;
  --success: #1f6f43;
  --success-soft: #e9f6ef;
  --warning: #8a5a00;
  --warning-soft: #fff6dd;
  --danger: #a52b2b;
  --danger-soft: #fff0f0;
  --shadow: 0 8px 26px rgba(18, 43, 64, 0.08);
  --radius: 12px;
  --font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.48;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.noscript { padding: 14px; background: var(--danger-soft); color: var(--danger); text-align: center; font-weight: 700; }

.app-header {
  background: linear-gradient(120deg, var(--navy-dark), var(--navy));
  color: white;
  border-bottom: 5px solid var(--gold);
}
.header-inner {
  width: min(1440px, calc(100% - 40px));
  margin: 0 auto;
  padding: 30px 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.eyebrow {
  margin: 0 0 7px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #f0c76e;
}
h1 { margin: 0; font-size: clamp(25px, 3vw, 38px); line-height: 1.15; }
.subtitle { max-width: 820px; margin: 10px 0 0; color: #d9e8f3; }
.header-actions { display: flex; gap: 10px; flex: 0 0 auto; }

.layout {
  width: min(1440px, calc(100% - 40px));
  margin: 28px auto 44px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
}
.content { min-width: 0; }

.notice {
  border-radius: var(--radius);
  padding: 15px 18px;
  margin-bottom: 18px;
  border: 1px solid;
}
.notice-info { background: var(--navy-soft); border-color: #b8d2e5; color: #173d5b; }

.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 22px;
  margin-bottom: 18px;
}
.card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 15px;
  margin-bottom: 17px;
  border-bottom: 1px solid var(--line);
}
.card-heading > div { display: flex; align-items: center; gap: 11px; }
.card h2 { margin: 0; font-size: 20px; color: var(--navy-dark); }
.step {
  display: inline-grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 50%;
  background: var(--gold);
  color: white;
  font-weight: 800;
  font-size: 14px;
}
.section-help { margin: -5px 0 16px; color: var(--muted); font-size: 13px; }
.top-gap { margin-top: 17px; }

.form-grid { display: grid; gap: 15px; }
.grid-1 { grid-template-columns: 1fr; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field-span-2 { grid-column: span 2; }
.field-span-3 { grid-column: span 3; }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; position: relative; }
.field > span { font-size: 13px; font-weight: 700; color: #314252; }
.field b { color: var(--danger); }
.field small { color: var(--muted); font-size: 12px; }
input, select, textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line-dark);
  border-radius: 8px;
  background: white;
  color: var(--ink);
  padding: 9px 11px;
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
textarea { resize: vertical; min-height: 76px; }
input:focus, select:focus, textarea:focus {
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(11,58,99,.13);
}
input.invalid, select.invalid, textarea.invalid { border-color: var(--danger); background: var(--danger-soft); }
input[disabled], select[disabled] { background: #edf1f4; color: #77818a; }

.btn {
  border: 1px solid transparent;
  border-radius: 8px;
  min-height: 40px;
  padding: 9px 15px;
  font-weight: 750;
  transition: transform .12s ease, background .14s ease, border-color .14s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:disabled { cursor: not-allowed; opacity: .55; transform: none; }
.btn-primary { background: var(--gold); color: white; border-color: #a76e00; }
.btn-primary:hover { background: #a96f00; }
.btn-secondary { background: white; color: var(--navy); border-color: #9db4c6; }
.btn-secondary:hover { background: var(--navy-soft); }
.btn-ghost { background: transparent; color: white; border-color: rgba(255,255,255,.42); }
.btn-ghost:hover { background: rgba(255,255,255,.10); }
.btn-small { min-height: 34px; padding: 6px 11px; font-size: 13px; }
.btn-large { min-height: 49px; padding: 13px 21px; }
.btn-danger { background: white; color: var(--danger); border-color: #d7aaaa; }
.icon-btn { width: 38px; min-width: 38px; padding: 7px; }

.dynamic-list { display: flex; flex-direction: column; gap: 14px; }
.dynamic-item {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 16px;
  background: #fbfcfd;
}
.item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.item-head strong { color: var(--navy-dark); }
.item-meta { color: var(--muted); font-size: 12px; font-weight: 500; }
.empty-state {
  padding: 17px;
  border: 1px dashed #b8c2ca;
  border-radius: 9px;
  color: var(--muted);
  text-align: center;
  background: #fafbfc;
}

.person-fields { grid-template-columns: 160px minmax(0, 1.25fr) minmax(0, 1fr) minmax(180px, .72fr); }
.property-fields { grid-template-columns: minmax(250px, 1.7fr) minmax(230px, 1.3fr) 170px 170px; }
.property-address { grid-column: span 2; }
.property-designation { grid-column: span 2; }
.property-lookup-row { display: flex; gap: 8px; }
.property-lookup-row input { flex: 1; }
.address-suggestions {
  position: absolute;
  z-index: 30;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
  background: white;
  border: 1px solid var(--line-dark);
  border-radius: 8px;
  box-shadow: 0 11px 26px rgba(10,35,55,.16);
  overflow: hidden;
  max-height: 270px;
  overflow-y: auto;
}
.suggestion {
  display: block;
  width: 100%;
  border: 0;
  border-bottom: 1px solid #edf0f2;
  background: white;
  padding: 10px 12px;
  text-align: left;
  color: var(--ink);
}
.suggestion:hover, .suggestion:focus { background: var(--navy-soft); }
.suggestion:last-child { border-bottom: 0; }
.suggestion strong { display: block; font-size: 13px; }
.suggestion small { color: var(--muted); }
.lookup-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 700;
  background: #eef1f4;
  color: #53616d;
}
.lookup-badge.ok { background: var(--success-soft); color: var(--success); }
.lookup-badge.error { background: var(--danger-soft); color: var(--danger); }
.lookup-badge.loading { background: var(--warning-soft); color: var(--warning); }

.spf-status {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 15px;
}
.spf-status p { margin: 3px 0 0; color: var(--muted); }
.status-icon {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  height: 34px;
  border-radius: 50%;
  font-weight: 900;
}
.spf-status.pending { background: #f7f9fa; }
.spf-status.pending .status-icon { background: #e3e8ec; color: #596875; }
.spf-status.loading { background: var(--warning-soft); border-color: #ead195; }
.spf-status.loading .status-icon { background: #efd797; color: #704900; }
.spf-status.success { background: var(--success-soft); border-color: #abd9bd; }
.spf-status.success .status-icon { background: #bfe5ce; color: var(--success); }
.spf-status.error { background: var(--danger-soft); border-color: #e1b1b1; }
.spf-status.error .status-icon { background: #f0caca; color: var(--danger); }
.spf-contact { margin-top: 7px; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; }
.manual-panel { margin-top: 15px; padding: 16px; background: #f8fafb; border: 1px dashed #a9b5bf; border-radius: 9px; }
.spf-directory-panel {
  margin-bottom: 17px;
  padding: 14px;
  border: 1px solid #c7d5df;
  border-radius: 9px;
  background: white;
}
.spf-directory-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 13px;
}
.spf-directory-head > div { display: flex; flex-direction: column; gap: 3px; }
.spf-directory-head strong { color: var(--navy-dark); }
.spf-directory-head small { color: var(--muted); font-size: 12px; }
.directory-meta {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.directory-meta.loading { color: var(--warning); }
.directory-meta.success { color: var(--success); }
.directory-meta.warning { color: var(--warning); }
.directory-meta.error { color: var(--danger); }

.option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.choice-card {
  display: flex;
  gap: 11px;
  border: 1px solid var(--line-dark);
  border-radius: 9px;
  padding: 13px;
  cursor: pointer;
}
.choice-card.selected { border-color: var(--navy); background: var(--navy-soft); }
.choice-card input { width: 18px; min-height: 18px; margin: 3px 0 0; }
.choice-card span { display: flex; flex-direction: column; gap: 3px; }
.choice-card small { color: var(--muted); }
.check-line { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.check-line input { width: 18px; min-height: 18px; margin-top: 2px; }

.cost-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid #d9bc7b;
  background: var(--gold-soft);
  border-radius: 10px;
  padding: 16px;
}
.cost-panel > div { display: flex; flex-direction: column; }
.cost-label { color: #6d4a07; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.cost-panel strong { color: #704900; font-size: 27px; }
.cost-panel p { margin: 0; color: #6b5529; text-align: right; }

.card-actions { display: flex; align-items: center; justify-content: space-between; gap: 25px; border-color: #c7a45c; }
.card-actions p { margin: 6px 0 0; color: var(--muted); }

.sidebar { min-width: 0; }
.sticky { position: sticky; top: 18px; }
.summary-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 20px;
}
.summary-card h2 { margin: 0 0 15px; font-size: 18px; color: var(--navy-dark); }
.checklist { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.checklist li { display: flex; align-items: center; gap: 9px; color: #52606b; font-size: 13px; }
.dot { width: 10px; height: 10px; border-radius: 50%; background: #b7c0c7; flex: 0 0 auto; }
.checklist li.ok { color: var(--success); }
.checklist li.ok .dot { background: var(--success); }
.checklist li.bad { color: var(--danger); }
.checklist li.bad .dot { background: var(--danger); }
.summary-data { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--line); }
.summary-data div { text-align: center; }
.summary-data span { display: block; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.summary-data strong { display: block; margin-top: 3px; color: var(--navy-dark); font-size: 17px; }
.mini-note { margin-top: 17px; padding: 12px; background: #f5f7f8; border-radius: 8px; font-size: 12px; }
.mini-note p { margin: 4px 0 0; color: var(--muted); }

.toast {
  position: fixed;
  z-index: 100;
  right: 22px;
  bottom: 22px;
  max-width: 440px;
  padding: 14px 16px;
  border-radius: 10px;
  box-shadow: 0 12px 34px rgba(0,0,0,.2);
  background: var(--navy-dark);
  color: white;
  font-weight: 650;
}
.toast.error { background: #842525; }
.toast.success { background: #175c37; }

.footer {
  border-top: 1px solid var(--line);
  padding: 22px 20px 34px;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
}
.footer p { margin: 4px 0; }


/* Présentation publique et transparence */
.hero-copy { max-width: 900px; }
.hero-tagline {
  margin: 9px 0 0;
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.25;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: .01em;
}
.hero-subtitle { max-width: 900px; margin: 10px 0 0; color: #d9e8f3; }
.trust-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.trust-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: #eef7fd;
  font-size: 12px;
  font-weight: 750;
}
.workflow-strip {
  width: min(1440px, calc(100% - 40px));
  margin: 18px auto -6px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
}
.workflow-step {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 15px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(18,43,64,.05);
}
.workflow-number {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--navy);
  color: white;
  font-weight: 850;
  flex: 0 0 auto;
}
.workflow-step strong { display:block; color:var(--navy-dark); font-size:13px; }
.workflow-step span:last-child { color:var(--muted); font-size:12px; }
.profile-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.privacy-inline { margin-top: 8px; color: var(--muted); font-size: 12px; }
.footer {
  text-align: left;
  background: #eef2f5;
  padding: 32px 20px 40px;
}
.footer-inner { width: min(1200px, calc(100% - 20px)); margin: 0 auto; }
.footer-intro { text-align:center; margin-bottom:20px; }
.footer-intro strong { display:block; color:var(--navy-dark); font-size:16px; margin-bottom:5px; }
.footer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.footer-panel {
  background:white;
  border:1px solid var(--line);
  border-radius:10px;
  padding:15px 16px;
}
.footer-panel h3 { margin:0 0 7px; color:var(--navy-dark); font-size:14px; }
.footer-panel p { margin:5px 0; line-height:1.55; }
.legal-details { margin-top:16px; border-top:1px solid var(--line); padding-top:14px; }
.legal-details details { background:white; border:1px solid var(--line); border-radius:9px; margin-top:8px; }
.legal-details summary { cursor:pointer; padding:12px 14px; color:var(--navy-dark); font-weight:800; }
.legal-details .detail-body { padding:0 14px 14px; color:var(--muted); line-height:1.6; }
.legal-details .detail-body p { margin:7px 0; }
.legal-warning { color:#7b5200; background:#fff8e8; border:1px solid #ead39c; border-radius:8px; padding:10px 12px; margin:10px 0; }
.footer-actions { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:16px; }
.footer-bottom { margin-top:18px; text-align:center; color:#71808c; font-size:11px; }

@media (max-width: 760px) {
  .workflow-strip { width:min(100% - 20px, 1440px); grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .profile-actions { width:100%; justify-content:stretch; }
  .profile-actions .btn { flex:1; }
}

@media (max-width: 1120px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { order: -1; }
  .sticky { position: static; }
  .summary-card { display: grid; grid-template-columns: 1fr auto; gap: 15px 24px; align-items: start; }
  .summary-card h2 { grid-column: 1 / -1; }
  .summary-data { min-width: 300px; margin-top: 0; padding-top: 0; border-top: 0; }
  .mini-note { grid-column: 1 / -1; margin-top: 0; }
  .person-fields, .property-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .property-address, .property-designation { grid-column: span 2; }
}

@media (max-width: 760px) {
  .header-inner { width: min(100% - 24px, 1440px); flex-direction: column; align-items: flex-start; padding: 23px 0; }
  .header-actions { width: 100%; }
  .header-actions .btn { flex: 1; }
  .layout { width: min(100% - 20px, 1440px); margin-top: 14px; }
  .card { padding: 16px; }
  .card-heading { align-items: flex-start; }
  .card-heading > div { align-items: flex-start; }
  .grid-2, .grid-3, .person-fields, .property-fields, .option-grid { grid-template-columns: 1fr; }
  .field-span-2, .field-span-3, .property-address, .property-designation { grid-column: span 1; }
  .cost-panel, .card-actions { flex-direction: column; align-items: stretch; }
  .cost-panel p { text-align: left; }
  .summary-card { display: block; }
  .summary-data { min-width: 0; margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--line); }
  .mini-note { margin-top: 17px; }
  .card-actions .btn { width: 100%; }
  .spf-directory-head { flex-direction: column; align-items: stretch; }
  .spf-directory-head .btn { width: 100%; }
}


/* Parcours simplifié 3233.fr - version 2 */
.notice-warning { background: var(--warning-soft); border-color: #e7cc8d; color: #684500; }
.notice-success { background: var(--success-soft); border-color: #abd9bd; color: var(--success); }
.intro-notice { display:flex; align-items:flex-start; gap:10px; }
.intro-notice strong { color:var(--navy-dark); }

.request-type-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
}
.request-type-grid.invalid { border:1px solid var(--danger); border-radius:11px; padding:6px; background:var(--danger-soft); }
.request-type-card {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:148px;
  padding:18px;
  border:1px solid var(--line-dark);
  border-radius:11px;
  background:#fff;
  cursor:pointer;
  transition:border-color .16s ease, box-shadow .16s ease, transform .12s ease, background .16s ease;
}
.request-type-card:hover { transform:translateY(-1px); border-color:#7596af; box-shadow:0 7px 18px rgba(18,43,64,.08); }
.request-type-card.selected { border:2px solid var(--navy); padding:17px; background:var(--navy-soft); box-shadow:0 0 0 3px rgba(11,58,99,.08); }
.request-type-card input { position:absolute; opacity:0; pointer-events:none; }
.request-type-icon {
  display:grid;
  place-items:center;
  width:39px;
  height:39px;
  border-radius:10px;
  background:var(--navy-soft);
  color:var(--navy);
  font-weight:900;
  font-size:19px;
}
.request-type-card.selected .request-type-icon { background:var(--navy); color:#fff; }
.request-type-card strong { color:var(--navy-dark); font-size:16px; }
.request-type-card small { color:var(--muted); line-height:1.45; }
.request-type-check { margin-top:auto; color:var(--navy); font-size:12px; font-weight:800; opacity:0; }
.request-type-card.selected .request-type-check { opacity:1; }

.profile-summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 16px;
  border:1px solid #b9d5c5;
  border-radius:10px;
  background:var(--success-soft);
}
.profile-summary-main { min-width:0; }
.profile-kicker { display:block; margin-bottom:3px; color:var(--success); font-size:11px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.profile-summary strong { display:block; color:var(--navy-dark); font-size:16px; overflow-wrap:anywhere; }
.profile-summary p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.profile-summary-actions { display:flex; flex-wrap:wrap; gap:8px; flex:0 0 auto; }
.profile-editor-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:9px; margin-top:17px; }

.compact-setting {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfcfd;
}
.compact-setting-values { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; flex:1; }
.compact-setting-values span { display:block; color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.055em; }
.compact-setting-values strong { display:block; margin-top:4px; color:var(--navy-dark); font-size:14px; }
.settings-panel { margin-top:14px; padding:16px; border:1px solid var(--line); border-radius:10px; background:#f8fafb; }
.settings-actions { display:flex; justify-content:flex-end; margin-top:13px; }

.advanced-summary { display:flex; align-items:center; gap:9px; }
.advanced-badge { display:inline-flex; align-items:center; min-height:25px; padding:4px 8px; border-radius:999px; background:#eef1f4; color:var(--muted); font-size:11px; font-weight:800; }
.advanced-badge.active { background:var(--gold-soft); color:#6d4a07; }
.advanced-panel { padding-top:2px; }
.advanced-block { padding:16px 0; border-top:1px solid var(--line); }
.advanced-block:first-child { border-top:0; padding-top:0; }
.advanced-block h3 { margin:0 0 12px; color:var(--navy-dark); font-size:15px; }
.inline-details { margin-top:12px; border:1px dashed #afbbc5; border-radius:9px; background:#fff; }
.inline-details summary { cursor:pointer; padding:11px 13px; color:var(--navy); font-weight:800; font-size:13px; }
.inline-details-body { padding:0 13px 13px; }

.property-technical { margin-top:3px; }
.property-technical .form-grid { padding-top:4px; }
.spf-status { align-items:center; }
.spf-status > div:nth-child(2) { flex:1; min-width:0; }
.spf-status p { line-height:1.42; }
.spf-contact { display:none; }
.spf-guidance { margin:10px 0 0; color:var(--muted); font-size:12px; }
.manual-panel { padding:15px; }
.manual-free-entry { margin-top:13px; }

.summary-list { display:flex; flex-direction:column; gap:0; margin-bottom:17px; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.summary-row { display:grid; grid-template-columns:105px minmax(0,1fr); gap:10px; padding:10px 12px; border-bottom:1px solid #edf0f2; background:#fff; }
.summary-row:last-child { border-bottom:0; }
.summary-row span { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.045em; }
.summary-row strong { color:var(--navy-dark); font-size:12.5px; overflow-wrap:anywhere; }
.summary-heading { margin:17px 0 10px; color:var(--navy-dark); font-size:13px; }
.summary-data { grid-template-columns:repeat(3,1fr); }

.generation-state { flex:1; }
.generation-state.ready h2 { color:var(--success); }
.generation-state.ready p { color:#315e46; }
.card-actions { align-items:center; }

.payment-note { margin-top:12px; }
.payment-note p { margin:0; }

@media (max-width: 1120px) {
  .sidebar { order: initial; }
}

@media (max-width: 760px) {
  .request-type-grid { grid-template-columns:1fr; }
  .request-type-card { min-height:0; }
  .profile-summary, .compact-setting { align-items:stretch; flex-direction:column; }
  .profile-summary-actions, .profile-editor-actions, .settings-actions { width:100%; }
  .profile-summary-actions .btn, .profile-editor-actions .btn, .settings-actions .btn, .compact-setting > .btn { width:100%; }
  .compact-setting-values { grid-template-columns:1fr; gap:12px; width:100%; }
  .summary-row { grid-template-columns:92px minmax(0,1fr); }
}


/* Explications de parcours, blocage territorial et FAQ */
.notice-danger { background:var(--danger-soft); border-color:#dfaaaa; color:#7f2020; }
.request-type-explanation { margin:14px 0 0; }
.request-type-explanation strong { color:var(--navy-dark); }
#territoryNoticeTitle { display:block; margin-bottom:4px; }

.faq-section {
  width:min(1200px, calc(100% - 40px));
  margin:8px auto 38px;
  padding:26px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.faq-header { max-width:860px; margin-bottom:20px; }
.faq-kicker { margin:0 0 5px; color:var(--gold); font-size:12px; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.faq-header h2 { margin:0; color:var(--navy-dark); font-size:clamp(23px,3vw,31px); line-height:1.2; }
.faq-intro { margin:9px 0 0; color:var(--muted); }
.faq-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.faq-item { align-self:start; border:1px solid var(--line); border-radius:10px; background:#fff; overflow:hidden; }
.faq-item summary { position:relative; cursor:pointer; list-style:none; padding:15px 48px 15px 16px; color:var(--navy-dark); font-weight:800; line-height:1.4; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--navy); font-size:22px; font-weight:700; }
.faq-item[open] summary { background:var(--navy-soft); }
.faq-item[open] summary::after { content:"−"; }
.faq-answer { padding:0 16px 16px; color:#354553; line-height:1.65; }
.faq-answer p { margin:13px 0 0; }
.faq-sources { margin:18px 0 0; padding-top:15px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.6; }
.faq-sources a { color:var(--navy); font-weight:750; }

@media (max-width:760px) {
  .faq-section { width:min(100% - 20px,1200px); padding:18px 16px; margin-bottom:24px; }
  .faq-grid { grid-template-columns:1fr; }
}



/* 3233.fr v3 - public navigation, guides and commune lookup. */
[hidden] { display:none !important; }
a { color:var(--navy); text-underline-offset:3px; }
a.btn { display:inline-flex; align-items:center; justify-content:center; text-align:center; text-decoration:none; line-height:1.4; }
a.btn-primary { color:white; }
:focus-visible { outline:3px solid #bd7d00; outline-offset:4px; }
.skip-link { position:absolute; left:16px; top:-120px; z-index:200; background:white; padding:12px; }
.skip-link:focus { top:12px; }
.site-nav { background:#fff; border-bottom:1px solid var(--line); }
.site-nav-inner { max-width:1440px; margin:auto; padding:14px 20px; display:flex; align-items:center; gap:24px; }
.site-brand { font-size:24px; font-weight:900; text-decoration:none; letter-spacing:-.06em; flex-shrink:0; color:var(--navy-dark); }
.site-brand span { color:var(--gold); }
.site-nav-links { display:flex; flex-wrap:wrap; gap:6px 8px; margin-left:auto; }
.site-nav-links a { padding:8px 10px; font-size:13px; font-weight:750; text-decoration:none; border-radius:7px; }
.site-nav-links a:hover, .site-nav-links a[aria-current] { background:var(--navy-soft); }
.hero-quicklinks { display:flex; flex-wrap:wrap; gap:9px 20px; margin-top:17px; }
.hero-quicklinks a { color:#fff; font-size:13px; }
.guides-section { width:min(1200px, calc(100% - 40px)); margin:30px auto; }
.guides-heading h2 { margin:0; color:var(--navy-dark); font-size:27px; line-height:1.2; }
.guides-heading > p:last-child { margin:9px 0 18px; color:var(--muted); }
.guides-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.guide-card { display:flex; flex-direction:column; gap:10px; border:1px solid var(--line); border-radius:12px; padding:21px; text-decoration:none; background:#fff; color:var(--ink); box-shadow:var(--shadow); }
.guide-card:hover { border-color:var(--navy); }
.guide-label { color:var(--gold); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.045em; }
.guide-card strong { color:var(--navy-dark); font-size:17px; line-height:1.3; }
.guide-card > span:not(.guide-label) { color:var(--muted); font-size:13px; }
.guide-card .guide-arrow { margin-top:auto; padding-top:12px; color:var(--navy)!important; font-weight:750; }
.article-header { background:var(--navy-dark); color:white; border-bottom:5px solid var(--gold); }
.article-header-inner { width:min(1000px,calc(100% - 40px)); margin:auto; padding:23px 0 36px; }
.breadcrumb { font-size:12px; color:#d9e8f3; margin:0 0 24px; }
.breadcrumb a { color:#d9e8f3; }
.article-header h1 { max-width:920px; font-size:clamp(27px,4vw,40px); }
.article-deck { font-size:17px; color:#d9e8f3; line-height:1.65; max-width:840px; margin:14px 0 0; }
.article-wrap { width:min(1000px,calc(100% - 40px)); margin:26px auto 34px; }
.article-content { background:#fff; border:1px solid var(--line); border-radius:12px; padding:32px 38px; line-height:1.75; }
.article-content h2 { color:var(--navy-dark); margin:32px 0 12px; font-size:25px; line-height:1.3; scroll-margin-top:20px; }
.article-content h2:first-child { margin-top:0; }
.article-content h3 { color:var(--navy); margin:22px 0 8px; font-size:19px; line-height:1.4; }
.article-content p { margin:12px 0; }
.article-content ul, .article-content ol { padding-left:24px; }
.article-content li { margin:6px 0; }
.article-content .lead { font-size:17px; color:#314252; }
.article-content .callout { margin:22px 0; padding:16px 20px; background:var(--navy-soft); border-left:4px solid var(--navy); border-radius:0 8px 8px 0; }
.article-content .callout.warning { background:var(--gold-soft); border-color:var(--gold); }
.article-content .callout p { margin:4px 0; }
.article-toc { display:flex; flex-wrap:wrap; gap:9px 17px; margin:20px 0; padding:15px 0; border-block:1px solid var(--line); font-size:13px; }
.article-cta { margin:26px 0; padding:22px; border-radius:10px; background:var(--navy-soft); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.article-cta strong { font-size:19px; color:var(--navy-dark); }
.article-cta p { margin:5px 0 0; color:var(--muted); font-size:14px; }
.article-cta .btn { flex:0 0 auto; max-width:310px; }
.table-scroll { overflow-x:auto; margin:20px 0; }
.guide-table { border-collapse:collapse; width:100%; font-size:14px; }
.guide-table th { background:var(--navy-soft); text-align:left; color:var(--navy-dark); }
.guide-table th, .guide-table td { padding:13px 15px; border-bottom:1px solid var(--line); vertical-align:top; }
.guide-table caption { text-align:left; font-size:13px; color:var(--muted); margin-bottom:8px; }
.sources-box { margin:28px 0 0; padding-top:18px; border-top:1px solid var(--line); font-size:12px; color:var(--muted); }
.sources-box p { margin:7px 0; }
.download-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:24px 0; }
.download-card { border:1px solid var(--line); border-radius:10px; padding:22px; background:#fbfcfd; }
.download-card h2 { margin:0 0 10px!important; font-size:21px; }
.download-card .btn { width:100%; margin-top:10px; }
.author-note { color:var(--muted); font-size:12px; margin:17px 0; }
.simple-footer { border-top:1px solid var(--line); padding:26px 20px; background:#eef2f5; text-align:center; font-size:12px; color:var(--muted); }
.simple-footer p { margin:6px 0; }
.spf-widget { border:1px solid #b8d2e5; border-radius:12px; padding:25px; background:var(--navy-soft); margin:22px 0; }
.spf-widget h2 { margin:0 0 10px!important; font-size:24px; }
.spf-field label { display:block; font-weight:800; color:var(--navy-dark); margin-bottom:8px; }
.spf-search-row { display:flex; gap:10px; }
.spf-search-row input { background:#fff; min-width:0; }
.spf-search-row button { flex:0 0 auto; }
.spf-help { color:var(--muted); font-size:12px; margin:8px 0!important; }
.spf-status-message { font-size:14px; font-weight:650; margin:13px 0 0!important; }
.spf-status-message[data-state="error"] { color:#842525; }
.commune-options { margin:14px 0; padding:0!important; list-style:none; border:1px solid var(--line-dark); border-radius:9px; overflow:hidden; max-height:320px; overflow-y:auto; background:#fff; }
.commune-option { display:block; text-align:left; background:white; border:0; border-bottom:1px solid var(--line); padding:13px 15px; width:100%; color:var(--navy-dark); }
.commune-option:hover, .commune-option:focus { background:#eaf2f8; }
.commune-option small { display:block; color:var(--muted); margin-top:4px; }
.spf-results { margin-top:20px; }
.spf-result-card { background:white; border:1px solid var(--line); border-radius:10px; padding:21px; margin-top:12px; }
.spf-result-card h3 { margin:0 0 12px; font-size:20px; }
.spf-result-card dl { display:grid; grid-template-columns:100px minmax(0,1fr); gap:10px 15px; margin:12px 0; font-size:14px; }
.spf-result-card dt { color:var(--muted); }
.spf-result-card dd { margin:0; overflow-wrap:anywhere; }
.spf-result-card a { overflow-wrap:anywhere; }
.spf-result-card .btn { margin-top:10px; }
.spf-result-meta { font-size:12px; color:var(--muted); }
@media(max-width:1050px) { .guides-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .site-nav-inner{align-items:flex-start;} }
@media(max-width:760px) {
 .site-nav-inner{display:block;padding:12px;} .site-brand{display:inline-block;margin-bottom:8px;}
 .site-nav-links{gap:3px;} .site-nav-links a{font-size:12px;padding:8px;}
 .guides-section,.article-wrap,.article-header-inner{width:calc(100% - 24px);} .guides-grid,.download-grid{grid-template-columns:1fr;}
 .article-content{padding:22px 18px;} .article-content h2{font-size:23px;}
 .article-cta{display:block;padding:18px;} .article-cta .btn{margin-top:16px;max-width:none;width:100%;}
 .spf-widget{padding:18px 14px;} .spf-search-row{flex-direction:column;}
 .spf-result-card{padding:16px;} .spf-result-card dl{grid-template-columns:1fr;gap:3px;} .spf-result-card dd{margin-bottom:10px;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{transition:none!important;}}
