/* Manchester staging only. Keep the homepage's existing card sizing. */

/* Original course and sector option boxes. The Sectors headings were already
   enlarged beyond this scale; leave those headings as they are. */
body:not(.home) .course-box {
  min-height: 0 !important;
}
body:not(.home):not(.page-id-798):not(.page-id-822):not(.page-id-861):not(.page-id-880) .course-box h3 {
  font-size: 1.2rem !important; /* 1rem × 1.2 */
  line-height: 1.3;
}
body:not(.home) .course-box p {
  font-size: 1.05rem !important; /* .875rem × 1.2 */
  line-height: 1.5;
}
body:not(.home) .course-box .btn.btn-blue {
  font-size: .9rem !important; /* .75rem × 1.2 */
  line-height: 1.3;
  min-height: 2.85rem;
  height: auto;
  max-width: 10.125rem;
  padding: .55rem .75rem !important;
  white-space: normal;
}
body:not(.home) .course-box:has(> .btn.btn-blue) {
  padding-bottom: 4rem;
}
body:not(.home) :is(.grid-has-box, .section-courses-big-box, .section-sectors-big-box) > .container > .row:has(.course-box) {
  row-gap: 2rem !important;
  margin-bottom: 2rem;
}

/* Original course-booking and buying option boxes. */
.pricing-box h4 {
  font-size: 1.65rem !important; /* 1.375rem × 1.2 */
  line-height: 1.3;
}
.pricing-box label.price {
  font-size: .9rem !important; /* Original 12px × 1.2 */
}
.pricing-box label.sale-price,
.pricing-box .content-bottom > p {
  font-size: 1.05rem !important; /* Original 14px × 1.2 */
}
.pricing-box label.price span {
  font-size: 1.5rem !important; /* 1.25rem × 1.2 */
}
.pricing-box label.sale-price span {
  font-size: 2.625rem !important; /* 2.1875rem × 1.2 */
}
.pricing-box .description,
.pricing-box:not(.white-box) .content-middle p {
  font-size: 1.05rem !important; /* Original 14px × 1.2 */
  line-height: 1.5;
}
.pricing-box .btn.btn-blue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content !important;
  font-size: 16.8px !important; /* Original 14px × 1.2 */
  line-height: 1.3;
  min-height: 56px;
  height: auto;
  max-width: 18rem;
  padding: 8px 12px !important;
  text-align: center;
  white-space: normal;
}
/* Booking/buying actions share one visible arrow without changing link targets. */
.section-pricing .pricing-box .content-bottom .btn.btn-blue::after,
body.page-id-634 .section-pricing .right-content > .btn.btn-default::after {
  content: "→";
  margin-left: .35em;
  flex: none;
}
/* Short labels have room to be more legible without crowding the diagonal sash.
   Longer labels retain the theme's original size. */
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .red-info.red-info-short p {
  font-size: .875rem !important;
}
@media (max-width: 575px) {
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .red-info.red-info-short p {
    font-size: .75rem !important;
  }
}
/* The larger course titles need a little more room below the diagonal ribbon,
   without moving the aligned CTAs. */
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-box:has(> .red-info) .pricing-inner h4 {
  padding-top: 28px;
}
/* Course and Fire Safety booking rows may contain one, two or three options.
   Avoid empty spacer paragraphs in the captured card markup. */
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .big-box-holder {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .big-box-holder > .pricing-box {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  width: 100%;
  min-width: 0;
}
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  width: 100%;
}
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner .content-middle {
  min-height: 0 !important;
}
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner .content-bottom {
  margin-top: auto;
}
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner .content-bottom > p:not(:has(*)) {
  display: none !important;
}
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner .content-bottom .btn {
  max-width: 100%;
  white-space: normal;
  text-align: center;
}
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner .content-bottom .btn.btn-blue {
  max-width: min(18rem, calc(100% - 24px));
}
/* Let desktop cards end with their own content instead of stretching shorter
   cards to the tallest option and reserving an empty 220px footer. */
@media (min-width: 768px) {
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .big-box-holder {
    align-self: flex-start;
  }
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .big-box-holder > .pricing-box,
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner {
    flex: none;
  }
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner .content-bottom {
    margin-top: 1rem;
    min-height: 0 !important;
  }
}
body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner .content-bottom > :is(.mfat-workplace-bulk-note, .mfat-school-bulk-note) {
  max-width: 36ch;
  margin: 1.5rem auto 0;
  font-size: clamp(13px, 1.1vw, 14px) !important;
  line-height: 1.5;
  text-wrap: balance;
}
body.mfat-fire-page .section-pricing .pricing-inner .content-bottom > .mfat-workplace-bulk-note + p {
  margin-top: 0;
  font-size: clamp(13px, 1.1vw, 14px) !important;
  line-height: 1.5;
}
/* On phones, scale from the theme's smaller mobile button baseline rather
   than carrying the desktop 16.8px size into a single-column card. */
