/* Franchise page */
#franchise-page { background: #090908; color: #f5f1ed; }
#franchise-page * { box-sizing: border-box; }
#franchise-page .eyebrow { color: #f45b31; font-size: 13px; letter-spacing: .15em; margin: 0 0 18px; }
#franchise-page h1, #franchise-page h2, #franchise-page h3 { font-family: var(--heading); }
#franchise-page h1 { font-size: clamp(48px, 5.5vw, 84px); line-height: .98; letter-spacing: -.02em; margin: 0 0 24px; }
#franchise-page h2 { font-size: clamp(36px, 4vw, 58px); line-height: 1.04; letter-spacing: -.015em; margin: 0 0 22px; }
#franchise-page h3 { font-size: 26px; line-height: 1.15; margin: 0 0 14px; }
#franchise-page em { color: #f45127; font-style: normal; }
#franchise-page p { color: #bfb8b2; font-size: 16px; line-height: 1.75; }
#franchise-page .button { font-size: 15px; text-transform: none; letter-spacing: 0; }
#franchise-page a:focus-visible, #franchise-page summary:focus-visible { outline: 2px solid #ff7146; outline-offset: 5px; }
#franchise-page .franchise-hero { display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 5vw; padding: 72px max(5vw, 24px); background: radial-gradient(ellipse at 0 0, #35150e, transparent 65%); }
#franchise-page .franchise-hero-copy { min-width: 0; }
#franchise-page .franchise-hero-copy > p:not(.eyebrow) { max-width: 540px; }
#franchise-page .franchise-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin: 30px 0; }
#franchise-page .franchise-text-link { font-size: 14px; color: #e6dcd5; }
#franchise-page .franchise-model-tag { border-top: 1px solid #493024; padding-top: 22px; font-size: 13px; color: #c5bbb4; line-height: 1.7; }
#franchise-page .franchise-model-tag span { display: block; color: #f8b59f; font-weight: 700; font-size: 12px; letter-spacing: .12em; margin-bottom: 5px; }
#franchise-page .franchise-hero-photo { position: relative; margin: 0; min-width: 0; border-radius: 16px; overflow: hidden; border: 1px solid #463127; }
#franchise-page .franchise-hero-photo img { display: block; width: 100%; height: 580px; object-fit: cover; }
#franchise-page .franchise-hero-photo figcaption { position: absolute; bottom: 0; left: 0; right: 0; padding: 70px 28px 28px; background: linear-gradient(transparent, #080807); font-size: 12px; font-weight: 700; letter-spacing: .12em; }
#franchise-page .franchise-hero-photo figcaption span { display: block; font-weight: 400; font-size: 15px; letter-spacing: 0; margin-top: 10px; }
#franchise-page .franchise-section { padding: 76px max(5vw, 24px); border-top: 1px solid #2b211b; scroll-margin-top: 110px; }
#franchise-page .franchise-heading { max-width: 740px; margin-bottom: 36px; }
#franchise-page .franchise-heading > p:last-child { margin-bottom: 0; }
#franchise-page .franchise-model-grid, #franchise-page .franchise-options-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
#franchise-page .franchise-model-card { padding: 34px; border: 1px solid #403127; border-radius: 12px; background: #151311; }
#franchise-page .franchise-model-coreo { background: linear-gradient(130deg, #32180f, #15100d); border-color: #924128; }
#franchise-page .franchise-card-label { display: block; margin-bottom: 25px; color: #ec9678; font-size: 12px; letter-spacing: .1em; }
#franchise-page .franchise-model-card ul { padding-left: 20px; color: #d5cbc4; font-size: 15px; line-height: 1.7; margin: 22px 0 0; }
#franchise-page .franchise-model-card li { padding: 5px 0 5px 5px; }
#franchise-page .franchise-model-card li::marker { color: #ef693f; }
#franchise-page .franchise-section-note { margin: 22px 0 0; font-size: 13px; }
#franchise-page .franchise-experience { background: #11100e; }
#franchise-page .franchise-experience-grid, #franchise-page .franchise-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
#franchise-page .franchise-experience-grid article { border-top: 1px solid #5a3526; padding-top: 22px; }
#franchise-page .franchise-experience-grid article > span, #franchise-page .franchise-steps li > span { display: block; color: #ef7048; font: 600 32px/1 var(--heading); margin-bottom: 22px; }
#franchise-page .franchise-experience-grid p, #franchise-page .franchise-steps p { font-size: 14px; margin-bottom: 0; }
#franchise-page .franchise-options-grid article { padding: 28px 0; border-top: 1px solid #483025; }
#franchise-page .franchise-options-grid a { display: inline-block; color: #ff9a76; margin-top: 12px; font-size: 14px; }
#franchise-page .franchise-steps { padding: 0; margin: 0; list-style: none; }
#franchise-page .franchise-steps li { border-top: 1px solid #483025; padding-top: 24px; }
#franchise-page .franchise-enquiry { display: grid; grid-template-columns: .9fr 1.1fr; gap: 7vw; background: radial-gradient(ellipse at 0 30%, #30150e, transparent 65%), #100d0b; }
#franchise-page .franchise-contact { display: grid; gap: 16px; margin: 30px 0 0; padding: 24px 0 0; border-top: 1px solid #493024; }
#franchise-page .franchise-contact a { color: #f5e7de; font-size: 17px; overflow-wrap: anywhere; }
#franchise-page .franchise-form { display: grid; gap: 18px; margin: 0; padding: 32px; background: #171310; border: 1px solid #4a3327; border-radius: 14px; min-width: 0; }
#franchise-page .franchise-form h3 { font-size: 32px; margin: 0; }
#franchise-page .franchise-form > p { margin: 0; font-size: 14px; }
#franchise-page .franchise-form label { display: grid; gap: 9px; color: #e9dfd7; font: 400 13px/1.4 var(--body); min-width: 0; }
#franchise-page .franchise-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#franchise-page .franchise-form input, #franchise-page .franchise-form select, #franchise-page .franchise-form textarea { width: 100%; min-width: 0; height: auto; min-height: 50px; padding: 14px; border: 1px solid #645044; border-radius: 6px; background: #0e0d0b; color: #fff; font: 400 15px/1.4 var(--body); outline: none; }
#franchise-page .franchise-form textarea { resize: vertical; }
#franchise-page .franchise-form input::placeholder, #franchise-page .franchise-form textarea::placeholder { color: #a49a92; opacity: 1; }
#franchise-page .franchise-form input:focus, #franchise-page .franchise-form select:focus, #franchise-page .franchise-form textarea:focus { border-color: #ff7040; box-shadow: 0 0 0 2px #f4512733; }
#franchise-page .franchise-form .button { min-height: 52px; height: auto; padding: 15px; border: 0; border-radius: 6px; background: #e74b20; color: #fff; justify-content: center; }
#franchise-page .franchise-form small { color: #bcb0a6; font-size: 12px; line-height: 1.6; }
#franchise-page .franchise-form .franchise-status:empty { display: none; }
#franchise-page .franchise-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: 6vw; }
#franchise-page .franchise-faq details { border-bottom: 1px solid #403025; padding: 20px 0; }
#franchise-page .franchise-faq details:first-child { border-top: 1px solid #403025; }
#franchise-page .franchise-faq summary { cursor: pointer; font-size: 16px; line-height: 1.5; padding-right: 16px; }
#franchise-page .franchise-faq details p { font-size: 14px; margin-bottom: 0; }
@media (min-width: 1600px) {
  #franchise-page .franchise-section, #franchise-page .franchise-hero { padding-left: calc((100vw - 1440px) / 2); padding-right: calc((100vw - 1440px) / 2); }
}
@media (max-width: 1000px) {
  #franchise-page .franchise-hero { gap: 30px; }
  #franchise-page .franchise-hero-photo img { height: 520px; }
  #franchise-page .franchise-experience-grid, #franchise-page .franchise-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #franchise-page .franchise-enquiry { gap: 30px; }
  #franchise-page .franchise-form-row { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  #franchise-page .franchise-hero, #franchise-page .franchise-enquiry, #franchise-page .franchise-faq, #franchise-page .franchise-model-grid, #franchise-page .franchise-options-grid { grid-template-columns: 1fr; }
  #franchise-page .franchise-hero { padding: 46px 22px; }
  #franchise-page h1 { font-size: clamp(42px, 9.5vw, 65px); }
  #franchise-page .franchise-hero-photo img { height: 340px; }
  #franchise-page .franchise-section { padding: 50px 22px; }
  #franchise-page .franchise-model-card, #franchise-page .franchise-form { padding: 24px; }
  #franchise-page .franchise-heading { margin-bottom: 24px; }
}
@media (max-width: 420px) {
  #franchise-page .franchise-experience-grid, #franchise-page .franchise-steps { grid-template-columns: 1fr; }
  #franchise-page .franchise-form { padding: 20px; }
}
