/* Page « Devenir franchisé » (/franchise) — classes prefixees fz- */
.fz {
  --fz-red: #e8174a;
  --fz-orange: #e55a29;
  --fz-yellow: #f5a524;
  --fz-ink: #1b1b1b;
  --fz-muted: #6b6b6b;
  --fz-soft: #f6f3ef;
  --fz-line: #e7e2dc;
  --fz-r: 22px;
  color: var(--fz-ink);
  overflow-x: hidden;
}
.fz *, .fz *::before, .fz *::after { box-sizing: border-box; }
.fz-wrap { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 16px; }
.fz em { font-style: normal; color: var(--fz-red); }
.fz-center { text-align: center; }
.fz-muted { color: var(--fz-muted); }
.fz-h2 { font-size: clamp(30px, 4.4vw, 52px); line-height: 1.08; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 14px; color: var(--fz-ink); }
.fz-h3 { font-size: 22px; font-weight: 800; margin: 26px 0 8px; color: var(--fz-ink); }
.fz-lead { font-size: 17px; line-height: 1.6; color: #444; margin: 0 0 16px; }
.fz-center.fz-lead { max-width: 640px; margin-left: auto; margin-right: auto; }

/* Buttons */
.fz-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 0 26px; border-radius: 999px; font-weight: 700; font-size: 16px; text-decoration: none; border: 2px solid transparent; transition: transform .15s, background .15s, color .15s; cursor: pointer; }
.fz-btn:hover { transform: translateY(-1px); }
.fz-btn--solid { background: var(--fz-red); color: #fff; }
.fz-btn--solid:hover { background: #c90f3d; color: #fff; }
.fz-btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.75); }
.fz-btn--ghost:hover { background: #fff; color: var(--fz-ink); }
.fz-btn--dark { background: var(--fz-ink); color: #fff; }
.fz-btn--dark:hover { background: #000; color: #fff; }
.fz-btn:focus-visible, .fz-qa summary:focus-visible { outline: 3px solid var(--fz-yellow); outline-offset: 3px; }

/* 1. Hero */
.fz-hero { background: radial-gradient(120% 140% at 85% 10%, #ff8a4c 0%, var(--fz-orange) 38%, #c2321a 100%); color: #fff; padding: 200px 0 96px; position: relative; }
.fz-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 38px; background: #fff; clip-path: polygon(0 60%, 6% 40%, 13% 70%, 21% 35%, 30% 65%, 38% 30%, 47% 62%, 55% 38%, 64% 70%, 72% 36%, 81% 64%, 89% 40%, 95% 66%, 100% 45%, 100% 100%, 0 100%); }
.fz-hero__inner { max-width: 820px; text-align: center; }
.fz-eyebrow { display: inline-block; padding: 6px 14px; border-radius: 999px; background: rgba(0,0,0,.22); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 18px; }
.fz-hero__title { font-size: clamp(38px, 6.2vw, 74px); line-height: 1.02; font-weight: 800; letter-spacing: -0.025em; color: #fff; margin: 0 0 18px; }
.fz-hero__title em { color: #fff; display: block; text-decoration: underline; text-decoration-color: var(--fz-yellow); text-decoration-thickness: .12em; text-underline-offset: .12em; }
.fz-hero__sub { font-size: clamp(17px, 2vw, 20px); line-height: 1.5; max-width: 620px; margin: 0 auto 28px; color: rgba(255,255,255,.94); }
.fz-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* 2. Stats */
.fz-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 44px; }
.fz-stat { border-radius: var(--fz-r); padding: 28px 20px; color: #fff; text-align: center; display: flex; flex-direction: column; gap: 6px; justify-content: center; min-height: 150px; }
.fz-stat strong { font-size: clamp(40px, 5vw, 58px); line-height: 1; font-weight: 800; }
.fz-stat span { font-size: 15px; font-weight: 600; opacity: .95; }
.fz-stat--0 { background: var(--fz-red); }
.fz-stat--1 { background: var(--fz-yellow); color: var(--fz-ink); }
.fz-stat--2 { background: var(--fz-ink); }
.fz-stat--3 { background: var(--fz-orange); }

/* 3. Concept + stores */
.fz-split { display: grid; grid-template-columns: 1fr 1.05fr; gap: 48px; align-items: center; padding-top: 80px; padding-bottom: 80px; }
.fz-split__text .fz-btn { margin-top: 10px; }
.fz-stores { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fz-store { position: relative; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 3.2; background: linear-gradient(135deg, var(--fz-orange), var(--fz-red)); }
.fz-store img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fz-store__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 12px 10px; background: linear-gradient(transparent, rgba(0,0,0,.78)); color: #fff; display: flex; flex-direction: column; gap: 2px; }
.fz-store__cap strong { font-size: 14px; line-height: 1.25; }
.fz-store__cap span { font-size: 12px; opacity: .85; line-height: 1.3; }

/* bands */
.fz-band { background: var(--fz-soft); padding: 80px 0; }

/* 4. Phases */
.fz-phases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 30px; }
.fz-phase { background: #fff; border-radius: var(--fz-r); padding: 28px 26px; border: 1px solid var(--fz-line); }
.fz-phase h3 { font-size: 24px; font-weight: 800; margin: 0 0 6px; }
.fz-phase h3 em { color: var(--fz-orange); }
.fz-phase p { margin: 0 0 14px; font-size: 14px; }
.fz-phase ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.fz-phase li { position: relative; padding-left: 26px; font-size: 15px; font-weight: 600; line-height: 1.4; }
.fz-phase li::before { content: ""; position: absolute; left: 2px; top: 4px; width: 14px; height: 8px; border-left: 3px solid var(--fz-red); border-bottom: 3px solid var(--fz-red); transform: rotate(-45deg); }

/* 5. Match */
.fz-match { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; padding-top: 80px; padding-bottom: 80px; }
.fz-match__text { background: var(--fz-soft); border-radius: var(--fz-r); padding: 36px 34px; }
.fz-match__zones { background: var(--fz-yellow); border-radius: var(--fz-r); padding: 36px 30px; display: flex; flex-direction: column; }
.fz-match__zones p { font-weight: 700; margin: 0 0 10px; }
.fz-match__zones ul { list-style: none; padding: 0; margin: 0 0 22px; }
.fz-match__zones li { font-size: 22px; font-weight: 800; line-height: 1.5; }
.fz-match__zones .fz-btn { margin-top: auto; }

/* 6. Steps */
.fz-steps { list-style: none; padding: 0; margin: 30px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; counter-reset: none; }
.fz-step { background: #fff; border-radius: var(--fz-r); padding: 26px 22px; border: 1px solid var(--fz-line); }
.fz-step__n { display: inline-flex; width: 44px; height: 44px; border-radius: 50%; align-items: center; justify-content: center; background: var(--fz-red); color: #fff; font-weight: 800; font-size: 20px; margin-bottom: 14px; }
.fz-step h3 { font-size: 18px; font-weight: 800; margin: 0 0 6px; }
.fz-step p { margin: 0; color: #555; font-size: 15px; line-height: 1.5; }

/* 7. FAQ */
.fz-faq { padding-top: 80px; padding-bottom: 80px; }
.fz-faq__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 36px; margin-top: 10px; }
.fz-faq__group .fz-h3 { color: var(--fz-orange); font-size: 18px; text-transform: uppercase; letter-spacing: .05em; }
.fz-qa { border-bottom: 1px solid var(--fz-line); }
.fz-qa summary { list-style: none; cursor: pointer; padding: 14px 34px 14px 0; font-weight: 700; font-size: 16px; position: relative; }
.fz-qa summary::-webkit-details-marker { display: none; }
.fz-qa summary::after { content: "+"; position: absolute; right: 4px; top: 8px; font-size: 26px; font-weight: 400; color: var(--fz-red); transition: transform .2s; }
.fz-qa[open] summary::after { transform: rotate(45deg); }
.fz-qa p { margin: 0 0 16px; color: #555; line-height: 1.6; }

/* 8. Form */
.fz-formband { background: var(--fz-ink); padding: 80px 0 96px; scroll-margin-top: 90px; }
.fz-formband .fz-h2 { color: #fff; }
.fz-formband .fz-lead { color: rgba(255,255,255,.8); }
.fz-formwrap { max-width: 860px; }
.fz-form { background: #fff; border-radius: var(--fz-r); padding: 30px 30px 34px; margin-top: 26px; }
.fz-req { margin: 0 0 6px; font-size: 13px; text-align: right; }
.fz-form fieldset { border: 0; padding: 0; margin: 0 0 22px; min-width: 0; }
.fz-form legend { font-size: 19px; font-weight: 800; margin: 0 0 12px; padding: 0 0 8px; width: 100%; border-bottom: 2px solid var(--fz-soft); float: none; }
.fz-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.fz-grid > label, .fz-radio { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; margin: 0; color: var(--fz-ink); }
.fz-wide { grid-column: 1 / -1; }
.fz-form input[type=text], .fz-form input[type=tel], .fz-form input[type=email], .fz-form input[type=number], .fz-form select, .fz-form textarea {
  width: 100%; min-height: 48px; padding: 10px 14px; border: 1.5px solid #d9d4ce; border-radius: 12px; background: #fff; color: var(--fz-ink); font: inherit; font-weight: 400; font-size: 16px;
}
.fz-form textarea { min-height: 110px; resize: vertical; }
.fz-form input:focus, .fz-form select:focus, .fz-form textarea:focus { outline: none; border-color: var(--fz-orange); box-shadow: 0 0 0 3px rgba(229,90,41,.18); }
.fz-form .is-bad, .fz-form .is-bad input, .fz-form .is-bad select { border-color: var(--fz-red) !important; }
.fz-radio > span { margin-bottom: 2px; }
.fz-radio label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; margin: 0 18px 0 0; cursor: pointer; min-height: 32px; }
.fz-radio { flex-direction: row !important; flex-wrap: wrap; align-items: center; }
.fz-radio > span { flex-basis: 100%; }
.fz-form input[type=radio], .fz-form input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--fz-red); margin: 0; flex: none; }
.fz-consent { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; color: #444; margin: 6px 0 22px; cursor: pointer; line-height: 1.45; padding: 12px; border-radius: 12px; }
.fz-consent.is-bad { background: #fdecef; }
.fz-consent input { margin-top: 2px !important; }
.fz-submit { width: 100%; font-size: 17px; min-height: 56px; }
.fz-submit[disabled] { opacity: .7; cursor: wait; transform: none; }
.fz-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fz-ok, .fz-err { border-radius: var(--fz-r); padding: 24px 26px; margin-top: 26px; }
.fz-ok { background: #e8f7ee; color: #14532d; text-align: center; }
.fz-ok strong { display: block; font-size: 22px; margin-bottom: 6px; }
.fz-ok p { margin: 0; font-size: 16px; }
.fz-err { background: #fdecef; color: #8a1030; }
.fz-err ul { margin: 8px 0 0; padding-left: 20px; }

/* Responsive */
@media (max-width: 991px) {
  .fz-split, .fz-match { grid-template-columns: 1fr; gap: 28px; }
  .fz-phases { grid-template-columns: 1fr; }
  .fz-steps { grid-template-columns: 1fr 1fr; }
  .fz-faq__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .fz-hero { padding: 130px 0 72px; }
  .fz-hero__btns .fz-btn { width: 100%; }
  .fz-stats { grid-template-columns: 1fr; margin-top: 28px; }
  .fz-stat { min-height: 0; padding: 22px 16px; }
  .fz-split, .fz-match, .fz-faq { padding-top: 56px; padding-bottom: 56px; }
  .fz-band, .fz-formband { padding: 56px 0; }
  .fz-match__text, .fz-match__zones { padding: 26px 20px; }
  .fz-steps { grid-template-columns: 1fr; }
  .fz-grid { grid-template-columns: 1fr; }
  .fz-form { padding: 22px 16px 26px; }
  .fz-stores { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) { .fz-btn, .fz-qa summary::after { transition: none; } }