@media (max-width: 767px) {
  /* The captured theme leaves a 5% left margin and float on pricing cards.
     With the full-width stacked layout that pushes them off-centre on phones. */
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .big-box-holder > .pricing-box,
  body.mfat-course-page .grid-section-3 .pricing-box {
    float: none;
    margin-inline: auto;
  }
  /* Let each stacked option end after its own content. Captured pages often
     include several spacer paragraphs, which otherwise create a large void. */
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-box,
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner {
    min-height: 0;
  }
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner {
    padding: 2.3rem .85rem 1.5rem;
  }
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-inner .content-bottom {
    margin-top: 1rem;
  }
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-box .content-bottom .btn.btn-blue {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px;
    padding: .55rem .8rem !important;
  }
  body:is(.mfat-course-page, .mfat-fire-page) .section-pricing .pricing-box .content-bottom .btn.btn-blue {
    font-size: .975rem !important; /* Original mobile .8125rem × 1.2 */
  }
}
body.page-id-594 .mfat-epfa-upgrade-note > span {
  display: block;
  margin-top: .35rem;
}
body:is(.page-id-894, .page-id-3286) .grid-section-3 .pricing-box h4 {
  font-size: 1.65rem !important;
  line-height: 1.25;
}
body:is(.page-id-894, .page-id-3286) .grid-section-3 .pricing-box .content-middle p {
  font-size: 1.26rem !important;
  line-height: 1.5;
}
body:is(.page-id-894, .page-id-3286) .grid-section-3 .pricing-box .btn.btn-default {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  height: auto;
  min-height: 3.5rem;
  padding: .7rem 1.2rem !important;
  font-size: 16.8px !important;
  line-height: 1.3;
  text-align: center;
  white-space: normal;
}

/* Red actions and the private-course contact action are not blue pricing
   buttons; give their labels the same legible, vertically centred treatment. */
body.mfat-course-page a.btn.btn-default {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  height: auto;
  max-width: min(100%, 251px);
  padding: 10px 22px !important;
  font-size: 21.6px !important; /* Original 18px × 1.2 */
  line-height: 1.3;
  text-align: center;
  white-space: normal;
}
body.page-id-2772 .grid-has-box > .container > .row > .col-12.text-center > a.btn.btn-blue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 66px;
  height: auto;
  width: auto !important;
  min-width: 264px;
  max-width: calc(100vw - 36px);
  padding: 12px 30px !important;
  font-size: 24px !important;
  line-height: 1.3;
  white-space: nowrap;
}
@media (max-width: 767px) {
  body:is(.page-id-894, .page-id-3286) .grid-section-3 .pricing-box .btn.btn-default {
    font-size: 16.8px !important;
  }
  body.mfat-course-page a.btn.btn-default {
    font-size: 21.6px !important;
  }
}

/* The newer location pages use their own, separately sized card templates. */
.course-card h3 {
  font-size: 1.38rem !important; /* 1.15rem × 1.2 */
}
.course-card p,
.course-card .card-cta {
  font-size: 1.14rem !important; /* .95rem × 1.2 */
}
.course-card .duration {
  font-size: .936rem !important; /* .78rem × 1.2 */
}
.pricing-card .label,
.pricing-card .price-unit {
  font-size: 1.14rem !important; /* .95rem × 1.2 */
}
.pricing-card h3 {
  font-size: 1.8rem !important; /* 1.5rem × 1.2 */
}
.pricing-card .small,
.pricing-card ul li {
  font-size: 1.176rem !important; /* .98rem × 1.2 */
}
.pricing-card .price {
  font-size: 3.36rem !important; /* 2.8rem × 1.2 */
}
.pricing-card .price .strike {
  font-size: 1.44rem !important; /* 1.2rem × 1.2 */
}
.pricing-card.featured::before {
  font-size: .936rem !important; /* .78rem × 1.2 */
}
.pricing-card .btn {
  font-size: 1.2rem !important; /* 1rem × 1.2 */
  line-height: 1.35;
  min-height: 3.25rem;
  height: auto;
  white-space: normal;
  text-align: center;
}

/* Match the homepage's denser phone layout for the long /courses/ list. */
@media (max-width: 575px) {
  body.page-id-439 .section-courses-big-box > .container > .row:has(> .col-sm-6) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 1rem;
    margin-right: 0;
    margin-left: 0;
  }
  body.page-id-439 .section-courses-big-box > .container > .row:has(> .col-sm-6) > .col-sm-6 {
    width: auto;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
  }
  body.page-id-439 .section-courses-big-box .course-box {
    height: 100%;
    min-height: 0;
    margin-top: 0 !important;
    padding: 1.25rem .75rem 4.25rem !important;
  }
  body.page-id-439 .section-courses-big-box .course-box h3 {
    margin: .9rem 0 .6rem;
  }
  body.page-id-439 .section-courses-big-box .course-box .btn.btn-blue {
    bottom: .7rem;
    width: calc(100% - .5rem);
    max-width: 10.125rem;
    min-height: 2.85rem;
    padding: .55rem .5rem !important;
  }
}
@media (max-width: 380px) {
  body.page-id-439 .section-courses-big-box > .container > .row:has(> .col-sm-6) {
    grid-template-columns: minmax(0, 1fr);
  }
}