/* Interface Aesthetics: the existing theme's gold, warm neutrals and light typography. */
.ifa28-stage-page { width: 100%; }
.ifa28 .ifa28-staging-note { margin: 0; padding: 14px 24px; background: #f7f4f1; color: #514638; font-size: 14px; text-align: center; }
.ifa28 {
  --ifa-ink: #0c0c0c;
  --ifa-gold: #bc9b6b;
  --ifa-accent: #776043;
  --ifa-cream: #f7f4f1;
  --ifa-heading-gold: #927142;
  --ifa-pink: #f0eae1;
  --ifa-line: #ded8cf;
  --ifa-muted: #68625b;
  color: var(--ifa-ink);
  font-family: halyard-display, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 300;
  line-height: 1.6;
}
.ifa28 *, .ifa28 *::before, .ifa28 *::after { box-sizing: border-box; }
.ifa28 button, .ifa28 select, .ifa28 input { font-family: inherit; }
.ifa28 a:focus-visible, .ifa28 button:focus-visible, .ifa28 select:focus-visible, .ifa28 input:focus-visible { outline: 2px solid var(--ifa-accent); outline-offset: 4px; }
.ifa28 h1, .ifa28 h2, .ifa28 h3 { font-family: inherit; font-weight: 300; line-height: 1.12; letter-spacing: -.025em; }
.ifa28 h2 { font-size: 39px; margin: 0 0 16px; }
.ifa28 h3 { font-size: 26px; margin: 0 0 16px; }
.ifa28-eyebrow { font-size: 14px; line-height: 1.5; letter-spacing: .15em; font-weight: 500; text-transform: uppercase; color: var(--ifa-accent); margin: 0 0 18px; }
/* The Expo reference supplies the large photographic hero and pill actions. */
.ifa28-hero { background: #0c0c0c; color: white; position: relative; overflow: hidden; isolation: isolate; }
.ifa28-hero-inner { max-width: 1440px; margin: auto; min-height: 690px; }
.ifa28-hero-copy { padding: 78px 64px 38px; position: relative; z-index: 2; }
.ifa28-hero .ifa28-eyebrow { display: inline-block; color: var(--ifa-gold); margin-bottom: 27px; letter-spacing: .18em; font-size: 14px; }
.ifa28-hero h1 { max-width: 1000px; font-size: clamp(52px, 6.25vw, 90px); font-weight: 400; letter-spacing: -.012em; line-height: 1.1; margin: 0 0 27px; }
.ifa28-hero h1 em { color: #c7aa7d; font-style: normal; font-weight: inherit; }
.ifa28-hero-description { color: #f5f2ed; font-size: 18px; line-height: 1.55; max-width: 525px; margin: 0 0 30px; }
.ifa28-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.ifa28-hero-link { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 26px; color: #0c0c0c; background: var(--ifa-gold); border: 1px solid var(--ifa-gold); border-radius: 999px; text-transform: uppercase; font-size: 14px; font-weight: 500; letter-spacing: .045em; text-decoration: none; padding: 16px 25px; transition: color .18s, background .18s; }
.ifa28-hero-link span { font-size: 21px; line-height: 1; }
.ifa28-hero-link:hover { color: #0c0c0c; background: #fff; border-color: #fff; }
.ifa28-hero-link-outline { color: #fff; border-color: #c7c2b9; background: transparent; }
.ifa28-hero a:focus-visible { outline-color: #fff; }
.ifa28-hero-facts { display: flex; gap: 0; list-style: none; padding: 22px 0 0; margin: 44px 0 0; border-top: 1px solid #ffffff4d; max-width: 840px; color: #e8e2d8; font-size: 14px; letter-spacing: .015em; }
.ifa28-hero-facts li { padding: 0 30px; border-left: 1px solid #ffffff4d; }
.ifa28-hero-facts li:first-child { padding-left: 0; border-left: 0; }
.ifa28-hero-media { position: absolute; z-index: 0; inset: 0; background: #3e3b35; }
.ifa28-hero-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #090c0dd9 0%, #090c0db8 35%, #090c0d1a 100%), linear-gradient(0deg, #090c0dbb, transparent 65%); pointer-events: none; }
.ifa28-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 47%; }
.ifa28-hero::after { content: ''; position: absolute; z-index: 1; inset: 0 0 0 44%; background: url('images/hero-ashape.svg') 65% center / auto 100% no-repeat; opacity: .13; pointer-events: none; }
.ifa28-body { max-width: 1280px; padding: 0 40px 46px; margin: auto; scroll-margin-top: 24px; }
.ifa28-steps { display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 0 0 48px; padding: 0; border-bottom: 1px solid var(--ifa-line); }
.ifa28-steps li { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 24px 12px; color: var(--ifa-muted); font-size: 14px; line-height: 1.4; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.ifa28-steps li > span { color: #706454; font-size: 25px; font-weight: 300; line-height: 1; }
.ifa28-steps small { display: block; font-size: 14px; font-weight: 300; margin-top: 4px; color: var(--ifa-muted); }
.ifa28-steps [aria-current] { color: var(--ifa-ink); border-bottom-color: var(--ifa-gold); font-weight: 500; }
.ifa28-steps [aria-current] > span, .ifa28-steps .is-complete > span { color: var(--ifa-accent); }
.ifa28-steps .is-complete { border-bottom-color: var(--ifa-line); }
.ifa28-path-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin: 0 0 38px; padding-top: 14px; }
.ifa28-path-heading .ifa28-eyebrow { margin-bottom: 9px; font-size: 14px; }
.ifa28-path-heading h2 { font-size: clamp(40px, 4.6vw, 64px); font-weight: 600; line-height: 1; letter-spacing: -.015em; margin: 0; }
.ifa28-path-heading > p { text-align: right; font-size: 16px; line-height: 1.45; color: var(--ifa-muted); margin: 0 0 4px; }
.ifa28-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ifa28-path { border: 1px solid var(--ifa-line); display: flex; flex-direction: column; background: #fff; transition: border-color .18s; }
.ifa28-path:hover { border-color: var(--ifa-gold); }
.ifa28-path-top { position: relative; isolation: isolate; overflow: hidden; background: var(--ifa-cream); padding: 24px 27px 30px; border-bottom: 1px solid var(--ifa-line); }
.ifa28-path-top::after { content: ''; position: absolute; z-index: -1; width: 90px; right: 0; top: 0; bottom: -35px; background: url('images/courses-angle-gold.svg') right top / auto 100% no-repeat; opacity: .15; }
.ifa28-path:nth-child(2) .ifa28-path-top { background: #d9c6a8; }
.ifa28-path:nth-child(3) .ifa28-path-top { background: #eae6df; }
.ifa28-path-meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 28px; font-size: 14px; letter-spacing: .08em; color: #514638; font-weight: 400; }
.ifa28-path-meta > span:last-child { border: 1px solid #9b8a735e; border-radius: 999px; padding: 5px 10px; }
.ifa28-path-number { font-size: 33px; font-weight: 300; letter-spacing: -.015em; color: var(--ifa-accent); }
.ifa28-path .ifa28-eyebrow { font-size: 14px; letter-spacing: .095em; margin: 0 0 12px; }
.ifa28-path h3 { font-size: 33px; font-weight: 400; line-height: 1.05; letter-spacing: -.015em; margin: 0; min-height: 104px; max-width: 280px; }
.ifa28-path-details { display: flex; flex-direction: column; flex: 1; padding: 25px 27px 27px; }
.ifa28-path-description { font-size: 16px; color: var(--ifa-muted); line-height: 1.6; min-height: 68px; margin: 0 0 24px; }
.ifa28-included-label { font-size: 14px; font-weight: 500; letter-spacing: .14em; margin: 0 0 8px; color: var(--ifa-muted); }
.ifa28-path ul { padding: 0; list-style: none; margin: 0 0 25px; }
.ifa28-path li { position: relative; padding: 9px 0 9px 21px; border-bottom: 1px solid #ede9e3; font-size: 14px; line-height: 1.5; }
.ifa28-path li::before { content: '✓'; position: absolute; left: 0; color: var(--ifa-accent); font-size: 14px; }
.ifa28-path-bottom { margin-top: auto; padding-top: 10px; }
.ifa28-price { font-size: 34px; line-height: 1.3; font-weight: 300; letter-spacing: -.03em; margin: 0 0 18px; }
.ifa28-price > span { font-size: 14px; font-weight: 300; letter-spacing: 0; color: var(--ifa-muted); }
.ifa28 button { min-height: 46px; background: var(--ifa-gold); color: #202020; border: 1px solid var(--ifa-gold); border-radius: 999px; font-size: 14px; letter-spacing: .025em; line-height: 1.5; font-weight: 500; padding: 15px 22px; cursor: pointer; transition: background .18s, border-color .18s; }
.ifa28 button span[aria-hidden] { float: right; margin-left: 12px; font-size: 18px; line-height: 1; font-weight: 300; }
.ifa28 button:hover { background: #ad8b58; border-color: #ad8b58; }
.ifa28 button:disabled { opacity: .6; cursor: wait; }
.ifa28-path button { width: 100%; text-align: left; min-height: 50px; }
.ifa28-bespoke { position: relative; overflow: hidden; display: flex; justify-content: space-between; align-items: flex-end; gap: 35px; background: #0c0c0c; color: #fff; padding: 54px 48px; margin-top: 46px; scroll-margin-top: 24px; }
.ifa28-bespoke::before { content: ''; position: absolute; width: 580px; height: 360px; top: -30px; right: -45px; background: url('images/mobile-logo-gold.svg') center / contain no-repeat; opacity: .1; pointer-events: none; }
.ifa28-bespoke > * { position: relative; }
.ifa28-bespoke .ifa28-eyebrow { color: var(--ifa-gold); margin-bottom: 18px; }
.ifa28-bespoke h3 { color: #fff; font-size: 58px; font-weight: 500; letter-spacing: -.015em; line-height: 1; margin-bottom: 24px; }
.ifa28-bespoke p:last-child { font-size: 16px; color: #d9d2c8; max-width: 450px; margin: 0; }
.ifa28 .ifa28-secondary { color: #0c0c0c; background: var(--ifa-gold); white-space: nowrap; border-color: var(--ifa-gold); min-width: 255px; text-align: left; }
.ifa28 .ifa28-secondary:hover { background: #fff; border-color: #fff; }
.ifa28-bespoke button:focus-visible { outline-color: #fff; }
.ifa28 .ifa28-back { border: 0; background: transparent; color: var(--ifa-accent); padding: 8px 0; margin: 0 0 18px; font-size: 14px; min-height: 40px; text-decoration: underline; text-underline-offset: 5px; text-decoration-color: var(--ifa-gold); }
.ifa28-section-heading { margin-bottom: 32px; }
.ifa28-section-heading h2 { color: var(--ifa-heading-gold); font-size: 46px; font-weight: 300; }
.ifa28-section-heading p { color: var(--ifa-muted); font-size: 15px; margin: 0; }
.ifa28-selection-layout, .ifa28-review { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 38px; }
.ifa28-course { position: relative; padding: 27px; border: 1px solid var(--ifa-line); margin-bottom: 18px; background: #fff; }
.ifa28-course.is-selected { border-left: 3px solid var(--ifa-gold); padding-left: 25px; }
.ifa28-course h3 { color: var(--ifa-heading-gold); font-size: 25px; line-height: 1.3; margin: 0 0 9px; }
.ifa28-course p { font-size: 16px; color: var(--ifa-muted); margin: 9px 0 19px; }
.ifa28-course-choice { display: flex; align-items: flex-start; gap: 14px; cursor: pointer; }
/* Stretch the native checkbox label across the card; date controls stay above it. */
.ifa28-course-choice::after { content: ''; position: absolute; inset: 0; cursor: pointer; }
.ifa28-course-choice input, .ifa28-course select, .ifa28-course .ifa28-date-label { position: relative; z-index: 1; }
.ifa28-course:has(.ifa28-course-choice input:focus-visible) { outline: 2px solid var(--ifa-accent); outline-offset: 4px; }
.ifa28-course:has(.ifa28-course-choice).is-selected { background: var(--ifa-gold); border-color: var(--ifa-gold); }
.ifa28-course:has(.ifa28-course-choice).is-selected :is(p, small) { color: #30271b; }
.ifa28-course:has(.ifa28-course-choice).is-selected .ifa28-prerequisite { border-left-color: #30271b66; }
.ifa28-course:has(.ifa28-course-choice).is-selected .ifa28-online { background: transparent; border: 1px solid #30271b40; }
.ifa28-course-choice input { margin-top: 5px; flex-shrink: 0; }
.ifa28-course-choice strong { font-size: 20px; line-height: 1.3; font-weight: 400; }
.ifa28-course-choice small { display: block; font-size: 14px; color: var(--ifa-muted); margin-top: 5px; }
.ifa28 input[type=checkbox] { accent-color: #876e49; width: 19px; height: 19px; flex-shrink: 0; }
.ifa28-date-label { font-size: 14px; letter-spacing: .04em; font-weight: 500; display: block; margin-bottom: 8px; }
.ifa28 select { -webkit-appearance: none; appearance: none; width: 100%; min-height: 48px; border: 1px solid #b7aa98; border-radius: 0; background: #fff url('images/chevron-down.svg') right 16px center / 12px 8px no-repeat; color: var(--ifa-ink); font-size: 15px; padding: 10px 44px 10px 12px; cursor: pointer; }
.ifa28 .ifa28-prerequisite { margin: 17px 0 0; font-size: 14px; border-left: 1px solid var(--ifa-gold); padding-left: 12px; }
.ifa28 .ifa28-online { background: var(--ifa-cream); padding: 13px 15px; color: #605441; margin: 12px 0 0; font-size: 14px; }
.ifa28-summary { background: var(--ifa-gold); color: #17130f; padding: 30px; border-radius: 12px; align-self: start; position: sticky; top: 24px; }
.ifa28-summary h3 { font-size: 29px; }
.ifa28-summary > p { font-size: 14px; color: #30271b; }
.ifa28-summary > .ifa28-eyebrow { font-size: 14px; color: #30271b; }
.ifa28-summary-label { font-size: 14px; color: #30271b; margin: 22px 0 0; }
.ifa28 .ifa28-summary-lines { list-style: none; padding: 0; margin: 0 0 14px; }
.ifa28-summary-lines li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 18px 0; border-bottom: 1px solid #30271b40; }
.ifa28-summary-lines strong { display: block; font-size: 16px; font-weight: 500; line-height: 1.4; }
.ifa28-summary-lines small { display: block; font-size: 14px; line-height: 1.5; color: #30271b; margin-top: 6px; }
.ifa28-summary-lines li > span { font-size: 15px; white-space: nowrap; line-height: 1.5; }
.ifa28-minimum-note { font-size: 15px; line-height: 1.6; margin: 18px 0 0; }
.ifa28-total-row { display: flex; justify-content: space-between; font-size: 14px; gap: 15px; padding: 9px 0; }
.ifa28-total-row > span:last-child { white-space: nowrap; }
.ifa28-saving { color: #30271b; align-items: center; }
.ifa28-saving-amount { font-size: 22px; font-weight: 600; line-height: 1.3; white-space: nowrap; }
.ifa28-total { border-top: 1px solid #30271b40; margin-top: 14px; padding-top: 20px; }
.ifa28-summary-lines + .ifa28-total { border-top: 0; margin-top: 0; padding-top: 4px; }
.ifa28-total > span { font-size: 14px; display: block; }
.ifa28-total strong { font-family: inherit; font-size: 39px; line-height: 1.4; font-weight: 300; letter-spacing: -.035em; display: block; }
.ifa28-total small { display: block; font-size: 14px; color: #30271b; }
.ifa28-summary button { width: 100%; margin: 20px 0 10px; text-align: left; background: #fff; border-color: #fff; }
.ifa28-summary button:hover { background: #0c0c0c; color: #fff; border-color: #0c0c0c; }
.ifa28-summary .ifa28-small { font-size: 14px; line-height: 1.7; margin: 8px 0 0; }
.ifa28-summary-note { border-top: 1px solid #30271b40; padding-top: 20px; margin-top: 23px; }
.ifa28-eligibility { padding: 24px; border: 1px solid var(--ifa-line); margin: 28px 0; min-width: 0; }
.ifa28-eligibility legend { font-family: inherit; font-weight: 300; font-size: 25px; padding: 0 10px; }
.ifa28-eligibility label { display: flex; align-items: flex-start; gap: 13px; font-size: 16px; margin: 10px 0 18px; line-height: 1.6; cursor: pointer; }
.ifa28-eligibility p { font-size: 14px; color: var(--ifa-muted); margin: 18px 0 0; }
.ifa28-review-lines { list-style: none; padding: 0; margin: 22px 0; }
.ifa28-review-lines li { padding: 23px 0; border-bottom: 1px solid var(--ifa-line); display: flex; gap: 24px; justify-content: space-between; font-size: 15px; }
.ifa28-review-lines strong { font-weight: 400; }
.ifa28-review-lines li > span { white-space: nowrap; }
.ifa28-review-lines div span { display: block; color: var(--ifa-muted); font-size: 14px; margin-top: 8px; }
.ifa28-review-note { background: var(--ifa-cream); padding: 20px; font-size: 14px; border-left: 2px solid var(--ifa-gold); }
.ifa28-status:not(:empty) { padding: 18px 22px; margin: 22px 0; background: var(--ifa-cream); font-size: 14px; }
.ifa28-status.is-error { background: #fff0ee; color: #873b31; border-left: 3px solid #b4594c; }
.ifa28-footnote { border-top: 1px solid var(--ifa-line); margin: 42px 0 0; padding-top: 24px; text-align: center; font-size: 14px; color: var(--ifa-muted); }
/* Keep later booking steps focused while retaining the page identity. */
.ifa28:not([data-step="1"]) .ifa28-hero { background: var(--ifa-cream); color: var(--ifa-ink); }
.ifa28:not([data-step="1"]) .ifa28-hero::after { display: none; }
.ifa28:not([data-step="1"]) .ifa28-hero-inner { display: block; min-height: 0; }
.ifa28:not([data-step="1"]) .ifa28-hero-copy { padding: 29px 64px 32px; }
.ifa28:not([data-step="1"]) .ifa28-hero h1 { font-size: 36px; font-weight: 300; letter-spacing: -.035em; margin: 0; }
.ifa28:not([data-step="1"]) .ifa28-hero h1 em { color: var(--ifa-heading-gold); }
.ifa28:not([data-step="1"]) .ifa28-hero .ifa28-eyebrow { color: var(--ifa-accent); margin-bottom: 10px; }
.ifa28:not([data-step="1"]) .ifa28-hero h1 br, .ifa28:not([data-step="1"]) .ifa28-hero-description, .ifa28:not([data-step="1"]) .ifa28-hero-actions, .ifa28:not([data-step="1"]) .ifa28-hero-facts, .ifa28:not([data-step="1"]) .ifa28-hero-media { display: none; }
.ifa28:not([data-step="1"]) .ifa28-steps { margin-bottom: 25px; }
@media (min-width: 1600px) { .ifa28-hero-copy { padding-left: 40px; } }
@media (max-width: 1100px) {
  .ifa28-hero-copy { padding: 65px 40px 32px; }
  .ifa28-hero h1 { font-size: 68px; }
  .ifa28-hero-description { font-size: 17px; }
  .ifa28-body { padding-right: 28px; padding-left: 28px; }
  .ifa28-paths { gap: 16px; }
  .ifa28-path-top, .ifa28-path-details { padding-left: 21px; padding-right: 21px; }
  .ifa28-path h3 { font-size: 28px; min-height: 96px; }
  .ifa28-path-description { min-height: 90px; }
  .ifa28-selection-layout, .ifa28-review { grid-template-columns: minmax(0, 1fr) 310px; gap: 26px; }
}
@media (max-width: 800px) {
  .ifa28-hero-inner { min-height: 610px; }
  .ifa28-hero-copy { padding-left: 28px; padding-right: 28px; }
  .ifa28-hero h1 { font-size: 58px; }
  .ifa28-hero-facts li { padding: 0 17px; }
  .ifa28-paths { grid-template-columns: 1fr; }
  .ifa28-path { display: grid; grid-template-columns: .9fr 1.2fr; }
  .ifa28-path-top { border-bottom: 0; border-right: 1px solid var(--ifa-line); padding: 27px; }
  .ifa28-path-details { padding: 27px; }
  .ifa28-path h3 { min-height: 0; font-size: 33px; }
  .ifa28-path-description { min-height: 0; }
  .ifa28-bespoke { padding: 30px; display: block; }
  .ifa28-bespoke button { margin-top: 24px; }
  .ifa28-steps li { gap: 11px; padding: 22px 5px; font-size: 14px; }
  .ifa28-steps small { font-size: 14px; }
  .ifa28-selection-layout, .ifa28-review { grid-template-columns: 1fr; gap: 12px; }
  .ifa28-summary { position: static; }
  .ifa28:not([data-step="1"]) .ifa28-hero-copy { padding-left: 28px; padding-right: 28px; }
}
@media (max-width: 700px) {
  .ifa28-hero-inner { min-height: 630px; }
  .ifa28-hero-copy { padding: 54px 24px 32px; }
  .ifa28-hero .ifa28-eyebrow { font-size: 14px; margin-bottom: 17px; }
  .ifa28-hero h1 { font-size: clamp(42px, 10.3vw, 64px); line-height: 1; margin-bottom: 24px; max-width: 560px; }
  .ifa28-hero-description { font-size: 16px; line-height: 1.55; margin-bottom: 27px; max-width: 390px; }
  .ifa28-hero-media::after { background: linear-gradient(90deg, #090c0ddb, #090c0d70), linear-gradient(0deg, #090c0d9c, transparent); }
  .ifa28-hero-media img { object-position: 60% center; }
  .ifa28-hero-actions { gap: 10px; }
  .ifa28-hero-link { padding: 14px 20px; min-height: 50px; gap: 20px; }
  .ifa28-hero-facts { flex-wrap: wrap; row-gap: 9px; margin-top: 32px; padding-top: 20px; font-size: 14px; }
  .ifa28-hero-facts li { padding: 0 12px; }
  .ifa28-hero-facts li:last-child { width: 100%; padding: 0; border: 0; }
  .ifa28-hero::after { left: 20%; opacity: .08; }
  .ifa28-body { padding: 0 20px 30px; }
  .ifa28-steps { margin-bottom: 32px; gap: 6px; }
  .ifa28-steps li { display: block; text-align: center; font-size: 14px; padding: 21px 0 18px; }
  .ifa28-steps li > span { font-size: 21px; display: block; margin-bottom: 10px; }
  .ifa28-steps small { display: none; }
  .ifa28-path-heading { display: block; margin-bottom: 28px; padding-top: 6px; }
  .ifa28-path-heading h2 { font-size: 42px; max-width: 9ch; }
  .ifa28-section-heading h2 { font-size: 35px; }
  .ifa28-path-heading .ifa28-eyebrow { font-size: 14px; letter-spacing: .1em; }
  .ifa28 h2 { font-size: 32px; }
  .ifa28-path-heading > p { text-align: left; font-size: 14px; margin-top: 13px; }
  .ifa28-path-heading > p br { display: none; }
  .ifa28-path-heading > p br::after { content: ' '; }
  .ifa28-paths { gap: 22px; }
  .ifa28-path { display: flex; }
  .ifa28-path-top { border-right: 0; border-bottom: 1px solid var(--ifa-line); padding: 22px 24px 26px; }
  .ifa28-path-meta { margin-bottom: 23px; }
  .ifa28-path h3 { font-size: 32px; max-width: 260px; }
  .ifa28-path-details { padding: 24px; }
  .ifa28-path-description { margin-bottom: 21px; }
  .ifa28-path li { font-size: 16px; }
  .ifa28-price { font-size: 33px; }
  .ifa28-bespoke { margin-top: 30px; padding: 38px 27px; }
  .ifa28-bespoke h3 { font-size: 43px; }
  .ifa28-bespoke::before { right: -120px; }
  .ifa28-bespoke p:last-child { font-size: 15px; }
  .ifa28-bespoke button { white-space: normal; min-width: 0; width: 100%; }
  .ifa28-course { padding: 22px; }
  .ifa28-course.is-selected { padding-left: 20px; }
  .ifa28-course h3 { font-size: 22px; }
  .ifa28 select { font-size: 16px; }
  .ifa28-section-heading p { font-size: 14px; }
  .ifa28-summary { padding: 25px; }
  .ifa28-eligibility { padding: 18px; }
  .ifa28-eligibility label { font-size: 14px; }
  .ifa28-review-lines li { gap: 15px; font-size: 14px; }
  .ifa28-footnote { text-align: left; margin-top: 30px; }
  .ifa28:not([data-step="1"]) .ifa28-hero-copy { padding: 25px 24px; }
  .ifa28:not([data-step="1"]) .ifa28-hero h1 { font-size: 30px; }
  .ifa28:not([data-step="1"]) .ifa28-hero h1 br { display: initial; }
}
@media (prefers-reduced-motion: reduce) { .ifa28 *, .ifa28 *::before, .ifa28 *::after { scroll-behavior: auto !important; transition: none !important; } }
@media (forced-colors: active) { .ifa28 select { -webkit-appearance: auto; appearance: auto; background-image: none; padding-right: 12px; } }

/* Shared readable hierarchy for overview and booking. */
.ifa28 { font-size: 16px; }
.ifa28-navigation { display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:28px 0; }
.ifa28-navigation a { color:#514638;font-size:16px;text-decoration:underline;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center; }
.ifa28-navigation a::before { content:none!important; }
.ifa28-button { display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:54px;padding:15px 24px;border-radius:999px;background:#bc9b6b;border:1px solid #bc9b6b;color:#17130f;text-decoration:none;font-size:16px;font-weight:500;line-height:1.5; }
.ifa28-button:hover { background:#17130f;border-color:#17130f;color:#fff; }
.ifa28-bespoke .ifa28-button { flex-shrink:0; }
.ifa28-path li { font-size:16px; }
.ifa28-path h3 { min-height:110px; }
.ifa28-price > .woocommerce-Price-amount { font-size:34px;color:inherit; }
.ifa28-guide { display:grid;grid-template-columns:1fr 1fr;gap:64px;margin:80px 0;padding:56px 0;border-top:1px solid var(--ifa-line);border-bottom:1px solid var(--ifa-line); }
.ifa28-guide p { font-size:17px;color:var(--ifa-muted);line-height:1.65; }
.ifa28-guide ol { padding-left:25px;margin:0; }
.ifa28-guide li { padding-left:12px;margin:0 0 24px; }
.ifa28-guide strong { font-size:20px;font-weight:500; }
.ifa28-guide li p { margin:8px 0 0; }
.ifa28-faq { max-width:920px;margin:0 auto 56px; }
.ifa28-faq details { border-bottom:1px solid var(--ifa-line);padding:22px 0; }
.ifa28-faq summary { font-size:20px;line-height:1.4;cursor:pointer; }
.ifa28-faq p { font-size:17px;line-height:1.7;margin:16px 0 0; }
.ifa28-summary { top:130px; }
.ifa28-summary button,.ifa28 button { font-size:16px; }
.ifa28-course-choice small,.ifa28 .ifa28-prerequisite,.ifa28-date-label { font-size:14px;line-height:1.6; }
.ifa28-section-heading p,.ifa28-eligibility label { font-size:16px; }
.ifa28-review-lines strong { font-size:20px;line-height:1.4; }
.ifa28-review-lines li > span { font-size:18px; }
.ifa28-review-lines div span { font-size:15px; }
.ifa28-path-description { font-size:16px;min-height:104px; }
@media(max-width:800px){.ifa28-guide { grid-template-columns:1fr;gap:24px;margin:48px 0;padding:40px 0; }.ifa28-path h3,.ifa28-path-description { min-height:0; }.ifa28-bespoke .ifa28-button{margin-top:24px;}}
@media(max-width:480px){.ifa28-navigation{gap:6px;padding:16px 0;}.ifa28-guide p,.ifa28-faq p{font-size:16px;}.ifa28-review-lines li{flex-wrap:wrap;}.ifa28-review-lines li > span{margin-left:auto;}.ifa28-bespoke .ifa28-button{font-size:15px;padding:14px 18px;}}
@media(max-width:767px){body.ifa-bundle-page #footer_contact li{font-size:clamp(18px,4.8vw,24px)!important;line-height:1.4!important;}body.ifa-bundle-page #footer_contact a{overflow-wrap:anywhere;}}
@media(max-width:400px){body.ifa-bundle-page #footer_bg{padding-left:10px!important;padding-right:10px!important;}body.ifa-bundle-page #footer_bg .col-10.col-lg-5{width:100%;margin-left:0;}}

/* Course information is independently interactive above the selection label. */
.ifa28-course .ifa28-course-links { position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:12px 24px; margin:16px 0 0; }
.ifa28-course-links a,.ifa28-path li a,.ifa28-two-course a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.ifa28-course-links a { display:inline-flex;align-items:center;min-height:44px;font-size:16px; }
.ifa28-course.is-unavailable { background:#f7f4f1; }
.ifa28 .ifa28-availability { font-size:16px;font-weight:400; }
.ifa28 .ifa28-requirements-note { padding:20px 24px;background:#f7f4f1;color:#30271b;margin:0 0 24px;font-size:16px;line-height:1.6; }
.ifa28 .ifa28-requirements-note a { color:inherit;text-decoration:underline; }
.ifa28-two-course { font-size:16px;line-height:1.6;margin:20px 0; }
.ifa28 .ifa28-pricing-note { font-size:16px;line-height:1.65;color:#514638;margin:24px 0 0; }
.ifa28-prerequisite-dialog{box-sizing:border-box;width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:36px;background:#fff;color:#20201b;border:1px solid #d7cab8;border-radius:12px;font-family:inherit;font-size:17px;line-height:1.6;box-shadow:0 24px 70px #0004}
.ifa28-prerequisite-dialog::backdrop{background:rgba(18,18,15,.65)}
.ifa28-prerequisite-dialog h2{font-size:28px;line-height:1.2;letter-spacing:normal;margin:12px 0 20px;font-weight:600}
.ifa28-prerequisite-dialog p{font-size:17px;line-height:1.6}
.ifa28-prerequisite-dialog fieldset{padding:20px;border:1px solid #d7cab8;margin:24px 0;background:#f6f3ef}
.ifa28-prerequisite-dialog legend{padding:0 8px;font-size:16px;font-weight:600}
.ifa28-prerequisite-dialog label{display:flex;align-items:flex-start;gap:12px;margin:8px 0 16px;cursor:pointer}
.ifa28-prerequisite-dialog input{flex:0 0 20px;width:20px;height:20px;margin:4px 0;accent-color:#8c7048}
.ifa28-dialog-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.ifa28-prerequisite-dialog button{font-family:inherit;font-weight:600;font-size:16px;line-height:1.4;padding:13px 22px;min-height:48px;border-radius:28px;border:1px solid #bb9a67;background:#bb9a67;color:#171712;cursor:pointer;text-transform:none;letter-spacing:normal}
.ifa28-prerequisite-dialog .ifa28-dialog-close{background:#fff}
.ifa28-prerequisite-dialog :is(button,a,input):focus-visible{outline:3px solid #806641;outline-offset:4px}
.ifa28 .ifa28-requirement-link{padding:4px 0;margin:8px 0 0;border:0;background:none;color:inherit;font-size:15px;text-decoration:underline;text-transform:none;letter-spacing:normal;border-radius:0;min-height:36px}
@media(max-width:600px){.ifa28-prerequisite-dialog{padding:24px}.ifa28-prerequisite-dialog h2{font-size:24px}.ifa28-dialog-actions button{width:100%}}
