/* Franchise banner */
.franchise-promo { position:relative;display:block;overflow:hidden;background:#231f20;color:#fff;margin-top:72px; }
.franchise-promo picture,.franchise-promo img { display:block;width:100%; }
.franchise-promo img { aspect-ratio:1920 / 600;object-fit:cover; }
.franchise-promo__shade { position:absolute;inset:0;background:rgba(18,15,16,.24); }
.franchise-promo__content { position:absolute;top:50%;left:max(30px,calc((100% - 1170px) / 2));z-index:2;transform:translateY(-50%);width:470px;max-width:calc(100% - 60px);padding:32px;background:rgba(18,15,16,.68); }
.franchise-promo__content > span { display:block; }
.franchise-promo__eyebrow { margin:0 0 10px;color:#e4b497;font-size:12px;font-weight:600;letter-spacing:3px; }
.franchise-promo__title { margin:0 0 12px;color:#fff;font-size:42px;font-weight:500;line-height:1.08;letter-spacing:0; }
.franchise-promo__description { margin:0 0 22px;color:rgba(255,255,255,.9);font-size:16px;line-height:1.55; }
.franchise-promo__action { display:inline-block;padding:12px 20px;background:#c78665;color:#fff;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase; }
.franchise-promo:hover .franchise-promo__action { background:#fff;color:#231f20; }

/* Franchise form */
.franchise-page,
.franchise-page *,
.franchise-page *::before,
.franchise-page *::after { box-sizing:border-box; }
.franchise-page { max-width:1170px;padding-top:70px;padding-bottom:100px; }
.franchise-intro { max-width:780px;margin:0 auto 42px;text-align:center; }
.franchise-intro .eyebrow { margin:0 0 12px;color:#c78665;font-size:12px;font-weight:600;letter-spacing:3px; }
.franchise-intro h2 { margin:0 0 18px;color:#111;font-size:32px;font-weight:500;letter-spacing:1px; }
.franchise-intro p { margin:0 auto 8px;color:#666;font-size:16px;line-height:1.7; }
.franchise-notice { margin-bottom:28px;padding:22px 26px;border-left:3px solid #c78665;background:#f7f2ef;color:#555; }
.franchise-notice strong { display:block;margin-bottom:8px;color:#231f20;font-size:15px;text-transform:uppercase;letter-spacing:1px; }
.franchise-notice p { margin:0;color:#555;font-size:14px;line-height:1.65; }
.franchise-notice p + p { margin-top:6px; }
.franchise-form { overflow:hidden;padding:0 42px 42px;background:#fff;border:1px solid #eee; }
.franchise-section { min-width:0;margin:0;padding:34px 0 38px;border:0;border-bottom:1px solid #eee; }
.franchise-section legend { width:auto;margin:0 0 24px;padding:0;color:#231f20;font-size:20px;font-weight:500;letter-spacing:1px; }
.franchise-section legend:after { content:'';display:block;width:42px;height:2px;margin-top:10px;background:#c78665; }
.franchise-grid { display:grid;grid-template-columns:1fr 1fr;gap:22px 28px; }
.franchise-grid-questions { align-items:start; }
.franchise-field { min-width:0; }
.franchise-field-wide { margin-top:22px; }
.franchise-field label,.franchise-label { display:block;margin-bottom:8px;color:#333;font-size:13px;font-weight:600;line-height:1.45; }
.franchise-field label span,.franchise-label span,.franchise-consent b { color:#c78665; }
.franchise-field input[type=text],.franchise-field input[type=email],.franchise-field input[type=tel],.franchise-field input[type=number],.franchise-field textarea { display:block;width:100%;min-height:46px;padding:12px 14px;border:1px solid #d9d9d9;border-radius:0;background:#fff;color:#222;font:inherit;outline:none;transition:border-color .2s,box-shadow .2s; }
.franchise-field textarea { min-height:110px;resize:vertical; }
.franchise-field input:focus,.franchise-field textarea:focus { border-color:#c78665;box-shadow:0 0 0 2px rgba(199,134,101,.12); }
.franchise-field input::placeholder,.franchise-field textarea::placeholder { color:#999; }
.franchise-options { display:grid;gap:10px; }
.franchise-options-columns { grid-template-columns:1fr 1fr; }
.franchise-options-inline { display:flex;flex-wrap:wrap;gap:10px 24px; }
.franchise-option { display:flex;align-items:flex-start;gap:9px;min-width:0;margin:0;color:#555;font-size:14px;font-weight:400;line-height:1.45;cursor:pointer; }
.franchise-field label.franchise-option { display:flex;margin:0; }
.franchise-option > span { min-width:0;overflow-wrap:break-word; }
.franchise-option input { flex:0 0 auto;width:16px;height:16px;margin:2px 0 0;accent-color:#c78665; }
.franchise-option-other { align-items:center;flex-wrap:wrap; }
.franchise-option-other > input[type=text] { width:auto;max-width:100%;flex:1 1 140px;min-width:0;min-height:34px;padding:7px 10px;border:1px solid #d9d9d9;border-radius:0; }
.franchise-input-suffix { display:flex;align-items:center; }
.franchise-input-suffix input { flex:1; }
.franchise-input-suffix span { padding-left:10px;color:#666;font-size:14px; }
.franchise-consent { padding:26px 0 4px; }
.franchise-consent .franchise-option { color:#555; }
.franchise-form-actions { display:flex;justify-content:flex-end;padding-top:28px; }
.franchise-form-actions .btn-primary { min-width:220px;padding:14px 22px;border:0;border-radius:0;background:#c78665;color:#fff;cursor:pointer;font:inherit;font-size:13px;font-weight:600;letter-spacing:.5px; }
.franchise-form-actions .btn-primary:hover { background:#231f20; }
.franchise-alert,.franchise-success { margin-bottom:24px;padding:18px 20px;font-size:14px;line-height:1.6; }
.franchise-alert-error { border-left:3px solid #b94a48;background:#fceeee;color:#8d2f2d; }
.franchise-success { border-left:3px solid #128c7e;background:#eef8f5;color:#155f55; }
.franchise-success strong { display:block;margin-bottom:4px;font-size:16px; }
.franchise-success p { margin:0; }
.franchise-honeypot { position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important; }

@media (max-width:900px) {
    .franchise-grid,.franchise-options-columns { grid-template-columns:1fr; }
    .franchise-form { padding-left:28px;padding-right:28px; }
}

@media (max-width:767px) {
    .franchise-promo { margin-top:30px; }
    .franchise-promo img { aspect-ratio:900 / 1000; }
    .franchise-promo__content { top:auto;bottom:22px;left:20px;width:calc(100% - 40px);max-width:none;padding:22px;transform:none; }
    .franchise-promo__title { font-size:31px; }
    .franchise-promo__description { font-size:14px; }
    .franchise-page { padding-top:42px;padding-bottom:60px; }
    .franchise-intro h2 { font-size:25px;line-height:1.25; }
    .franchise-intro p { font-size:14px; }
    .franchise-notice { padding:18px; }
    .franchise-form { padding:0 20px 28px; }
    .franchise-grid,.franchise-options-columns { display:block; }
    .franchise-field + .franchise-field { margin-top:20px; }
    .franchise-options-columns .franchise-option + .franchise-option { margin-top:10px; }
    .franchise-options-inline { gap:10px 18px; }
    .franchise-form-actions { display:block; }
    .franchise-form-actions .btn-primary { width:100%; }
}
