/* Keep WoodMart in charge of global chrome and WooCommerce presentation. */
.forrabox-site .whb-header,
.forrabox-site .footer-container,
.forrabox-site .mobile-nav { display: block !important; }
.forrabox-site .wd-toolbar { display: none !important; }
@media (max-width: 1024px) {
  .forrabox-site .wd-toolbar {
    display: flex !important;
    flex-flow: row nowrap;
    align-items: stretch;
  }
  .forrabox-site .wd-toolbar > div,
  .forrabox-site .wd-toolbar > a {
    min-width: 0;
    flex: 1 1 0;
  }
}
.forrabox-site.elementor-page .site-content { padding-top: 0 !important; }
.forrabox-site.elementor-page .main-page-wrapper > .container { max-width: none; padding-inline: 0; }
.forrabox-site .fb-faq { margin-inline: auto; }
.forrabox-site .fb-faq-title { margin-inline: auto !important; text-align: center; }
.fb-school-search { display: grid; gap: 8px; max-width: 720px; margin: 0 auto 10px; color: #164c8c; font-weight: 800; }
.fb-school-search input { width: 100%; min-height: 58px; border: 1px solid #cbd8e6; border-radius: 16px; padding: 12px 18px; font: inherit; box-shadow: 0 8px 30px rgba(22,76,140,.08); }
.fb-school-results { margin: 0 0 26px; color: #687486; text-align: center; }
.fb-school-empty { padding: 18px; border-radius: 14px; background: #fff4ed; text-align: center; }
.fb-school-card[hidden] { display: none; }
.elementor-widget-shortcode .fb-selector,
.elementor-widget-shortcode .fb-school-directory {
  width: min(1240px, calc(100% - 40px));
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}
.elementor-widget-shortcode .fb-selector {
  margin-block: 28px;
  padding: 24px;
  border: 1px solid #dfe5ec;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 45px rgba(31,50,78,.10);
}
.elementor-widget-shortcode .fb-school-directory { padding-inline: 0; }
.fb-ecosystem-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.fb-ecosystem-grid img { width: 100%; max-height: 440px; object-fit: cover; border-radius: 28px; }
.forrabox-site footer.footer-container {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 10% 0%, rgba(61, 153, 224, .22), transparent 34rem),
    linear-gradient(145deg, #123f73 0%, #0d315c 54%, #092744 100%) !important;
  color: #fff;
}
.forrabox-site footer.footer-container::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.055), transparent 35%);
}
.forrabox-site footer.footer-container .main-footer { position: relative; z-index: 1; background: transparent !important; }
.fb-native-footer { padding: 64px 0; }
.fb-native-footer .fb-footer__grid { padding: 0; }
.fb-native-footer h3 { color: #fff; font-size: 17px; }
.fb-native-footer a { display: block; margin: 8px 0; color: #d9e7f5; }
.fb-native-footer img { width: 190px; filter: brightness(0) invert(1); }
.fb-native-footer small { display: block; margin-top: 14px; color: #93acc7; }
:is(.fb-elementor-footer, .elementor-46) {
  width: min(1200px, calc(100% - 48px));
  margin-inline: auto;
  padding-block: clamp(48px, 6vw, 76px) 32px;
  color: #fff;
}
:is(.fb-elementor-footer, .elementor-46) > .elementor-container,
:is(.fb-elementor-footer, .elementor-46) > .e-con-inner,
:is(.fb-elementor-footer, .elementor-46).e-con {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
}
:is(.fb-elementor-footer, .elementor-46) .elementor-container,
:is(.fb-elementor-footer, .elementor-46) .e-con-inner {
  align-items: flex-start;
}
:is(.fb-elementor-footer, .elementor-46) .elementor-column,
:is(.fb-elementor-footer, .elementor-46) .e-con,
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-wrap { min-width: 0; }
:is(.fb-elementor-footer, .elementor-46) .elementor-widget { margin-bottom: 14px; }
:is(.fb-elementor-footer, .elementor-46) .elementor-heading-title {
  margin: 0;
  color: #fff !important;
  font-family: "Nunito Sans", sans-serif;
  font-size: 17px !important;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.01em;
}
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor,
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor p,
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor li,
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor a {
  color: rgba(255,255,255,.88) !important;
  font-size: 15px;
  line-height: 1.7;
}
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor p { margin: 0 0 10px; }
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor a {
  display: block;
  width: fit-content;
  margin: 5px 0;
  text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor a:hover,
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor a:focus-visible {
  color: #fff !important;
  transform: translateX(3px);
}
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
  border-radius: 2px;
}
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-image {
  width: fit-content;
  max-width: 100%;
  padding: 16px 20px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 18px;
  background: rgba(255,255,255,.91);
  box-shadow: 0 18px 42px rgba(0,17,38,.2);
  backdrop-filter: blur(12px);
}
:is(.fb-elementor-footer, .elementor-46) .elementor-widget-image img {
  display: block;
  width: clamp(170px, 18vw, 220px);
  max-width: 100%;
  height: auto;
}
:is(.fb-elementor-footer, .elementor-46) .elementor-divider-separator {
  border-color: rgba(255,255,255,.18) !important;
}
@media (max-width: 1024px) {
  :is(.fb-elementor-footer, .elementor-46) { width: min(100% - 40px, 920px); }
  :is(.fb-elementor-footer, .elementor-46) .elementor-container,
  :is(.fb-elementor-footer, .elementor-46) .e-con-inner { flex-wrap: wrap; row-gap: 34px; }
  :is(.fb-elementor-footer, .elementor-46) .elementor-column { flex: 0 0 50%; width: 50%; }
  :is(.fb-elementor-footer, .elementor-46) .elementor-column > .elementor-widget-wrap { padding-inline: 14px; }
}
@media (max-width: 767px) {
  :is(.fb-elementor-footer, .elementor-46) {
    width: calc(100% - 32px);
    padding-block: 42px 24px;
    text-align: center;
  }
  :is(.fb-elementor-footer, .elementor-46) .elementor-container,
  :is(.fb-elementor-footer, .elementor-46) .e-con-inner { gap: 0; }
  :is(.fb-elementor-footer, .elementor-46) .elementor-column,
  :is(.fb-elementor-footer, .elementor-46) .e-con > .e-con {
    flex: 0 0 100%;
    width: 100%;
  }
  :is(.fb-elementor-footer, .elementor-46) .elementor-column > .elementor-widget-wrap,
  :is(.fb-elementor-footer, .elementor-46) .e-con { padding-inline: 0; }
  :is(.fb-elementor-footer, .elementor-46) .elementor-column:not(:last-child),
  :is(.fb-elementor-footer, .elementor-46) .e-con > .e-con:not(:last-child) {
    margin-bottom: 26px;
    padding-bottom: 26px;
    border-bottom: 1px solid rgba(255,255,255,.14);
  }
  :is(.fb-elementor-footer, .elementor-46) .elementor-widget-image { margin-inline: auto; }
  :is(.fb-elementor-footer, .elementor-46) .elementor-widget-text-editor a { margin-inline: auto; }
  :is(.fb-elementor-footer, .elementor-46) .elementor-heading-title { font-size: 18px !important; }
}
[data-fb-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .65s ease, transform .65s ease; }
[data-fb-reveal].is-visible { opacity: 1; transform: none; }
.fb-steps li { transition: transform .3s ease, box-shadow .3s ease; }
.fb-steps li:hover { transform: translateY(-7px); box-shadow: 0 18px 36px rgba(22,76,140,.12); }
@media (max-width: 700px) {
  .elementor-widget-shortcode .fb-selector,
  .elementor-widget-shortcode .fb-school-directory { width: calc(100% - 28px); }
  .elementor-widget-shortcode .fb-selector { padding: 18px; }
  .fb-ecosystem-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { [data-fb-reveal] { opacity: 1; transform: none; } }

/* Editorial illustration layouts. */
.fb-school-centered-illustration {
  display: block;
  width: min(100%, 720px);
  height: auto;
  margin: 0 auto 48px;
}
.fb-illustration-split,
.fb-page-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 46%);
  gap: clamp(36px, 6vw, 84px);
  align-items: center;
}
.fb-illustration-split > img,
.fb-page-hero__grid > img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: contain;
}
.fb-page-hero__grid h1,
.fb-page-hero__grid p { max-width: none; }
@media (max-width: 800px) {
  .fb-school-centered-illustration { margin-bottom: 32px; }
  .fb-illustration-split,
  .fb-page-hero__grid { grid-template-columns: 1fr; gap: 30px; }
  .fb-illustration-split > img,
  .fb-page-hero__grid > img { width: min(100%, 560px); margin-inline: auto; }
}

/* Keep student-field annotations beside their labels, with controls below. */
.fb-student-fields .fb-field-grid label {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 4px;
  row-gap: 7px;
}
.fb-student-fields .fb-field-grid label > input,
.fb-student-fields .fb-field-grid label > textarea {
  flex: 0 0 100%;
}
.fb-student-fields .fb-field-grid textarea {
  min-height: 84px;
  height: 84px;
  resize: vertical;
}
@media (max-width: 600px) {
  .fb-student-fields {
    padding: 20px 16px;
  }
  .fb-student-fields .fb-field-grid {
    gap: 14px;
  }
}
