
/* ===== Backline Concepts: header & footer polish ===== */
.bl-wordmark { font-family: Sora, sans-serif; font-weight: 700; letter-spacing: -0.5px; color: #F2F0ED; text-decoration: none; }
.bl-wordmark span { background: linear-gradient(135deg, #FAB62E, #EF7639); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.bl-header-logo { font-size: 22px; }
.bl-footer-logo { font-size: 21px; display: inline-block; }
.bl-footer-tagline { margin: 14px 0 18px; color: #969CA6; font-size: 14px; line-height: 1.8; max-width: 280px; }
.bl-footer-h { font-family: Sora, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #F2F0ED; margin: 0 0 16px; }
.bl-footer-list { list-style: none; margin: 0; padding: 0; font-size: 14px; line-height: 2.2; }
.bl-footer-list a { color: #969CA6; text-decoration: none; transition: color .3s; }
.bl-footer-list a:hover { color: #FAB62E; }
.bl-social { display: flex; gap: 8px; }
.bl-social a { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 10px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); color: #969CA6; transition: color .3s, border-color .3s; }
.bl-social a:hover { color: #FAB62E; border-color: rgba(250,182,46,.3); }
.bl-contact-list { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.bl-contact-list li { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; color: #969CA6; }
.bl-contact-list .ic { width: 32px; height: 32px; flex: none; border-radius: 10px; background: rgba(250,182,46,.1); color: #FAB62E; display: flex; align-items: center; justify-content: center; }
.bl-contact-list a { color: #969CA6; text-decoration: none; transition: color .3s; }
.bl-contact-list a:hover { color: #FAB62E; }
.bl-legal { text-align: right; font-size: 13px; }
.bl-legal a { color: #969CA6; text-decoration: none; margin-left: 18px; transition: color .3s; }
.bl-legal a:hover { color: #FAB62E; }
@media (max-width: 768px) { .bl-legal { text-align: center; } .bl-legal a:first-child { margin-left: 0; } }

/* ===== Backline: glass header ===== */
header.site-header { position: sticky; top: 0; z-index: 999; }
.admin-bar header.site-header { top: 32px; }
.site-header .ast-primary-header-bar {
  background: rgba(9, 10, 12, .72) !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
}
/* Even, wide container: matches original 1536px + fluid side padding */
.site-header .ast-container { max-width: 1536px; padding-inline: clamp(20px, 4vw, 48px); }
.site-header .ast-builder-grid-row { column-gap: 24px; align-items: center; }
.site-header-section { gap: 10px; align-items: center; }
/* Even menu item spacing */
.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link { padding: 0 14px; }
/* Responsive wordmark */
@media (max-width: 921px) { .bl-header-logo { font-size: 19px; } }
@media (max-width: 480px) { .bl-header-logo { font-size: 17px; } }
/* Mobile off-canvas: dark glass */
.ast-mobile-popup-drawer .ast-mobile-popup-inner {
  background: rgba(14, 15, 18, .92) !important;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.ast-mobile-popup-drawer .main-header-menu .menu-link { color: #F2F0ED; }
.ast-mobile-popup-drawer .main-header-menu .menu-link:hover { color: #FAB62E; }
.ast-mobile-popup-drawer .menu-toggle-close { color: #F2F0ED; }
.ast-header-mobile-trigger .ast-mobile-svg { fill: #F2F0ED; }

/* Mobile dropdown menu */
.ast-mobile-header-content { -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); border-top: 1px solid rgba(255,255,255,.06); }
.ast-mobile-header-content .menu-link, .ast-mobile-header-content a { color: #F2F0ED; }
.ast-mobile-header-content .menu-link:hover { color: #FAB62E; }
.ast-mobile-header-content .ast-builder-button-wrap { padding: 12px 20px 20px; }

/* ===== Backline: sharpened footer ===== */
.site-footer { position: relative; background: radial-gradient(700px 240px at 18% 0%, rgba(250,182,46,.055), transparent 65%), radial-gradient(500px 200px at 85% 100%, rgba(239,118,57,.04), transparent 60%), #090A0C; }
.site-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 5%, rgba(250,182,46,.55) 35%, rgba(239,118,57,.45) 65%, transparent 95%); }
.site-footer .ast-builder-grid-row-container-inner { width: 100%; max-width: 1536px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 48px); }

/* CTA band */
.site-above-footer-wrap { border-bottom: 1px solid rgba(255,255,255,.06); padding: 34px 0; }
.bl-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.bl-cta-kicker { font-family: Sora, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; background: linear-gradient(135deg, #FAB62E, #EF7639); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 6px; }
.bl-cta-title { font-family: Sora, sans-serif; font-weight: 700; font-size: clamp(20px, 2.6vw, 28px); line-height: 1.25; color: #F2F0ED; }
.bl-cta-sub { margin: 8px 0 0; color: #969CA6; font-size: 13px; }
.bl-cta-btn { display: inline-block; background: linear-gradient(135deg, #FAB62E, #EF7639); color: #090A0C !important; font-family: Manrope, sans-serif; font-weight: 600; font-size: 14px; padding: 13px 26px; border-radius: 14px; text-decoration: none; white-space: nowrap; box-shadow: 0 8px 32px -8px rgba(250,182,46,.25); transition: transform .3s, box-shadow .3s; }
.bl-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 16px 48px -12px rgba(250,182,46,.4); }

/* Main columns */
.site-primary-footer-wrap { padding: 52px 0 36px; }
.bl-footer-h { position: relative; padding-bottom: 10px; margin-bottom: 14px; }
.bl-footer-h::after { content: ""; position: absolute; left: 0; bottom: 0; width: 24px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #FAB62E, #EF7639); }
.bl-footer-list a { display: inline-block; transition: color .3s, transform .3s; }
.bl-footer-list a:hover { transform: translateX(5px); }

/* Below bar */
.site-below-footer-wrap { padding: 18px 0; }

/* Responsive */
@media (max-width: 921px) {
  .site-primary-footer-wrap { padding: 40px 0 24px; }
  .site-footer .footer-widget-area, .site-footer [data-section="section-fb-html-2"] { margin-bottom: 28px; }
}
@media (max-width: 768px) {
  .bl-cta { flex-direction: column; text-align: center; align-items: stretch; }
  .bl-cta > div { width: 100%; }
  .bl-cta-btn { display: block; width: 100%; max-width: 320px; margin-inline: auto; text-align: center; box-sizing: border-box; }
  .bl-footer-tagline { max-width: none; }
}
@media (max-width: 544px) {
  .site-above-footer-wrap { padding: 28px 0; }
}

/* Footer rows: stretch grids to container edges */
.site-footer .ast-builder-grid-row { width: 100%; }
.site-above-footer-wrap .ast-builder-grid-row { grid-template-columns: 1fr !important; }
.site-below-footer-wrap .ast-builder-grid-row { grid-template-columns: 1fr auto !important; align-items: center; }
@media (max-width: 544px) {
  .site-below-footer-wrap .ast-builder-grid-row { grid-template-columns: 1fr !important; row-gap: 8px; }
}

/* ===== Backline: footer newsletter ===== */
.bl-newsletter { margin-top: 26px; }
.bl-nl-sub { margin: 0 0 12px; color: #969CA6; font-size: 13px; line-height: 1.6; }
.bl-newsletter .formlayer-form-fields-wrapper { display: flex; gap: 8px; align-items: stretch; flex-wrap: wrap; }
.bl-newsletter .bl-nl-field { flex: 1 1 120px; min-width: 0; margin: 0; }
.bl-newsletter .bl-nl-submit, .bl-newsletter .formlayer-submit-wrap { flex: 0 0 auto; margin: 0 !important; padding: 0; }
.bl-newsletter .bl-nl-input,
.bl-newsletter input[type="email"] {
  width: 100%; height: 42px; padding: 0 14px; font-family: Manrope, sans-serif; font-size: 14px;
  color: #F2F0ED; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px; outline: none; transition: border-color .3s, background .3s;
}
.bl-newsletter input[type="email"]::placeholder { color: #969CA6; }
.bl-newsletter input[type="email"]:focus { border-color: rgba(250,182,46,.5); background: rgba(255,255,255,.06); }
.bl-newsletter .bl-nl-btn,
.bl-newsletter button[type="submit"] {
  height: 42px; padding: 0 18px; font-family: Manrope, sans-serif; font-size: 14px; font-weight: 600;
  color: #090A0C; background: linear-gradient(135deg, #FAB62E, #EF7639);
  border: 0; border-radius: 12px; cursor: pointer; transition: transform .3s, box-shadow .3s;
}
.bl-newsletter button[type="submit"]:hover { transform: translateY(-1px); box-shadow: 0 8px 24px -8px rgba(250,182,46,.4); }
.bl-newsletter .formlayer-form-status { font-size: 13px; margin-bottom: 8px; }
.bl-newsletter .formlayer-form-status:empty { display: none; }
.bl-newsletter .formlayer-form-status.success { color: #FAB62E; }
.bl-newsletter .formlayer-form-status.error { color: #EF7639; }
.bl-newsletter .required-indicator { display: none; }
/* ===== Backline Concepts: homepage (page-id-10) ===== */
.bl-gold { color: #FAB62E; }
.bl-grad { background: linear-gradient(135deg, #FAB62E 0%, #EF7639 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.bl-hero, .bl-services, .bl-about, .bl-why, .bl-work, .bl-quotes, .bl-final { width: 100%; }
.bl-eyebrow .elementor-heading-title { text-transform: uppercase; }
.bl-secthead { max-width: 730px; align-items: stretch; }
.bl-lede { max-width: 660px; }
.bl-secfoot { width: 100%; justify-content: center; }
.bl-body p:last-child { margin-bottom: 0; }

/* ---- buttons ---- */
.bl-btn .elementor-button { display: inline-flex; align-items: center; justify-content: center; transition: transform .25s ease, background-color .25s ease, border-color .25s ease; }
.bl-btn .elementor-button:hover { transform: translateY(-2px); }
.bl-btn--play .elementor-button-icon svg { fill: #FAB62E; width: 12px; height: 12px; }
.bl-btn--play .elementor-button-icon { color: #FAB62E; }
.bl-btn--ghost .elementor-button:hover { border-color: rgba(255,255,255,.85); }
.bl-textlink .elementor-button { padding: 0; background: transparent; }
.bl-textlink .elementor-button:hover { background: transparent; transform: none; }
.bl-textlink .elementor-button-text { border-bottom: 1px solid rgba(250,182,46,.35); padding-bottom: 3px; transition: border-color .25s ease; }
.bl-textlink .elementor-button:hover .elementor-button-text { border-color: #FFC856; }
.bl-ctarow > .elementor-element { width: auto; --width: auto; flex: 0 0 auto; }
.bl-ctarow--c { justify-content: center; }

/* ---- shared section furniture ---- */
.bl-secthead { text-align: center; }
.bl-secthead .elementor-widget { text-align: center; }
.bl-lede { max-width: 470px; margin-inline: auto; }
.bl-lede p { margin-bottom: 0; text-align: center; }
.bl-body p:last-child { margin-bottom: 0; }
.bl-eyebrow .elementor-heading-title { text-transform: uppercase; }

/* ---- 3. services: three equal glass cards ---- */
.bl-grid3 { align-items: stretch; }
.bl-grid3 > .bl-card { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(33.333% - 16px); width: calc(33.333% - 16px); }
.bl-card { transition: border-color .3s ease, background-color .3s ease, transform .3s ease; overflow: hidden; }
.bl-card:hover { background-color: rgba(255,255,255,.07) !important; border-color: rgba(250,182,46,.34) !important; transform: translateY(-3px); }
.bl-card__img { line-height: 0; }
.bl-card__img img { width: 100%; height: 208px; object-fit: cover; display: block; }
.bl-card__body { flex: 1 1 auto; }
.bl-card__d p:last-child { margin-bottom: 0; }
.bl-card .bl-textlink { margin-top: auto; }

/* ---- 4. about: even split, image left ---- */
.bl-about__inner > .e-con-inner { align-items: center; }
.bl-about__inner > .e-con-inner > .bl-about__media,
.bl-about__inner > .e-con-inner > .bl-about__body { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(50% - 40px); width: calc(50% - 40px); }
.bl-about__media { position: relative; }
.bl-about__img { line-height: 0; }
.bl-about__img img { width: 100%; height: 480px; object-fit: cover; border-radius: 16px; display: block; }
.bl-about__badge { position: absolute; right: -22px; bottom: 34px; width: auto !important; --width: auto; z-index: 3; box-shadow: 0 24px 64px -16px rgba(0,0,0,.65); }
.bl-checks .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 22px; }
.bl-checks .elementor-icon-list-item { align-items: center; }
.bl-checks .elementor-icon-list-icon { width: 20px; height: 20px; flex: 0 0 20px; border-radius: 999px; background: rgba(250,182,46,.13); display: inline-flex !important; align-items: center; justify-content: center; margin-right: 10px; }

/* ---- 5. why: left header, 2x2 grid beside it ---- */
.bl-why__inner > .e-con-inner { align-items: center; }
.bl-why__inner > .e-con-inner > .bl-why__head { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(40% - 32px); width: calc(40% - 32px); }
.bl-why__inner > .e-con-inner > .bl-why__grid { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(60% - 32px); width: calc(60% - 32px); }
.bl-why__grid { align-items: stretch; }
.bl-why__grid > .bl-why__item { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(50% - 8px); width: calc(50% - 8px); }
.bl-icon .elementor-icon { width: 44px; height: 44px; border-radius: 12px; background: rgba(250,182,46,.10); display: inline-flex; align-items: center; justify-content: center; }
.bl-icon .elementor-icon svg { fill: #FAB62E; width: 17px; height: 17px; }
.bl-why__d p:last-child { margin-bottom: 0; }

/* ---- 6. work: three equal tiles ---- */
.bl-work__grid { align-items: stretch; }
.bl-work__grid > .bl-work__item { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(33.333% - 16px); width: calc(33.333% - 16px); }
.bl-work__img { line-height: 0; overflow: hidden; border-radius: 16px; margin-bottom: 16px; }
.bl-work__img img { width: 100%; height: 286px; object-fit: cover; display: block; transition: transform .55s ease; }
.bl-work__item:hover .bl-work__img img { transform: scale(1.045); }
.bl-work__kind .elementor-heading-title { text-transform: uppercase; }

/* ---- 7. testimonials: three equal glass cards ---- */
.bl-quotes__grid { align-items: stretch; }
.bl-quotes__grid > .bl-quote { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(33.333% - 14px); width: calc(33.333% - 14px); }
.bl-quote__txt p:last-child { margin-bottom: 0; }
.bl-quote .bl-who { margin-top: auto; }
.bl-who { align-items: center; flex-wrap: nowrap; }
.bl-who > .elementor-element { width: auto; --width: auto; flex: 0 0 auto; }
.bl-who > .bl-who__t { flex: 1 1 auto; }
.bl-who__ini .elementor-heading-title { width: 36px; height: 36px; border-radius: 999px; background: rgba(250,182,46,.12); display: flex; align-items: center; justify-content: center; }

/* ---- 8. final cta ---- */
.bl-final__inner { text-align: center; }
.bl-final__inner .elementor-widget { text-align: center; }
.bl-final__sub p { margin-bottom: 0; }
.bl-final__fine .elementor-icon-list-items { justify-content: center; }
.bl-final__fine .elementor-icon-list-icon { margin-right: 7px; }
/* ---- homepage responsive ---- */
@media (max-width: 1240px) {
  .bl-hero__title .elementor-heading-title { font-size: 60px !important; }
  .bl-h2 .elementor-heading-title { font-size: 44px !important; }
  .bl-about__img img { height: 430px; }
  .bl-work__img img { height: 240px; }
}
@media (max-width: 1100px) {
  .bl-hero__title .elementor-heading-title { font-size: 52px !important; }
  .bl-hero__stats > .e-con-inner > .bl-stat { padding: 0 32px; }
}
@media (min-width: 768px) and (max-width: 900px) {
  .bl-hero__title .elementor-heading-title { font-size: 44px !important; }
}
@media (max-width: 921px) {
  .bl-hero { min-height: 0 !important; }
  .bl-hero__stats { margin-top: 56px; }
  .bl-hero .bl-badge { margin-bottom: 32px; }
  .bl-h2 .elementor-heading-title { font-size: 38px !important; }
  .bl-services, .bl-about, .bl-why, .bl-work, .bl-quotes, .bl-final { padding-top: 84px !important; padding-bottom: 84px !important; }
  /* services + work drop to two across */
  .bl-grid3 > .bl-card,
  .bl-work__grid > .bl-work__item { --width: calc(50% - 12px); width: calc(50% - 12px); }
  .bl-grid3 > .bl-card:last-child,
  .bl-work__grid > .bl-work__item:last-child { --width: 100%; width: 100%; }
  .bl-card__img img { height: 190px; }
  /* about + why stack */
  .bl-about__inner > .e-con-inner > .bl-about__media,
  .bl-about__inner > .e-con-inner > .bl-about__body,
  .bl-why__inner > .e-con-inner > .bl-why__head,
  .bl-why__inner > .e-con-inner > .bl-why__grid { --width: 100%; width: 100%; }
  .bl-about__badge { right: 18px; bottom: 18px; }
  .bl-quotes__grid > .bl-quote { --width: calc(50% - 10px); width: calc(50% - 10px); }
  .bl-quotes__grid > .bl-quote:last-child { --width: 100%; width: 100%; }
}
@media (max-width: 767px) {
  .bl-hero { padding-top: 80px !important; padding-bottom: 40px !important; }
  .bl-hero__title .elementor-heading-title { font-size: 34px !important; }
  .bl-hero__title .elementor-heading-title br { display: none; }
  .bl-h2 .elementor-heading-title { font-size: 30px !important; }
  .bl-services, .bl-about, .bl-why, .bl-work, .bl-quotes, .bl-final { padding-top: 64px !important; padding-bottom: 64px !important; }
  .bl-secthead { margin-bottom: 40px !important; }
  .bl-hero__stats { margin-top: 34px; }
  .bl-hero__stats > .e-con-inner > .bl-stat { padding: 0 13px; }
  .bl-stat__num .elementor-heading-title { font-size: 25px !important; }
  .bl-stat__lbl .elementor-heading-title { font-size: 9.5px !important; letter-spacing: .9px !important; }
  /* everything to one column */
  .bl-grid3 > .bl-card,
  .bl-work__grid > .bl-work__item,
  .bl-quotes__grid > .bl-quote,
  .bl-why__grid > .bl-why__item { --width: 100%; width: 100%; }
  .bl-about__img img { height: 300px; }
  .bl-about__badge { right: 14px; bottom: 14px; padding: 14px 18px !important; }
  .bl-badge__num .elementor-heading-title { font-size: 28px !important; }
  .bl-checks .elementor-icon-list-items { grid-template-columns: 1fr; }
  .bl-work__img img { height: 220px; }
  .bl-final__fine .elementor-icon-list-items { flex-direction: column; align-items: center; gap: 8px; }
  .bl-ctarow { width: 100%; }
  .bl-ctarow > .elementor-element { width: 100%; --width: 100%; }
  .bl-ctarow .elementor-button { width: 100%; }
  .bl-secfoot .elementor-element { width: 100%; --width: 100%; }
  .bl-secfoot { text-align: center; }
  .bl-secfoot .elementor-button { width: 100%; }
}
@media (max-width: 430px) {
  .bl-hero__title .elementor-heading-title { font-size: 29px !important; }
  .bl-hero .bl-hero__title { margin-bottom: 20px; }
  .bl-badge .elementor-heading-title { font-size: 12px !important; padding: 8px 14px; gap: 9px; }
  .bl-hero__stats > .e-con-inner > .bl-stat { padding: 0 9px; }
  .bl-stat__num .elementor-heading-title { font-size: 22px !important; }
  .bl-stat__lbl .elementor-heading-title { font-size: 9px !important; }
}
/* ---- hero loading motion ----
   Transform only, never opacity. The hero carries the primary CTA, so it must
   be readable even if the entrance never runs (throttled tab, no support for
   @starting-style, frozen compositor). Worst case the copy rests 22px lower;
   it is never invisible. */
@media (prefers-reduced-motion: no-preference) {
  .bl-hero .bl-badge,
  .bl-hero .bl-hero__title,
  .bl-hero .bl-hero__sub,
  .bl-hero .bl-ctarow,
  .bl-hero .bl-hero__assure,
  .bl-hero__stats {
    transform: translateY(0);
    transition: transform .7s cubic-bezier(.16,1,.3,1);
  }
  .bl-hero .bl-badge        { transition-delay: .10s; }
  .bl-hero .bl-hero__title  { transition-delay: .22s; }
  .bl-hero .bl-hero__sub    { transition-delay: .34s; }
  .bl-hero .bl-ctarow       { transition-delay: .46s; }
  .bl-hero .bl-hero__assure { transition-delay: .56s; }
  .bl-hero__stats           { transition-delay: .66s; }

  @starting-style {
    .bl-hero .bl-badge,
    .bl-hero .bl-hero__title,
    .bl-hero .bl-hero__sub,
    .bl-hero .bl-ctarow,
    .bl-hero .bl-hero__assure,
    .bl-hero__stats { transform: translateY(22px); }
  }
}
/* ---- hero image delivery: WebP variants per breakpoint ----
   image-set() candidates with a type() are skipped by browsers that cannot
   decode them, so the Elementor JPEG behind this stays the fallback. */
@media (min-width: 1281px) {
  .bl-hero { background-image: image-set(url("/wp-content/uploads/2026/08/hero-stage-1920.webp") type("image/webp")) !important; }
}
@media (min-width: 768px) and (max-width: 1280px) {
  .bl-hero { background-image: image-set(url("/wp-content/uploads/2026/08/hero-stage-1280.webp") type("image/webp")) !important; }
}
@media (max-width: 767px) {
  .bl-hero { background-image: image-set(url("/wp-content/uploads/2026/08/hero-stage-828.webp") type("image/webp")) !important; }
}
/* ---- hero CTA cluster: conversion hierarchy ---- */
.bl-hero__sub p { margin-bottom: 0; }
.bl-hero .bl-btn .elementor-button { min-height: 58px; }
/* the primary must read as the one action: heavier, wider, warmer lift */
.bl-btn--primary .elementor-button { box-shadow: 0 10px 34px -10px rgba(250,182,46,.35); }
.bl-btn--primary .elementor-button:hover { box-shadow: 0 18px 50px -12px rgba(250,182,46,.5); }
.bl-btn--primary .elementor-button-icon svg { width: 13px; height: 13px; transition: transform .25s ease; }
.bl-btn--primary .elementor-button:hover .elementor-button-icon svg { transform: translateX(3px); }
/* the secondary is a glass pill so it stays visible on the dark plate */
.bl-btn--play .elementor-button { -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.bl-btn--play .elementor-button:hover { border-color: rgba(255,255,255,.32) !important; }

/* assurance line sits with the buttons, not adrift */
.bl-hero__assure p { margin-bottom: 0; }
.bl-hero__assure a { color: #FAB62E; text-decoration: none; border-bottom: 1px solid rgba(250,182,46,.4); padding-bottom: 1px; white-space: nowrap; transition: border-color .25s ease; }
.bl-hero__assure a:hover { border-bottom-color: #FFC856; }

@media (max-width: 767px) {
  /* thumb-first: the primary action leads and spans the screen */
  .bl-hero .bl-ctarow { flex-direction: column; }
  .bl-hero .bl-btn .elementor-button { min-height: 56px; }
  .bl-hero__assure p { font-size: 13.5px; }
  .bl-hero__assure a { display: inline-block; }
}
/* ---- hero CTA: mobile ergonomics ---- */
@media (max-width: 767px) {
  /* reclaim height so the stats sit at the fold rather than far below it */
  .bl-hero { padding-top: 80px !important; padding-bottom: 40px !important; }
  .bl-hero .bl-badge { margin-bottom: 24px !important; }
  .bl-hero .bl-hero__title { margin-bottom: 16px !important; }
  .bl-hero .bl-hero__sub { margin-bottom: 24px !important; }
  .bl-hero .bl-ctarow { margin-bottom: 14px !important; }
  .bl-hero__stats { margin-top: 34px; }
  /* the phone number is a real tap target, not just text */
  .bl-hero__assure a { padding: 11px 6px; border-bottom: 0; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(250,182,46,.45); }
}
/* ================================================================
   HERO BASE (restored). Kept last in the file deliberately: an
   earlier rewrite keyed to surrounding markers swallowed this block.
   ================================================================ */
.bl-hero { position: relative; overflow: hidden; text-align: center; }
/* photo scrims: vertical wash, radial vignette, fade into the next band */

.bl-hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background:
    radial-gradient(ellipse at center, rgba(9,10,12,0) 0%, rgba(9,10,12,.6) 75%),
    linear-gradient(180deg, rgba(9,10,12,0) 73%, #090A0C 100%);
}
.bl-hero > .elementor-element { position: relative; z-index: 2; }

/* centring: Elementor forces text-align:start on its widgets */
.bl-hero .elementor-widget { text-align: center; }
.bl-hero .elementor-heading-title,
.bl-hero .elementor-widget-text-editor,
.bl-hero__sub p,
.bl-hero__assure p { text-align: center; }
.bl-hero__inner > .e-con-inner { align-items: stretch; }
.bl-hero__inner > .e-con-inner > .elementor-element { width: 100%; --width: 100%; }
.bl-hero .bl-ctarow > .elementor-element { width: auto; --width: auto; }

/* soft scrim behind the copy: the light beams peak exactly where it sits */
.bl-hero__inner { position: relative; }
.bl-hero__inner::before {
  content: ""; position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 165%; height: 160%;
  background: radial-gradient(ellipse at center, rgba(9,10,12,.68) 0%, rgba(9,10,12,.45) 45%, rgba(9,10,12,0) 72%);
  z-index: -1; pointer-events: none;
}

/* badge pill */
.bl-badge .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; padding: 10px 20px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.bl-stars { color: #FAB62E; font-size: 12px; letter-spacing: 2.5px; }
.bl-badge-txt { border-left: 1px solid rgba(255,255,255,.14); padding-left: 12px; }
.bl-badge-txt strong { color: #F2F0ED; font-weight: 700; }

/* measure */
.bl-hero__sub p { max-width: 576px; margin-left: auto; margin-right: auto; }

/* statistics strip */
.bl-hero__stats { margin-top: 80px; }
.bl-hero__stats > .e-con-inner { justify-content: center; flex-wrap: wrap; }
.bl-hero__stats > .e-con-inner > .bl-stat { --flex-grow: 0; --flex-shrink: 0; --flex-basis: auto; --width: auto; width: auto; padding: 0 40px; }
.bl-hero__stats > .e-con-inner > .bl-stat + .bl-stat { border-left: 1px solid #202327; }
.bl-stat__lbl .elementor-heading-title { text-transform: uppercase; }

@media (max-width: 921px) {
  .bl-hero__stats { margin-top: 56px; }
}
@media (max-width: 767px) {
  .bl-hero__sub p { max-width: none; }
  .bl-hero__stats { margin-top: 34px; }
  .bl-hero__stats > .e-con-inner { flex-wrap: nowrap; }
  .bl-hero__stats > .e-con-inner > .bl-stat { --flex-shrink: 1; --flex-grow: 1; --flex-basis: 0%; --width: auto; padding: 0 6px; min-width: 0; }
  .bl-stat__lbl .elementor-heading-title { font-size: 9px !important; letter-spacing: .6px !important; }
}
/* hero base: mobile corrections that must outrank the desktop rules above */
@media (max-width: 767px) {
  .bl-hero .bl-ctarow > .elementor-element { width: 100%; --width: 100%; }
  .bl-hero .bl-ctarow .elementor-button { width: 100%; }
}
@media (max-width: 430px) {
  /* keep the badge on one line now that it names Kenya */
  .bl-badge .elementor-heading-title { font-size: 11.5px !important; padding: 8px 13px; gap: 8px; }
  .bl-stars { font-size: 10.5px; letter-spacing: 2px; }
  .bl-badge-txt { padding-left: 10px; }
}

/* ---- hero on short laptop viewports ----
   The Astra header takes 69px of normal flow above the hero, so usable height
   is (viewport - 69), and the breakpoints below are set against that figure,
   not against the raw viewport. Measured content heights per tier:
   full 757, A 694, B 596, C 529. Each tier switches one step before its
   content would stop fitting. Height queries, not width: a wide-but-short
   laptop needs exactly the same treatment as a narrow one. */
:root { --bl-header-h: 69px; }
@media (min-width: 922px) {
  .bl-hero { min-height: calc(100vh - var(--bl-header-h)) !important; }
}

/* tier A: usable ~700-760 */
@media (min-width: 768px) and (max-height: 830px) {
  .bl-hero { padding-top: 84px !important; padding-bottom: 40px !important; }
  .bl-hero__title .elementor-heading-title { font-size: 60px !important; }
  .bl-hero .bl-badge { margin-bottom: 28px !important; }
  .bl-hero .bl-hero__title { margin-bottom: 18px !important; }
  .bl-hero .bl-hero__sub { margin-bottom: 28px !important; }
  .bl-hero .bl-ctarow { margin-bottom: 16px !important; }
  .bl-hero__stats { margin-top: 60px !important; }
}

/* tier B: a wider measure drops the support copy to two lines, which buys
   back height without shrinking any type */
@media (min-width: 768px) and (max-height: 765px) {
  .bl-hero { padding-top: 68px !important; padding-bottom: 30px !important; }
  .bl-hero__title .elementor-heading-title { font-size: 52px !important; }
  .bl-hero__sub p { max-width: 760px; }
  .bl-hero .bl-badge { margin-bottom: 22px !important; }
  .bl-hero .bl-hero__title { margin-bottom: 14px !important; }
  .bl-hero .bl-hero__sub { margin-bottom: 22px !important; }
  .bl-hero .bl-ctarow { margin-bottom: 12px !important; }
  .bl-hero .bl-btn .elementor-button { min-height: 52px; }
  .bl-hero__stats { margin-top: 38px !important; }
  .bl-stat__num .elementor-heading-title { font-size: 26px !important; }
}

/* tier C */
@media (min-width: 768px) and (max-height: 665px) {
  .bl-hero { padding-top: 52px !important; padding-bottom: 24px !important; }
  .bl-hero__title .elementor-heading-title { font-size: 46px !important; }
  .bl-hero .bl-badge { margin-bottom: 18px !important; }
  .bl-hero .bl-hero__title { margin-bottom: 12px !important; }
  .bl-hero .bl-hero__sub { margin-bottom: 18px !important; }
  .bl-hero .bl-ctarow { margin-bottom: 10px !important; }
  .bl-hero__stats { margin-top: 26px !important; }
}

/* tier D: netbooks and landscape tablets under ~600 usable */
@media (min-width: 768px) and (max-height: 600px) {
  .bl-hero { padding-top: 40px !important; padding-bottom: 18px !important; }
  .bl-hero__title .elementor-heading-title { font-size: 38px !important; }
  .bl-hero__sub p { font-size: 16px; }
  .bl-hero .bl-badge { margin-bottom: 14px !important; }
  .bl-hero .bl-hero__title { margin-bottom: 10px !important; }
  .bl-hero .bl-hero__sub { margin-bottom: 14px !important; }
  .bl-hero .bl-btn .elementor-button { min-height: 48px; }
  .bl-hero__stats { margin-top: 18px !important; }
  .bl-stat__num .elementor-heading-title { font-size: 23px !important; }
}

/* ================= Services page (page-id-11) =================
   Photo and copy are separated rather than stacked. Text over these
   photographs needed a scrim heavy enough to drop the tiles to an average
   50/255 brightness, which killed the images. Image on top, copy on solid
   glass below: photos stay at full brightness and the type needs no scrim
   at all. Same card language as the homepage services band. */
.bl-phead, .bl-sgrid-sec { width: 100%; }
.bl-plede p { max-width: 672px; margin-bottom: 0; }
.bl-crumb p { margin-bottom: 0; }
.bl-crumb a { color: #969CA6; text-decoration: none; transition: color .25s ease; }
.bl-crumb a:hover { color: #FAB62E; }
.bl-crumb__sep { color: #969CA6; opacity: .5; margin: 0 4px; }
.bl-crumb__cur { color: #F2F0ED; }
.bl-phead .bl-ctarow > .elementor-element { width: auto; --width: auto; }

/* three-up card grid */
.bl-sgrid { align-items: stretch; }
.bl-sgrid > .bl-scard { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(33.333% - 16px); width: calc(33.333% - 16px); }

.bl-scard { position: relative; transition: border-color .3s ease, background-color .3s ease, transform .3s ease; }
.bl-scard:hover { background-color: rgba(255,255,255,.07) !important; border-color: rgba(250,182,46,.34) !important; transform: translateY(-4px); }
.bl-scard__img { line-height: 0; overflow: hidden; }
.bl-scard__img img { width: 100%; height: 176px; object-fit: cover; display: block; transition: transform .55s ease; }
.bl-scard:hover .bl-scard__img img { transform: scale(1.05); }
.bl-scard__body { flex: 1 1 auto; }
.bl-scard__d p:last-child { margin-bottom: 0; }
.bl-scard__link { margin-top: auto; }

/* the icon chip straddles the seam between photo and body */
.bl-scard__icon { margin-top: -22px; position: relative; z-index: 2; }
.bl-scard__icon .elementor-icon { width: 44px; height: 44px; border-radius: 13px; background: #101114; border: 1px solid rgba(250,182,46,.32); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 8px 22px -8px rgba(0,0,0,.8); }
.bl-scard__icon .elementor-icon svg { fill: #FAB62E; width: 16px; height: 16px; }

/* whole card clickable, clipped to the card by its own overflow */
.bl-scard { overflow: hidden; }
.bl-scard .bl-scard__link { z-index: 5; }
.bl-scard .bl-scard__link .elementor-button { position: static; }
.bl-scard .bl-scard__link .elementor-button::after { content: ""; position: absolute; inset: -1000px -22px -24px -22px; z-index: 3; }
.bl-scard:focus-within { outline: 2px solid rgba(250,182,46,.7); outline-offset: 3px; }
.bl-scard .bl-textlink .elementor-button-icon svg { width: 11px; height: 11px; transition: transform .25s ease; }
.bl-scard:hover .bl-textlink .elementor-button-icon svg { transform: translateX(3px); }

/* closing note */
.bl-sfoot { text-align: center; }
.bl-sfoot .elementor-widget { text-align: center; }
.bl-sfoot__p { max-width: 620px; margin-inline: auto; }
.bl-sfoot__p p { margin-bottom: 0; }

@media (max-width: 1240px) {
  .bl-h1 .elementor-heading-title { font-size: 44px !important; }
}
@media (max-width: 921px) {
  .bl-phead { padding-top: 60px !important; padding-bottom: 60px !important; }
  .bl-sgrid-sec { padding-top: 48px !important; padding-bottom: 84px !important; }
  .bl-h1 .elementor-heading-title { font-size: 38px !important; }
  .bl-sgrid > .bl-scard { --width: calc(50% - 12px); width: calc(50% - 12px); }
}
@media (max-width: 767px) {
  .bl-phead { padding-top: 48px !important; padding-bottom: 48px !important; }
  .bl-sgrid-sec { padding-top: 40px !important; padding-bottom: 64px !important; }
  .bl-h1 .elementor-heading-title { font-size: 30px !important; }
  .bl-plede p { font-size: 16px; }
  .bl-sgrid > .bl-scard { --width: 100%; width: 100%; }
  .bl-scard__img img { height: 190px; }
  .bl-phead .bl-ctarow, .bl-sfoot .elementor-element { width: 100%; --width: 100%; }
  .bl-phead .bl-ctarow > .elementor-element { width: 100%; --width: 100%; }
  .bl-phead .bl-ctarow .elementor-button, .bl-sfoot .elementor-button { width: 100%; }
}
/* ================= Service detail pages ================= */
.bl-sov, .bl-sinc, .bl-sfaq, .bl-scta { width: 100%; }
.bl-secthead--left { text-align: left; }
.bl-secthead--left .elementor-widget { text-align: left; }
.bl-minilbl .elementor-heading-title { text-transform: uppercase; }

/* overview: image beside copy */
.bl-sov__inner > .bl-sov__media { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(44% - 32px); width: calc(44% - 32px); }
.bl-sov__inner > .bl-sov__body  { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(56% - 32px); width: calc(56% - 32px); }
.bl-sov__img { line-height: 0; }
.bl-sov__img img { width: 100%; height: 430px; object-fit: cover; border-radius: 16px; display: block; }
.bl-sov__body .bl-body p:last-child { margin-bottom: 0; }
.bl-sov__body .bl-body p { margin-bottom: 14px; }

/* ideal-for chips */
.bl-chips > .bl-chip { --flex-grow: 0; --flex-shrink: 0; --width: auto; width: auto; }
.bl-chip .elementor-heading-title { display: inline-block; padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.10); }

/* included grid */
.bl-incgrid { align-items: stretch; }
.bl-incgrid > .bl-inc { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(33.333% - 14px); width: calc(33.333% - 14px); }
.bl-inc { transition: border-color .3s ease, background-color .3s ease; }
.bl-inc:hover { border-color: rgba(250,182,46,.30) !important; background-color: rgba(255,255,255,.06) !important; }
.bl-inc__i .elementor-icon { width: 26px; height: 26px; border-radius: 999px; background: rgba(250,182,46,.13); display: inline-flex; align-items: center; justify-content: center; }
.bl-inc__i .elementor-icon svg { fill: #FAB62E; width: 11px; height: 11px; }
.bl-inc__d p:last-child { margin-bottom: 0; }

/* faq accordion */
.bl-faq .elementor-accordion .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid #202327 !important; }
.bl-faq .elementor-accordion .elementor-accordion-item:first-child { border-top: 1px solid #202327 !important; }
.bl-faq .elementor-tab-title { transition: color .25s ease; }
.bl-faq .elementor-tab-title:hover { color: #FAB62E !important; }
.bl-faq .elementor-tab-title a { text-decoration: none; }
.bl-faq .elementor-tab-content { font-family: Manrope, sans-serif; font-size: 15px; line-height: 1.72; border: 0 !important; }
.bl-faq .elementor-tab-content p:last-child { margin-bottom: 0; }
.bl-faq .elementor-accordion-icon svg { width: 12px; height: 12px; }

/* closing cta */
.bl-scta__inner { text-align: center; }
.bl-scta__inner .elementor-widget { text-align: center; }
.bl-scta__p { max-width: 620px; margin-inline: auto; }
.bl-scta__p p { margin-bottom: 0; }
.bl-scta .bl-ctarow > .elementor-element { width: auto; --width: auto; }

@media (max-width: 1240px) {
  .bl-sov__img img { height: 380px; }
}
@media (max-width: 921px) {
  .bl-sov, .bl-sinc, .bl-sfaq { padding-top: 72px !important; padding-bottom: 72px !important; }
  .bl-scta { padding-top: 68px !important; padding-bottom: 68px !important; }
  .bl-sov__inner > .bl-sov__media, .bl-sov__inner > .bl-sov__body { --width: 100%; width: 100%; }
  .bl-sov__img img { height: 320px; }
  .bl-incgrid > .bl-inc { --width: calc(50% - 10px); width: calc(50% - 10px); }
  .bl-h2 .elementor-heading-title { font-size: 30px !important; }
}
@media (max-width: 767px) {
  .bl-sov, .bl-sinc, .bl-sfaq { padding-top: 56px !important; padding-bottom: 56px !important; }
  .bl-scta { padding-top: 56px !important; padding-bottom: 56px !important; }
  .bl-h1 .elementor-heading-title { font-size: 30px !important; }
  .bl-h2 .elementor-heading-title { font-size: 26px !important; }
  .bl-sov__img img { height: 240px; }
  .bl-incgrid > .bl-inc { --width: 100%; width: 100%; }
  .bl-faq .elementor-tab-title { font-size: 16px !important; }
  .bl-scta .bl-ctarow { width: 100%; }
  .bl-scta .bl-ctarow > .elementor-element { width: 100%; --width: 100%; }
  .bl-scta .bl-ctarow .elementor-button { width: 100%; }
}
/* ---- service pages: spec table, areas, related ---- */
.bl-sspec, .bl-srel { width: 100%; }
.bl-lead { color: #F2F0ED; font-size: 17px; line-height: 1.68; }

.bl-sspec__inner > .bl-sspec__a { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(52% - 28px); width: calc(52% - 28px); }
.bl-sspec__inner > .bl-sspec__b { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(48% - 28px); width: calc(48% - 28px); }

.bl-spec { width: 100%; border-collapse: collapse; }
.bl-spec th, .bl-spec td { text-align: left; padding: 13px 0; border-bottom: 1px solid #202327; vertical-align: top; }
.bl-spec tr:first-child th, .bl-spec tr:first-child td { border-top: 1px solid #202327; }
.bl-spec th { font-family: Manrope, sans-serif; font-weight: 600; color: #969CA6; width: 46%; padding-right: 20px; }
.bl-spec td { font-family: Manrope, sans-serif; font-weight: 500; color: #F2F0ED; }
.bl-spectbl p:last-child { margin-bottom: 0; }

.bl-areas p { margin-bottom: 12px; }
.bl-areas p:last-child { margin-bottom: 0; }
.bl-areas strong { color: #F2F0ED; font-weight: 600; }

.bl-relgrid { align-items: stretch; }
.bl-relgrid > .bl-rel { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(33.333% - 12px); width: calc(33.333% - 12px); }
.bl-rel { position: relative; overflow: hidden; transition: border-color .3s ease, background-color .3s ease, transform .3s ease; }
.bl-rel:hover { border-color: rgba(250,182,46,.34) !important; background-color: rgba(255,255,255,.07) !important; transform: translateY(-3px); }
.bl-rel__d p:last-child { margin-bottom: 0; }
.bl-rel__link { margin-top: auto; z-index: 5; }
.bl-rel .bl-rel__link .elementor-button { position: static; }
.bl-rel .bl-rel__link .elementor-button::after { content: ""; position: absolute; inset: -1000px -22px -22px -22px; z-index: 3; }
.bl-rel:focus-within { outline: 2px solid rgba(250,182,46,.7); outline-offset: 3px; }
.bl-rel .elementor-button-icon svg { width: 11px; height: 11px; transition: transform .25s ease; }
.bl-rel:hover .elementor-button-icon svg { transform: translateX(3px); }

@media (max-width: 921px) {
  .bl-sspec, .bl-srel { padding-top: 68px !important; padding-bottom: 68px !important; }
  .bl-sspec__inner > .bl-sspec__a, .bl-sspec__inner > .bl-sspec__b { --width: 100%; width: 100%; }
  .bl-relgrid > .bl-rel { --width: calc(50% - 9px); width: calc(50% - 9px); }
  .bl-relgrid > .bl-rel:last-child { --width: 100%; width: 100%; }
}
@media (max-width: 767px) {
  .bl-sspec, .bl-srel { padding-top: 52px !important; padding-bottom: 52px !important; }
  .bl-relgrid > .bl-rel { --width: 100%; width: 100%; }
  .bl-lead { font-size: 16px; }
  .bl-spec th { width: 50%; padding-right: 14px; }
  .bl-spec th, .bl-spec td { font-size: 14px; }
}
/* ================= About page (page-id-12) ================= */
.bl-astory, .bl-astats, .bl-afound, .bl-atrust { width: 100%; }
.bl-phead--img { position: relative; overflow: hidden; }

/* story: image left, copy right */
.bl-astory__inner > .bl-astory__media { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(44% - 32px); width: calc(44% - 32px); }
.bl-astory__inner > .bl-astory__body  { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(56% - 32px); width: calc(56% - 32px); }
.bl-astory__img { line-height: 0; }
.bl-astory__img img { width: 100%; height: 520px; object-fit: cover; border-radius: 16px; display: block; }
.bl-astory__body .bl-body p { margin-bottom: 14px; }
.bl-astory__body .bl-body p:last-child { margin-bottom: 0; }

/* statistics band */
.bl-astatgrid { align-items: stretch; }
.bl-astatgrid > .bl-astat { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(25% - 15px); width: calc(25% - 15px); text-align: center; }
.bl-astat .elementor-widget { text-align: center; }
.bl-astat__l .elementor-heading-title { text-transform: uppercase; }

/* mission / vision / values */
.bl-mvgrid { align-items: stretch; }
.bl-mvgrid > .bl-mv { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(33.333% - 14px); width: calc(33.333% - 14px); }
.bl-mv { transition: border-color .3s ease, background-color .3s ease, transform .3s ease; }
.bl-mv:hover { border-color: rgba(250,182,46,.30) !important; background-color: rgba(255,255,255,.07) !important; transform: translateY(-3px); }
.bl-mv__i .elementor-icon { width: 42px; height: 42px; border-radius: 12px; background: rgba(250,182,46,.12); border: 1px solid rgba(250,182,46,.24); display: inline-flex; align-items: center; justify-content: center; }
.bl-mv__i .elementor-icon svg { fill: #FAB62E; width: 16px; height: 16px; }
.bl-mv__d p:last-child { margin-bottom: 0; }

/* why clients trust us: copy left, image right */
.bl-atrust__inner > .bl-atrust__body  { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(56% - 32px); width: calc(56% - 32px); }
.bl-atrust__inner > .bl-atrust__media { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(44% - 32px); width: calc(44% - 32px); }
.bl-atrust__img { line-height: 0; }
.bl-atrust__img img { width: 100%; height: 470px; object-fit: cover; border-radius: 16px; display: block; }
.bl-checks--one .elementor-icon-list-items { display: block; }
.bl-checks--one .elementor-icon-list-item { align-items: flex-start; }
.bl-checks--one .elementor-icon-list-icon { width: 20px; height: 20px; flex: 0 0 20px; border-radius: 999px; background: rgba(250,182,46,.13); display: inline-flex !important; align-items: center; justify-content: center; margin-right: 11px; margin-top: 3px; }
.bl-atrust__body .bl-body p:last-child { margin-bottom: 0; }

@media (max-width: 1240px) {
  .bl-astory__img img { height: 460px; }
  .bl-atrust__img img { height: 420px; }
}
@media (max-width: 921px) {
  .bl-astory, .bl-afound, .bl-atrust { padding-top: 72px !important; padding-bottom: 72px !important; }
  .bl-astory__inner > .bl-astory__media, .bl-astory__inner > .bl-astory__body,
  .bl-atrust__inner > .bl-atrust__body, .bl-atrust__inner > .bl-atrust__media { --width: 100%; width: 100%; }
  .bl-astory__img img, .bl-atrust__img img { height: 340px; }
  .bl-mvgrid > .bl-mv { --width: calc(50% - 10px); width: calc(50% - 10px); }
  .bl-mvgrid > .bl-mv:last-child { --width: 100%; width: 100%; }
  .bl-astatgrid > .bl-astat { --width: calc(50% - 10px); width: calc(50% - 10px); }
  .bl-phead--img { padding-top: 64px !important; padding-bottom: 64px !important; }
}
@media (max-width: 767px) {
  .bl-astory, .bl-afound, .bl-atrust { padding-top: 56px !important; padding-bottom: 56px !important; }
  .bl-astats { padding-top: 48px !important; padding-bottom: 48px !important; }
  .bl-phead--img { padding-top: 48px !important; padding-bottom: 48px !important; }
  .bl-astory__img img, .bl-atrust__img img { height: 250px; }
  .bl-mvgrid > .bl-mv { --width: 100%; width: 100%; }
  .bl-astat__n .elementor-heading-title { font-size: 27px !important; }
  .bl-astat__l .elementor-heading-title { font-size: 11px !important; }
  .bl-atrust__body .bl-ctarow > .elementor-element { width: 100%; --width: 100%; }
  .bl-atrust__body .bl-ctarow .elementor-button { width: 100%; }
}
/* ---- About header banner: wide WebP crops instead of a 2000x2000 square ----
   The band renders at roughly 3.2:1, so serving a square wasted most of the
   bytes. Crops are 24KB / 16KB / 12KB against the original 253KB. */
@media (min-width: 1281px) {
  .bl-phead--img { background-image: image-set(url("/wp-content/uploads/2026/08/about-banner-1920.webp") type("image/webp")) !important; }
}
@media (min-width: 768px) and (max-width: 1280px) {
  .bl-phead--img { background-image: image-set(url("/wp-content/uploads/2026/08/about-banner-1280.webp") type("image/webp")) !important; }
}
@media (max-width: 767px) {
  .bl-phead--img { background-image: image-set(url("/wp-content/uploads/2026/08/about-banner-828.webp") type("image/webp")) !important; }
}
/* ================= Portfolio page (page-id-13) ================= */
.bl-pwork { width: 100%; }
.bl-pfeatwrap { width: 100%; }

/* featured project: image left, copy right */
.bl-pfeat { position: relative; }
.bl-pfeat > .bl-pfeat__media { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: 50%; width: 50%; }
.bl-pfeat > .bl-pfeat__body  { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: 50%; width: 50%; }
.bl-pfeat__img { line-height: 0; height: 100%; }
.bl-pfeat__img img { width: 100%; height: 100%; min-height: 400px; object-fit: cover; display: block; }
.bl-pfeat__body .bl-body p:last-child { margin-bottom: 0; }

/* project cards */
.bl-pgrid { align-items: stretch; }
.bl-pgrid > .bl-pcard { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --width: calc(33.333% - 16px); width: calc(33.333% - 16px); }
.bl-pcard { transition: border-color .3s ease, background-color .3s ease, transform .3s ease; }
.bl-pcard:hover { border-color: rgba(250,182,46,.34) !important; background-color: rgba(255,255,255,.07) !important; transform: translateY(-4px); }
.bl-pcard__img { line-height: 0; overflow: hidden; }
.bl-pcard__img img { width: 100%; height: 220px; object-fit: cover; display: block; transition: transform .55s ease; }
.bl-pcard:hover .bl-pcard__img img { transform: scale(1.05); }
.bl-pcard__body { flex: 1 1 auto; }
.bl-pcard__k .elementor-heading-title { text-transform: uppercase; }
.bl-pcard__d p:last-child { margin-bottom: 0; }
.bl-pcard .bl-chips { margin-top: auto; }

/* venue + date meta line */
.bl-meta p { margin-bottom: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.bl-meta__v { color: #F2F0ED; }
.bl-meta__d { position: relative; padding-left: 12px; }
.bl-meta__d::before { content: ""; position: absolute; left: 0; top: 50%; width: 4px; height: 4px; border-radius: 999px; background: rgba(250,182,46,.7); transform: translateY(-50%); }

@media (max-width: 1240px) {
  .bl-pfeat__img img { min-height: 360px; }
}
@media (max-width: 921px) {
  .bl-pwork { padding-top: 68px !important; padding-bottom: 76px !important; }
  .bl-pfeat > .bl-pfeat__media, .bl-pfeat > .bl-pfeat__body { --width: 100%; width: 100%; }
  .bl-pfeat__img img { min-height: 300px; height: 300px; }
  .bl-pfeat__body { padding: 30px !important; }
  .bl-pgrid > .bl-pcard { --width: calc(50% - 12px); width: calc(50% - 12px); }
  .bl-pgrid > .bl-pcard:last-child { --width: 100%; width: 100%; }
}
@media (max-width: 767px) {
  .bl-pwork { padding-top: 52px !important; padding-bottom: 56px !important; }
  .bl-pgrid > .bl-pcard { --width: 100%; width: 100%; }
  .bl-pfeat__img img { min-height: 230px; height: 230px; }
  .bl-pfeat__body { padding: 24px !important; }
  .bl-pfeat__t .elementor-heading-title { font-size: 24px !important; }
  .bl-pcard__img img { height: 200px; }
}
/* ---- Portfolio rendered from the Projects post type ---- */
.blp { width: 100%; }
.blp-empty { color: #969CA6; font-family: Manrope, sans-serif; }
.blp-feat, .blp-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; overflow: hidden; }
.blp-feat { display: flex; flex-wrap: wrap; align-items: stretch; margin-bottom: 28px; }
.blp-feat__media { flex: 0 0 50%; max-width: 50%; line-height: 0; }
.blp-feat__media img { width: 100%; height: 100%; min-height: 400px; object-fit: cover; display: block; }
.blp-feat__body { flex: 0 0 50%; max-width: 50%; padding: 40px; display: flex; flex-direction: column; justify-content: center; }
.blp-feat__t { font-family: Sora, sans-serif; font-size: 30px; font-weight: 700; letter-spacing: -.7px; line-height: 1.2; color: #F2F0ED; margin: 0 0 12px; }
.blp-grid { display: flex; flex-wrap: wrap; gap: 24px; align-items: stretch; }
.blp-card { flex: 0 0 calc(33.333% - 16px); max-width: calc(33.333% - 16px); display: flex; flex-direction: column; transition: border-color .3s ease, background-color .3s ease, transform .3s ease; }
.blp-card:hover { border-color: rgba(250,182,46,.34); background: rgba(255,255,255,.07); transform: translateY(-4px); }
.blp-card__img { line-height: 0; overflow: hidden; }
.blp-card__img img { width: 100%; height: 220px; object-fit: cover; display: block; transition: transform .55s ease; }
.blp-card:hover .blp-card__img img { transform: scale(1.05); }
.blp-card__body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1 1 auto; }
.blp-card__t { font-family: Sora, sans-serif; font-size: 18px; font-weight: 600; letter-spacing: -.45px; line-height: 1.4; color: #F2F0ED; margin: 0 0 10px; }
.blp-eyebrow { font-family: Manrope, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2.2px; text-transform: uppercase; color: #FAB62E; margin: 0 0 14px; }
.blp-kind { font-family: Manrope, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 1.7px; text-transform: uppercase; color: #FAB62E; margin: 0 0 8px; }
.blp-meta { font-family: Manrope, sans-serif; font-size: 12.5px; font-weight: 500; color: #969CA6; margin: 0 0 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.blp-feat .blp-meta { font-size: 13.5px; margin-bottom: 16px; }
.blp-meta__v { color: #F2F0ED; }
.blp-meta__d { position: relative; padding-left: 12px; }
.blp-meta__d::before { content: ""; position: absolute; left: 0; top: 50%; width: 4px; height: 4px; border-radius: 999px; background: rgba(250,182,46,.7); transform: translateY(-50%); }
.blp-desc { font-family: Manrope, sans-serif; font-size: 14px; line-height: 1.6; color: #969CA6; margin: 0 0 16px; }
.blp-feat .blp-desc { font-size: 15.5px; line-height: 1.7; margin-bottom: 22px; }
.blp-tags { list-style: none; margin: auto 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.blp-tags li { font-family: Manrope, sans-serif; font-size: 12px; font-weight: 500; color: #969CA6; padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.10); }
.blp-noimg { width: 100%; height: 220px; background: #101114; }
@media (max-width: 921px) {
  .blp-feat__media, .blp-feat__body { flex: 0 0 100%; max-width: 100%; }
  .blp-feat__media img { min-height: 300px; height: 300px; }
  .blp-feat__body { padding: 30px; }
  .blp-card { flex: 0 0 calc(50% - 12px); max-width: calc(50% - 12px); }
  .blp-card:last-child { flex: 0 0 100%; max-width: 100%; }
}
@media (max-width: 767px) {
  .blp-card, .blp-card:last-child { flex: 0 0 100%; max-width: 100%; }
  .blp-feat__media img { min-height: 230px; height: 230px; }
  .blp-feat__body { padding: 24px; }
  .blp-feat__t { font-size: 24px; }
  .blp-card__img img { height: 200px; }
}

/* ================= Gallery (page-id-14) ================= */
.blg { width: 100%; }
.blg-empty { color: #969CA6; font-family: Manrope, sans-serif; }
.blg-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 32px; }
.blg-f { font-family: Manrope, sans-serif; font-size: 14px; font-weight: 500; color: #969CA6; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.10); border-radius: 999px; padding: 9px 20px; cursor: pointer; transition: color .25s ease, background-color .25s ease, border-color .25s ease; }
.blg-f:hover { color: #F2F0ED; border-color: rgba(255,255,255,.24); }
.blg-f.is-on { background: #FAB62E; border-color: #FAB62E; color: #090A0C; font-weight: 600; }
.blg-f:focus-visible { outline: 2px solid rgba(250,182,46,.8); outline-offset: 2px; }
/* CSS columns give a real masonry flow, so portrait and landscape shots keep their own aspect */
.blg-grid { column-count: 3; column-gap: 20px; }
.blg-item { break-inside: avoid; margin: 0 0 20px; display: block; }
.blg-item.is-hidden { display: none; }
.blg-open { display: block; position: relative; width: 100%; padding: 0; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; overflow: hidden; background: #101114; cursor: zoom-in; line-height: 0; transition: border-color .3s ease, transform .3s ease; }
.blg-open:hover { border-color: rgba(250,182,46,.34); transform: translateY(-3px); }
.blg-open:focus-visible { outline: 2px solid rgba(250,182,46,.8); outline-offset: 3px; }
.blg-open img { width: 100%; height: auto; display: block; transition: transform .55s ease; }
.blg-open:hover img { transform: scale(1.04); }
.blg-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 34px 16px 14px; text-align: left; line-height: 1.4; background: linear-gradient(to top, rgba(9,10,12,.94), rgba(9,10,12,.55) 55%, rgba(9,10,12,0)); opacity: 0; transform: translateY(8px); transition: opacity .3s ease, transform .3s ease; }
.blg-open:hover .blg-cap, .blg-open:focus-visible .blg-cap { opacity: 1; transform: translateY(0); }
.blg-cap__t { display: block; font-family: Sora, sans-serif; font-size: 15px; font-weight: 600; color: #F2F0ED; }
.blg-cap__c { display: block; margin-top: 3px; font-family: Manrope, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: #FAB62E; }
.blg-count { font-family: Manrope, sans-serif; font-size: 13.5px; color: #969CA6; margin: 10px 0 0; }
/* lightbox */
.blg-box { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 24px; background: rgba(6,7,9,.94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.blg-box[hidden] { display: none; }
.blg-box__fig { margin: 0; max-width: min(1100px, 88vw); max-height: 86vh; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.blg-box__img { max-width: 100%; max-height: 76vh; width: auto; height: auto; border-radius: 12px; display: block; }
.blg-box__cap { font-family: Manrope, sans-serif; font-size: 14.5px; color: #F2F0ED; text-align: center; }
.blg-box__x { position: absolute; top: 18px; right: 20px; width: 44px; height: 44px; font-size: 26px; line-height: 1; color: #F2F0ED; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; cursor: pointer; transition: background-color .25s ease; }
.blg-box__x:hover { background: rgba(255,255,255,.14); }
.blg-box__nav { width: 48px; height: 48px; flex: 0 0 48px; font-size: 30px; line-height: 1; color: #F2F0ED; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; cursor: pointer; transition: background-color .25s ease; }
.blg-box__nav:hover { background: rgba(255,255,255,.14); }
.blg-box button:focus-visible { outline: 2px solid rgba(250,182,46,.8); outline-offset: 2px; }
@media (max-width: 1024px) { .blg-grid { column-count: 2; } }
@media (max-width: 921px) { .bl-ggrid { padding-top: 68px !important; padding-bottom: 76px !important; } }
@media (max-width: 640px) {
  .blg-grid { column-count: 1; }
  .blg-cap { opacity: 1; transform: none; }
  .blg-box { padding: 12px; gap: 4px; }
  .blg-box__nav { width: 40px; height: 40px; flex: 0 0 40px; font-size: 24px; }
  .blg-box__img { max-height: 68vh; }
  .bl-ggrid { padding-top: 52px !important; padding-bottom: 56px !important; }
}
@media (prefers-reduced-motion: reduce) { .blg-open, .blg-open img, .blg-cap { transition: none; } }

/* ================================================================
   BACKLINE FOOTER v2 | Stage Gold
   Appended (never replacing) so the page-level CSS above survives.
   Opens by neutralising the earlier footer block's leaks, since
   those rules still sit above this one in the same file.
   ================================================================ */
:root{
  --bl-bg:#090A0C; --bl-surface:#101114; --bl-ink:#F2F0ED; --bl-muted:#969CA6;
  --bl-accent:#FAB62E; --bl-accent-hi:#FFC856; --bl-ember:#EF7639; --bl-line:#202327;
  --bl-r-sm:8px; --bl-r-md:14px; --bl-r-lg:22px;
}
.site-footer::before{display:none}
.site-above-footer-wrap{border-bottom:0}
.bl-legal a{margin-left:0}

/* ---------- Wordmark ---------- */
.bl-wordmark{font-family:Sora,sans-serif;font-weight:700;letter-spacing:-.02em;color:var(--bl-ink);text-decoration:none;display:inline-block}
.bl-wordmark span{background:linear-gradient(135deg,var(--bl-accent),var(--bl-ember));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.bl-wave-badge{display:inline-block;vertical-align:middle;margin-right:10px;color:var(--bl-accent);line-height:0}
.bl-footer-logo{font-size:21px}

/* ---------- Footer shell ---------- */
.site-footer{position:relative;background:var(--bl-bg)}
.site-footer .ast-builder-grid-row-container-inner{width:100%;max-width:1536px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.site-footer .ast-builder-grid-row{width:100%}

/* ---------- CTA panel ---------- */
.site-above-footer-wrap{padding:0 0 54px}
.site-above-footer-wrap .ast-builder-grid-row{grid-template-columns:1fr!important}
.bl-cta{display:block;text-align:left;position:relative;overflow:hidden;border-radius:var(--bl-r-lg);
  background:radial-gradient(620px 320px at 6% 42%,rgba(250,182,46,.10),transparent 68%),radial-gradient(760px 380px at 94% 64%,rgba(239,118,57,.09),transparent 66%),var(--bl-surface);
  box-shadow:0 24px 64px -16px rgba(0,0,0,.55),0 0 72px -30px rgba(250,182,46,.38)}
.bl-cta::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:3;
  background:linear-gradient(135deg,rgba(250,182,46,.9),rgba(239,118,57,.35) 38%,rgba(250,182,46,.12) 62%,rgba(250,182,46,.7));
  -webkit-mask:linear-gradient(#090A0C 0 0) content-box,linear-gradient(#090A0C 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#090A0C 0 0) content-box,linear-gradient(#090A0C 0 0);mask-composite:exclude}
.bl-cta-bars{position:absolute;left:0;top:0;height:100%;width:120px;opacity:.55;pointer-events:none;z-index:0}
.bl-cta-trails{position:absolute;right:0;bottom:0;height:118%;width:46%;opacity:.8;pointer-events:none;z-index:0}
.bl-cta-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(28px,4vw,56px);align-items:center;padding:clamp(30px,3.6vw,48px) clamp(24px,3.6vw,54px)}
.bl-cta-main{min-width:0}
.bl-cta-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-family:Manrope,sans-serif;
  font-size:13px;font-weight:600;letter-spacing:2.6px;text-transform:uppercase;color:var(--bl-accent)}
.bl-cta-title{font-family:Sora,sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.05;
  font-size:clamp(30px,4.2vw,52px);color:var(--bl-ink);margin:0 0 16px}
.bl-cta-lede{margin:0 0 26px;max-width:54ch;font-family:Manrope,sans-serif;font-size:16.5px;line-height:1.65;color:var(--bl-muted)}
.bl-cta-chips{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.bl-cta-chips li{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--bl-r-md);
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  font-family:Manrope,sans-serif;font-size:14px;font-weight:600;line-height:1.3;color:var(--bl-ink)}
.bl-chip-ic{flex:none;color:var(--bl-accent);display:inline-flex;line-height:0}
.bl-cta-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.bl-cta-btn{display:flex;align-items:center;gap:16px;width:auto;max-width:none;padding:16px 22px;border-radius:var(--bl-r-md);text-decoration:none;
  background:linear-gradient(135deg,var(--bl-accent-hi),var(--bl-accent) 48%,var(--bl-ember));color:#090A0C!important;
  font-family:Sora,sans-serif;font-weight:700;font-size:clamp(17px,1.5vw,20px);letter-spacing:-.01em;
  box-shadow:0 10px 40px -10px rgba(250,182,46,.5);transition:transform .25s,box-shadow .25s}
.bl-cta-btn:hover{transform:translateY(-2px);box-shadow:0 18px 56px -12px rgba(250,182,46,.62)}
.bl-cta-btn-ic{width:46px;height:46px;flex:none;border-radius:999px;background:rgba(9,10,12,.16);display:inline-flex;align-items:center;justify-content:center}
.bl-cta-btn-label{flex:1}
.bl-cta-assure{display:flex;align-items:center;justify-content:center;gap:9px;margin:0;font-family:Manrope,sans-serif;font-size:13.5px;color:var(--bl-muted)}
.bl-cta-assure svg{color:var(--bl-accent);flex:none}

/* ---------- Footer columns ---------- */
.site-primary-footer-wrap{padding:54px 0 44px;border-top:1px solid var(--bl-line)}
.site-primary-footer-wrap .ast-builder-grid-row{grid-template-columns:1.25fr .95fr .8fr .8fr 1.15fr!important;column-gap:0!important}
.site-primary-footer-wrap .ast-builder-grid-row > div{padding-inline:34px;min-width:0}
.site-primary-footer-wrap .ast-builder-grid-row > div:first-child{padding-left:0}
.site-primary-footer-wrap .ast-builder-grid-row > div:last-child{padding-right:0}
.site-primary-footer-wrap .ast-builder-grid-row > div + div{border-left:1px solid var(--bl-line)}
.bl-footer-h{font-family:Manrope,sans-serif;font-size:13px;font-weight:700;letter-spacing:2.6px;text-transform:uppercase;
  color:var(--bl-accent);margin:0 0 18px;padding-bottom:12px;position:relative}
.bl-footer-h::after{content:"";position:absolute;left:0;bottom:0;width:38px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--bl-accent),var(--bl-ember))}
.bl-footer-tagline{margin:16px 0 0;color:var(--bl-muted);font-family:Manrope,sans-serif;font-size:14.5px;line-height:1.7;max-width:31ch}
.bl-social{display:flex;gap:10px;margin-top:22px}
.bl-social a{width:42px;height:42px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--bl-muted);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);
  transition:color .25s,border-color .25s,transform .25s}
.bl-social a:hover{color:var(--bl-accent);border-color:rgba(250,182,46,.45);transform:translateY(-2px)}
.bl-fl{list-style:none;margin:0;padding:0}
.bl-fl a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;
  color:var(--bl-ink);text-decoration:none;font-family:Manrope,sans-serif;font-size:15px;transition:color .25s,padding-left .25s}
.bl-fl a::after{content:"";width:6px;height:6px;flex:none;border-right:1.7px solid var(--bl-accent);border-top:1.7px solid var(--bl-accent);
  transform:rotate(45deg);opacity:.6;transition:opacity .25s,transform .25s}
.bl-fl a:hover{color:var(--bl-accent);padding-left:6px}
.bl-fl a:hover::after{opacity:1;transform:rotate(45deg) translate(2px,-2px)}
.bl-contact{list-style:none;margin:0;padding:0;font-family:Manrope,sans-serif;font-size:15px}
.bl-contact li{display:flex;align-items:center;gap:12px;margin:0 0 14px;color:var(--bl-muted)}
.bl-contact .ic{width:34px;height:34px;flex:none;border-radius:var(--bl-r-sm);display:inline-flex;align-items:center;justify-content:center;
  color:var(--bl-accent);background:rgba(250,182,46,.10);border:1px solid rgba(250,182,46,.18)}
.bl-contact a{color:var(--bl-ink);text-decoration:none;transition:color .25s;word-break:break-word}
.bl-contact a:hover{color:var(--bl-accent)}

/* ---------- Newsletter ---------- */
.bl-nl-sub{margin:0 0 16px;color:var(--bl-muted);font-family:Manrope,sans-serif;font-size:14px;line-height:1.65}
.bl-newsletter .formlayer-form-fields-wrapper{display:block}
.bl-newsletter .formlayer-field-wrap{margin:0 0 10px;flex:none}
.bl-newsletter .formlayer-submit-wrap{margin:0!important;padding:0;flex:none}
.bl-newsletter input[type="email"]{width:100%;height:46px;padding:0 15px;border-radius:var(--bl-r-sm);
  font-family:Manrope,sans-serif;font-size:14px;color:var(--bl-ink);background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);outline:none;transition:border-color .25s,background .25s;box-sizing:border-box}
.bl-newsletter input[type="email"]::placeholder{color:var(--bl-muted)}
.bl-newsletter input[type="email"]:focus{border-color:rgba(250,182,46,.55);background:rgba(255,255,255,.06)}
.bl-newsletter .formlayer-submit-wrap button[type="submit"]{width:100%!important;max-width:none!important;height:46px;border:0;cursor:pointer;border-radius:var(--bl-r-sm);
  font-family:Manrope,sans-serif;font-weight:700;font-size:14.5px;color:#090A0C;
  background:linear-gradient(135deg,var(--bl-accent-hi),var(--bl-accent) 55%,var(--bl-ember));
  box-shadow:0 8px 32px -8px rgba(250,182,46,.25);display:inline-flex;align-items:center;justify-content:center;gap:10px;
  transition:transform .25s,box-shadow .25s}
.bl-newsletter button[type="submit"]::after{content:"\2192";font-size:17px;line-height:1}
.bl-newsletter button[type="submit"]:hover{transform:translateY(-2px);box-shadow:0 16px 44px -12px rgba(250,182,46,.42)}
.bl-newsletter .formlayer-form-status{font-family:Manrope,sans-serif;font-size:13px;margin-bottom:8px}
.bl-newsletter .formlayer-form-status:empty{display:none}
.bl-newsletter .required-indicator{display:none}

/* ---------- Bottom bar ---------- */
.site-below-footer-wrap{padding:20px 0 24px;border-top:1px solid var(--bl-line)}
.site-below-footer-wrap .ast-builder-grid-row{grid-template-columns:1fr!important}
.bl-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-family:Manrope,sans-serif;font-size:13.5px;color:var(--bl-muted)}
.bl-bottom a{color:var(--bl-muted);text-decoration:none;transition:color .25s}
.bl-bottom a:hover{color:var(--bl-accent)}
.bl-bottom a.bl-gold{color:var(--bl-accent)}
.bl-legal{display:inline-flex;align-items:center;gap:16px}
.bl-legal i{font-style:normal;color:var(--bl-line)}

/* ---------- Scroll to top ---------- */
#ast-scroll-top{background:rgba(250,182,46,.10)!important;color:var(--bl-accent)!important;
  border:1px solid rgba(250,182,46,.45);border-radius:999px;width:46px;height:46px;line-height:44px;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .25s,color .25s,transform .25s}
#ast-scroll-top:hover{background:var(--bl-accent)!important;color:#090A0C!important;transform:translateY(-2px)}

/* ---------- Responsive ---------- */
@media (max-width:1200px){
  .site-primary-footer-wrap .ast-builder-grid-row{grid-template-columns:repeat(3,minmax(0,1fr))!important;row-gap:38px}
  .site-primary-footer-wrap .ast-builder-grid-row > div{padding-inline:0;border-left:0!important}
}
@media (max-width:1024px){
  .bl-cta-inner{grid-template-columns:1fr;gap:30px}
  .bl-cta-trails{opacity:.4}
}
@media (max-width:921px){
  .site-primary-footer-wrap{padding:44px 0 34px}
  .site-primary-footer-wrap .ast-builder-grid-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .bl-cta-chips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-footer .footer-widget-area{margin-bottom:0}
}
@media (max-width:767px){
  .site-above-footer-wrap{padding-bottom:40px}
  .site-primary-footer-wrap .ast-builder-grid-row{grid-template-columns:1fr!important;row-gap:32px}
  .bl-cta-bars{width:80px;opacity:.35}
  .bl-cta-trails{display:none}
  .bl-footer-tagline{max-width:none}
  .bl-bottom{flex-direction:column;text-align:center;gap:12px}
}
@media (max-width:520px){
  .bl-cta-chips{grid-template-columns:1fr}
  /* The label cannot shrink below its min-content width by default, which
     pushed the button past the panel edge; min-width:0 lets it wrap. */
  .bl-cta-btn{width:100%;box-sizing:border-box;min-width:0;padding:14px 16px;gap:12px;font-size:16px}
  .bl-cta-btn-ic{width:40px;height:40px}
  .bl-cta-btn-label{min-width:0}
}
@media (prefers-reduced-motion:reduce){
  .bl-cta-btn,.bl-social a,.bl-fl a,.bl-newsletter button[type="submit"],#ast-scroll-top{transition:none}
  .bl-cta-btn:hover,.bl-social a:hover,.bl-newsletter button[type="submit"]:hover,#ast-scroll-top:hover{transform:none}
}
/* ================= Blog: archive + single ================= */
.blb-wrap { width: 100%; max-width: 900px; margin: 0 auto; padding: 0 24px; }
.blb-wrap--wide { max-width: 1240px; }
.blb-archive, .blb-single { width: 100%; }
.blb-h1, .blb-title { font-family: Sora, sans-serif; font-weight: 700; color: #F2F0ED; letter-spacing: -1.05px; line-height: 1.14; margin: 0 0 18px; }
.blb-h1 { font-size: 46px; }
.blb-title { font-size: 42px; }
.blb-h2 { font-family: Sora, sans-serif; font-size: 28px; font-weight: 700; letter-spacing: -.6px; color: #F2F0ED; margin: 0 0 28px; }
.blb-lede { font-family: Manrope, sans-serif; font-size: 18px; line-height: 1.56; color: #969CA6; max-width: 660px; margin: 0 0 26px; }
.blb-kicker { font-family: Manrope, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 1.7px; text-transform: uppercase; color: #FAB62E; margin: 0 0 10px; }
.blb-kicker--lead { font-size: 12px; letter-spacing: 2.2px; }
.blb-eyebrow { font-family: Manrope, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 2.6px; text-transform: uppercase; color: #FAB62E; margin: 0 0 14px; }
.blb-meta { font-family: Manrope, sans-serif; font-size: 13px; color: #969CA6; margin: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.blb-meta span { position: relative; }
.blb-meta span + span::before { content: ""; position: absolute; left: -10px; top: 50%; width: 3px; height: 3px; border-radius: 999px; background: rgba(250,182,46,.7); transform: translateY(-50%); }
.blb-meta__a { color: #F2F0ED; font-weight: 600; }
.blb-meta--head { font-size: 14px; }
.blb-meta--card { font-size: 12.5px; margin-top: auto; }
/* category pills */
.blb-cats { display: flex; flex-wrap: wrap; gap: 10px; }
.blb-cat { font-family: Manrope, sans-serif; font-size: 14px; font-weight: 500; color: #969CA6; text-decoration: none; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.10); border-radius: 999px; padding: 9px 20px; transition: color .25s ease, background-color .25s ease, border-color .25s ease; }
.blb-cat:hover { color: #F2F0ED; border-color: rgba(255,255,255,.24); }
.blb-cat.is-on { background: #FAB62E; border-color: #FAB62E; color: #090A0C; font-weight: 600; }
/* lead article */
.blb-list { background: #090A0C; padding: 76px 0 96px; }
.blb-feat { display: flex; flex-wrap: wrap; align-items: stretch; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; overflow: hidden; margin: 0 0 28px; }
.blb-feat__media { flex: 0 0 52%; max-width: 52%; line-height: 0; overflow: hidden; }
.blb-feat__media img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; display: block; transition: transform .55s ease; }
.blb-feat:hover .blb-feat__media img { transform: scale(1.04); }
.blb-feat__body { flex: 0 0 48%; max-width: 48%; padding: 38px; display: flex; flex-direction: column; justify-content: center; }
.blb-feat__t { font-family: Sora, sans-serif; font-size: 27px; font-weight: 700; letter-spacing: -.6px; line-height: 1.25; margin: 0 0 12px; }
.blb-feat__t a { color: #F2F0ED; text-decoration: none; }
.blb-feat__t a:hover { color: #FAB62E; }
.blb-feat__x { font-family: Manrope, sans-serif; font-size: 15.5px; line-height: 1.7; color: #969CA6; margin: 0 0 18px; }
.blb-more { margin: 18px 0 0; }
.blb-more a { font-family: Manrope, sans-serif; font-size: 14px; font-weight: 600; color: #FAB62E; text-decoration: none; }
.blb-more a:hover { color: #FFC856; }
/* article cards */
.blb-grid { display: flex; flex-wrap: wrap; gap: 24px; align-items: stretch; }
.blb-card { flex: 0 0 calc(33.333% - 16px); max-width: calc(33.333% - 16px); display: flex; flex-direction: column; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; overflow: hidden; transition: border-color .3s ease, background-color .3s ease, transform .3s ease; }
.blb-card:hover { border-color: rgba(250,182,46,.34); background: rgba(255,255,255,.07); transform: translateY(-4px); }
.blb-card__media { display: block; line-height: 0; overflow: hidden; }
.blb-card__media img { width: 100%; height: 190px; object-fit: cover; display: block; transition: transform .55s ease; }
.blb-card:hover .blb-card__media img { transform: scale(1.05); }
.blb-card__body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1 1 auto; }
.blb-card__t { font-family: Sora, sans-serif; font-size: 17px; font-weight: 600; letter-spacing: -.4px; line-height: 1.4; margin: 0 0 10px; }
.blb-card__t a { color: #F2F0ED; text-decoration: none; }
.blb-card__t a:hover { color: #FAB62E; }
.blb-card__x { font-family: Manrope, sans-serif; font-size: 14px; line-height: 1.62; color: #969CA6; margin: 0 0 16px; }
.blb-empty { font-family: Manrope, sans-serif; color: #969CA6; }
/* pagination */
.blb-pag { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 44px 0 0; }
.blb-pag .page-numbers { font-family: Manrope, sans-serif; font-size: 14px; font-weight: 500; color: #969CA6; text-decoration: none; padding: 10px 16px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.10); }
.blb-pag .page-numbers:hover { color: #F2F0ED; border-color: rgba(255,255,255,.24); }
.blb-pag .page-numbers.current { background: #FAB62E; border-color: #FAB62E; color: #090A0C; font-weight: 600; }
/* single post */
.blb-head { padding: 76px 0 116px !important; }
.blb-hero { background: #090A0C; padding: 0; }
.blb-hero__img { width: 100%; height: 460px; object-fit: cover; border-radius: 16px; display: block; margin-top: -84px; box-shadow: 0 28px 70px -24px rgba(0,0,0,.7); }
.blb-body { background: #090A0C; padding: 64px 0 84px; }
.blb-article { font-family: Manrope, sans-serif; font-size: 17px; line-height: 1.78; color: #C2C6CD; }
.blb-article > *:first-child { margin-top: 0; }
.blb-article p { margin: 0 0 22px; }
.blb-article h2 { font-family: Sora, sans-serif; font-size: 26px; font-weight: 700; letter-spacing: -.55px; line-height: 1.3; color: #F2F0ED; margin: 42px 0 16px; }
.blb-article h3 { font-family: Sora, sans-serif; font-size: 20px; font-weight: 600; letter-spacing: -.4px; color: #F2F0ED; margin: 32px 0 12px; }
.blb-article strong { color: #F2F0ED; font-weight: 600; }
.blb-article a { color: #FAB62E; text-decoration: underline; text-underline-offset: 3px; }
.blb-article ul, .blb-article ol { margin: 0 0 22px; padding-left: 22px; }
.blb-article li { margin: 0 0 9px; }
.blb-article blockquote { margin: 30px 0; padding: 18px 24px; border-left: 2px solid #FAB62E; background: rgba(255,255,255,.03); border-radius: 0 12px 12px 0; color: #F2F0ED; }
.blb-article img { max-width: 100%; height: auto; border-radius: 12px; }
/* in-article cta */
.blb-cta { margin: 44px 0 0; padding: 32px; border-radius: 16px; background: rgba(255,255,255,.04); border: 1px solid rgba(250,182,46,.22); }
.blb-cta__t { font-family: Sora, sans-serif; font-size: 22px; font-weight: 700; letter-spacing: -.5px; color: #F2F0ED; margin: 0 0 10px; }
.blb-cta__p { font-family: Manrope, sans-serif; font-size: 15px; line-height: 1.65; color: #969CA6; margin: 0 0 22px; }
.blb-cta__row { display: flex; flex-wrap: wrap; gap: 12px; }
.blb-btn { display: inline-flex; align-items: center; justify-content: center; font-family: Manrope, sans-serif; font-size: 14.5px; font-weight: 600; text-decoration: none; padding: 15px 28px; border-radius: 999px; transition: background-color .25s ease, transform .25s ease, border-color .25s ease; }
.blb-btn:hover { transform: translateY(-2px); }
.blb-btn--gold { background: #FAB62E; color: #090A0C; box-shadow: 0 8px 28px -10px rgba(250,182,46,.4); }
.blb-btn--gold:hover { background: #FFC856; }
.blb-btn--ghost { background: rgba(255,255,255,.05); color: #F2F0ED; border: 1px solid rgba(255,255,255,.16); font-weight: 500; }
.blb-btn--ghost:hover { border-color: rgba(255,255,255,.32); }
.blb-back { margin: 34px 0 0; }
.blb-back a { font-family: Manrope, sans-serif; font-size: 14px; font-weight: 600; color: #969CA6; text-decoration: none; }
.blb-back a:hover { color: #FAB62E; }
.blb-related { background: #0E0F12; padding: 84px 0; }
@media (max-width: 1240px) {
  .blb-h1 { font-size: 40px; }
  .blb-title { font-size: 36px; }
  .blb-hero__img { height: 360px; }
}
@media (max-width: 921px) {
  .blb-feat__media, .blb-feat__body { flex: 0 0 100%; max-width: 100%; }
  .blb-feat__media img { min-height: 280px; height: 280px; }
  .blb-feat__body { padding: 30px; }
  .blb-card { flex: 0 0 calc(50% - 12px); max-width: calc(50% - 12px); }
  .blb-card:last-child:nth-child(odd) { flex: 0 0 100%; max-width: 100%; }
  .blb-list { padding: 60px 0 76px; }
  .blb-related { padding: 68px 0; }
  .blb-hero__img { height: 300px; }
  .blb-h2 { font-size: 24px; }
}
@media (max-width: 767px) {
  .blb-wrap { padding: 0 20px; }
  .blb-h1 { font-size: 30px; }
  .blb-title { font-size: 28px; }
  .blb-lede { font-size: 16px; }
  .blb-card, .blb-card:last-child:nth-child(odd) { flex: 0 0 100%; max-width: 100%; }
  .blb-card__media img { height: 200px; }
  .blb-feat__t { font-size: 22px; }
  .blb-feat__body { padding: 24px; }
  .blb-hero__img { height: 220px; margin-top: -34px; border-radius: 12px; }
  .blb-head { padding: 56px 0 66px !important; }
  .blb-body { padding: 44px 0 60px; }
  .blb-article { font-size: 16px; }
  .blb-article h2 { font-size: 22px; margin-top: 34px; }
  .blb-cta { padding: 24px; }
  .blb-cta__row { flex-direction: column; }
  .blb-btn { width: 100%; }
  .blb-list { padding: 48px 0 60px; }
  .blb-related { padding: 56px 0; }
}
@media (prefers-reduced-motion: reduce) { .blb-card, .blb-card__media img, .blb-feat__media img, .blb-btn { transition: none; } }
/* --- blog template: section grounds and reading measure --- */
/* .bl-phead is an Elementor container elsewhere, so the blog template needs its own ground */
.blb-archive .bl-phead, .blb-single .bl-phead { background: #0E0F12; border-bottom: 1px solid #202327; padding: 80px 0; }
.blb-archive .bl-phead .bl-crumb, .blb-single .bl-phead .bl-crumb { font-family: Manrope, sans-serif; font-size: 13px; color: #969CA6; margin: 0 0 22px; }
.blb-single .bl-crumb a, .blb-archive .bl-crumb a { color: #969CA6; text-decoration: none; }
.blb-single .bl-crumb a:hover, .blb-archive .bl-crumb a:hover { color: #FAB62E; }
/* a comfortable measure: roughly 70 characters, not the full container */
.blb-single .blb-wrap { max-width: 780px; }
.blb-single .blb-wrap--wide { max-width: 1240px; }
.blb-head { text-align: left; }
.blb-title { max-width: 18ch; }
@media (min-width: 768px) { .blb-title { max-width: 22ch; } }
/* --- reading measure and contents list --- */
.blb-article { max-width: 660px; }
.blb-article > .blb-toc { max-width: none; }
.blb-cta, .blb-back, .blb-author { max-width: 660px; }
.blb-toc { margin: 0; padding: 22px 26px; border-radius: 14px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.09); }
.blb-toc__t { font-family: Manrope, sans-serif; font-size: 11.5px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: #FAB62E; margin: 0 0 12px; }
.blb-toc__l { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.blb-toc__l li { counter-increment: toc; margin: 0 0 8px; padding-left: 26px; position: relative; }
.blb-toc__l li:last-child { margin-bottom: 0; }
.blb-toc__l li::before { content: counter(toc); position: absolute; left: 0; top: 1px; font-family: Manrope, sans-serif; font-size: 12px; font-weight: 700; color: rgba(250,182,46,.75); }
.blb-toc__l a { font-family: Manrope, sans-serif; font-size: 14.5px; line-height: 1.5; color: #C2C6CD; text-decoration: none; }
.blb-toc__l a:hover { color: #FAB62E; }
.blb-article h2 { scroll-margin-top: 90px; }
/* author block */
.blb-author { display: flex; align-items: center; gap: 14px; margin: 40px 0 0; padding-top: 26px; border-top: 1px solid #202327; }
.blb-author__i { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 999px; background: rgba(250,182,46,.12); border: 1px solid rgba(250,182,46,.26); display: flex; align-items: center; justify-content: center; font-family: Manrope, sans-serif; font-size: 14px; font-weight: 700; color: #FAB62E; }
.blb-author__n { font-family: Manrope, sans-serif; font-size: 15px; font-weight: 600; color: #F2F0ED; margin: 0; }
.blb-author__r { font-family: Manrope, sans-serif; font-size: 13px; color: #969CA6; margin: 2px 0 0; }
@media (max-width: 767px) { .blb-toc { padding: 18px 20px; } .blb-article, .blb-cta, .blb-back, .blb-author { max-width: none; } }
/* --- single post: article + sidebar --- */
/* Grid, not float: it lets the contents box sit top-right on desktop while
   still coming first in the source, so mobile reads contents, article, extras. */
.blb-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; column-gap: 56px; row-gap: 34px; }
.blb-layout--solo { grid-template-columns: minmax(0,1fr); }
.blb-main { grid-column: 1; min-width: 0; }
/* one cell, stretched to the article height, so the inner block can stick */
.blb-side { grid-column: 2; }
.blb-side__inner { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 18px; max-height: calc(100vh - 116px); overflow-y: auto; scrollbar-width: thin; }
.blb-side__panels { display: flex; flex-direction: column; gap: 18px; }
.blb-layout--solo { grid-template-columns: minmax(0,1fr); }
/* the article keeps its own measure inside the wider column */
.blb-main .blb-article, .blb-main .blb-cta, .blb-main .blb-back, .blb-main .blb-author { max-width: 680px; }
/* sidebar panels */
.blb-panel { padding: 22px; border-radius: 14px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.09); }
.blb-panel--cta { border-color: rgba(250,182,46,.24); }
.blb-panel__t { font-family: Sora, sans-serif; font-size: 15px; font-weight: 600; color: #F2F0ED; margin: 0 0 8px; }
.blb-panel__p { font-family: Manrope, sans-serif; font-size: 13.5px; line-height: 1.6; color: #969CA6; margin: 0 0 16px; }
.blb-btn--sm { padding: 12px 20px; font-size: 13.5px; width: 100%; }
/* mini article list */
.blb-mini { list-style: none; margin: 0; padding: 0; }
.blb-mini li + li { margin-top: 14px; padding-top: 14px; border-top: 1px solid #202327; }
.blb-mini a { display: flex; gap: 12px; align-items: flex-start; text-decoration: none; }
.blb-mini__i { flex: 0 0 56px; line-height: 0; }
.blb-mini__i img { width: 56px; height: 46px; object-fit: cover; border-radius: 8px; display: block; }
.blb-mini__b { display: block; min-width: 0; }
.blb-mini__t { display: block; font-family: Manrope, sans-serif; font-size: 13.5px; font-weight: 600; line-height: 1.4; color: #F2F0ED; }
.blb-mini a:hover .blb-mini__t { color: #FAB62E; }
.blb-mini__m { display: block; margin-top: 3px; font-family: Manrope, sans-serif; font-size: 12px; color: #969CA6; }
@media (max-width: 1024px) {
  /* display:contents dissolves the sidebar wrappers so the contents list,
     article and panels become siblings that can be ordered independently:
     contents first, then the article, then the extras. */
  .blb-layout { grid-template-columns: minmax(0,1fr); row-gap: 30px; }
  .blb-side, .blb-side__inner { display: contents; }
  .blb-toc { order: 1; position: static; max-height: none; }
  .blb-main { order: 2; grid-column: 1; }
  .blb-side__panels { order: 3; margin-top: 10px; }
  .blb-main .blb-article, .blb-main .blb-cta, .blb-main .blb-back, .blb-main .blb-author { max-width: 720px; }
}
@media (max-width: 767px) {
  .blb-main .blb-article, .blb-main .blb-cta, .blb-main .blb-back, .blb-main .blb-author { max-width: none; }
  .blb-side__panels { gap: 14px; }
  .blb-panel { padding: 18px; }
}

/* ================= Footer (rebuilt) ================= */
.blf { max-width: 1240px; margin: 0 auto; padding: 0 24px; text-align: left; }
/* top call to action panel */
.blf-cta { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; padding: 26px 28px; margin: 0 0 56px; border: 1px solid #202327; border-radius: 16px; background: rgba(255,255,255,.02); }
.blf-cta__lead { display: flex; align-items: center; gap: 18px; flex: 1 1 340px; min-width: 0; }
.blf-cta__t { font-family: Sora, sans-serif; font-size: 18px; font-weight: 700; color: #F2F0ED; margin: 0 0 4px; }
.blf-cta__p { font-family: Manrope, sans-serif; font-size: 14px; line-height: 1.55; color: #969CA6; margin: 0; max-width: 42ch; }
.blf-facts { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.blf-fact { display: flex; align-items: center; gap: 14px; position: relative; }
.blf-fact + .blf-fact { padding-left: 30px; }
.blf-fact + .blf-fact::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 38px; background: #202327; transform: translateY(-50%); }
.blf-fact__t { font-family: Manrope, sans-serif; font-size: 14.5px; font-weight: 700; color: #F2F0ED; margin: 0 0 2px; }
.blf-fact__p { font-family: Manrope, sans-serif; font-size: 13px; color: #969CA6; margin: 0; }
/* icon chips */
.blf-ic { display: inline-flex; align-items: center; justify-content: center; color: #FAB62E; flex: 0 0 auto; }
.blf-ic--round { width: 46px; height: 46px; border-radius: 999px; border: 1px solid rgba(250,182,46,.28); background: rgba(250,182,46,.08); }
.blf-ic--sq { width: 38px; height: 38px; border-radius: 10px; border: 1px solid rgba(250,182,46,.22); background: rgba(250,182,46,.07); }
/* quote button */
.blf-quote { display: inline-flex; align-items: center; gap: 12px; font-family: Manrope, sans-serif; font-size: 14.5px; font-weight: 600; color: #FAB62E; text-decoration: none; padding: 15px 26px; border: 1px solid #FAB62E; border-radius: 10px; transition: background-color .25s ease, color .25s ease; white-space: nowrap; }
.blf-quote:hover { background: #FAB62E; color: #090A0C; }
.blf-quote svg { transition: transform .25s ease; }
.blf-quote:hover svg { transform: translateX(3px); }
/* column grid, divided by hairlines like the reference */
.blf-cols { display: grid; grid-template-columns: .85fr .99fr .66fr 1.17fr; gap: 0; }
.blf-cols > * + * { padding-left: 26px; border-left: 1px solid #202327; }
.blf-cols > * + * { margin-left: 26px; }
.blf-h { font-family: Manrope, sans-serif; font-size: 12.5px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: #FAB62E; margin: 0 0 8px; }
.blf-h::after { content: ""; display: block; width: 26px; height: 2px; background: #FAB62E; margin: 10px 0 20px; border-radius: 2px; }
/* brand column */
.blf-mark { display: inline-block; font-family: Sora, sans-serif; font-size: 26px; font-weight: 700; letter-spacing: -.5px; text-decoration: none; margin: 0 0 18px; }
.blf-mark__b { color: #F2F0ED; }
.blf-mark__g { color: #FAB62E; }
.blf-tag { font-family: Manrope, sans-serif; font-size: 14.5px; line-height: 1.7; color: #969CA6; margin: 0 0 22px; max-width: 30ch; }
.blf-rule { display: block; width: 38px; height: 2px; background: #FAB62E; border-radius: 2px; margin: 0 0 24px; }
.blf-social { display: flex; gap: 12px; }
.blf-social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px; border: 1px solid #202327; color: #969CA6; transition: color .25s ease, border-color .25s ease, transform .25s ease; }
.blf-social a:hover { color: #FAB62E; border-color: rgba(250,182,46,.5); transform: translateY(-2px); }
/* link lists */
.blf-list { list-style: none; margin: 0; padding: 0; }
.blf-list li + li { margin-top: 2px; }
.blf-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-family: Manrope, sans-serif; font-size: 14.5px; color: #C2C6CD; text-decoration: none; padding: 9px 0; transition: color .25s ease; }
.blf-list a svg { color: #4b5059; flex: 0 0 auto; transition: color .25s ease, transform .25s ease; }
.blf-list a:hover { color: #FAB62E; }
.blf-list a:hover svg { color: #FAB62E; transform: translateX(3px); }
.blf-all { display: inline-flex; align-items: center; gap: 10px; margin-top: 16px; padding-top: 18px; border-top: 1px solid #202327; width: 100%; font-family: Manrope, sans-serif; font-size: 14px; font-weight: 600; color: #FAB62E; text-decoration: none; }
.blf-all:hover { color: #FFC856; }
.blf-all svg { transition: transform .25s ease; }
.blf-all:hover svg { transform: translateX(3px); }
/* contact column */
.blf-clist { list-style: none; margin: 0; padding: 0; }
.blf-clist li { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; }
.blf-clist li:last-child { margin-bottom: 0; }
.blf-clist a, .blf-place { font-family: Manrope, sans-serif; font-size: 14.5px; color: #C2C6CD; text-decoration: none; word-break: break-word; }
.blf-clist a:hover { color: #FAB62E; }
@media (min-width: 922px) and (max-width: 1159px) {
  .blf-cols { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .blf-cols > * + * { padding-left: 28px; margin-left: 28px; }
  .blf-cols > *:nth-child(odd) { padding-left: 0; margin-left: 0; border-left: 0; }
  .blf-tag { max-width: none; }
}
@media (max-width: 921px) {
  .blf-cta { gap: 24px; padding: 24px; }
  .blf-cta__lead { flex: 1 1 100%; }
  .blf-quote { width: 100%; justify-content: center; }
  .blf-cols { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .blf-cols > * + * { padding-left: 28px; margin-left: 28px; }
  .blf-cols > *:nth-child(odd) { padding-left: 0; margin-left: 0; border-left: 0; }
  .blf-tag { max-width: none; }
}
@media (max-width: 640px) {
  .blf { padding: 0 20px; }
  .blf-cta { margin-bottom: 40px; }
  .blf-facts { gap: 18px; width: 100%; }
  .blf-fact { flex: 1 1 100%; }
  .blf-fact + .blf-fact { padding-left: 0; padding-top: 18px; }
  .blf-fact + .blf-fact::before { left: 0; top: 0; width: 100%; height: 1px; transform: none; }
  .blf-cols { grid-template-columns: 1fr; row-gap: 36px; }
  .blf-cols > * + * { padding-left: 0; margin-left: 0; border-left: 0; padding-top: 36px; border-top: 1px solid #202327; }
  .blf-mark { font-size: 23px; }
}
/* At 320px the email address is 2px wider than the row; tighten it rather
   than let word-break split it mid-domain. */
@media (max-width: 400px) {
  .blf-clist li { gap: 11px; }
  .blf-clist a, .blf-place { font-size: 13px; }
  .blf-ic--sq { width: 34px; height: 34px; }
}
/* Astra keeps generating a five column grid for the footer primary row even
   with the column count set to one, so collapse it here. */
.site-primary-footer-wrap .ast-builder-footer-grid-columns,
.site-footer .ast-builder-footer-grid-columns.site-primary-footer-inner-wrap { grid-template-columns: minmax(0,1fr) !important; }
.site-primary-footer-wrap .site-footer-section:empty { display: none; }
.site-primary-footer-wrap .ast-builder-html-element { width: 100%; }
/* Astra pads the grid wrapper as well as its container, which stacked three
   gutters on mobile and squeezed the footer to 265px inside a 375px screen. */
.site-primary-footer-wrap .ast-builder-footer-grid-columns { padding-left: 0 !important; padding-right: 0 !important; }
.site-below-footer-wrap .ast-builder-grid-row { padding-left: 0 !important; padding-right: 0 !important; }

/* ==== CONTACT PAGE ====
   .blc-* is ours; the .formlayer-* selectors restyle the form plugin's own
   markup, which we do not control. */
.blc { display: grid; grid-template-columns: minmax(0,1.32fr) minmax(0,1fr); gap: 28px; align-items: start; --blc-send: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m22 2-7 20-4-9-9-4Z%22/%3E%3Cpath d=%22M22 2 11 13%22/%3E%3C/svg%3E'); }
.blc-panel { background: #0E0F12; border: 1px solid #202327; border-radius: 18px; padding: 40px; }
.blc-panel__t { font-family: Sora, sans-serif; font-size: 27px; font-weight: 700; letter-spacing: -.5px; color: #F2F0ED; margin: 0 0 10px; }
.blc-panel__p { font-family: Manrope, sans-serif; font-size: 15px; line-height: 1.6; color: #969CA6; margin: 0 0 30px; }
.blc .formlayer-form-fields-wrapper { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px 22px; }
.blc .blc-f--full, .blc .formlayer-submit-wrap { grid-column: 1 / -1; }
.blc .formlayer-field-wrap { margin: 0; min-width: 0; }
.blc .formlayer-label { display: block; font-family: Manrope, sans-serif; font-size: 13.5px; font-weight: 700; color: #F2F0ED; margin: 0 0 9px; }
.blc .required-indicator { color: #FAB62E; margin-left: 4px; }
.blc .formlayer-input { width: 100%; box-sizing: border-box; background: #141619; border: 1px solid #23262B; border-radius: 10px; padding: 14px 16px; font-family: Manrope, sans-serif; font-size: 14.5px; line-height: 1.5; color: #F2F0ED; transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.blc .formlayer-input::placeholder { color: #6A7078; }
.blc .formlayer-input:hover { border-color: #2C3037; }
.blc .formlayer-input:focus { outline: none; border-color: #FAB62E; background: #16181C; box-shadow: 0 0 0 3px rgba(250,182,46,.16); }
.blc .blc-ta { min-height: 168px; resize: vertical; }
.blc-count { display: block; text-align: right; margin: 8px 0 0; font-family: Manrope, sans-serif; font-size: 12.5px; font-weight: 500; color: #6A7078; }
.blc-count.is-near { color: #FAB62E; }
.blc .formlayer-submit-wrap { margin-top: 6px; }
.blc .formlayer-submit-btn { width: 100%; height: auto; box-shadow: none; display: inline-flex; align-items: center; justify-content: center; gap: 11px; background: #FAB62E; color: #090A0C; border: 0; border-radius: 12px; padding: 18px 26px; font-family: Manrope, sans-serif; font-size: 15.5px; font-weight: 700; letter-spacing: .1px; cursor: pointer; transition: background-color .25s ease, transform .15s ease; }
.blc .formlayer-submit-btn::before { content: ''; width: 18px; height: 18px; flex: 0 0 auto; background: currentColor; -webkit-mask: var(--blc-send) center / contain no-repeat; mask: var(--blc-send) center / contain no-repeat; }
.blc .formlayer-submit-btn:hover { background: #FFC856; transform: none; box-shadow: none; }
.blc .formlayer-submit-btn:active { transform: translateY(1px); }
.blc .formlayer-submit-btn.loading { opacity: .7; cursor: progress; }
.blc .formlayer-form-status:empty { display: none; }
.blc .formlayer-success-message, .blc .formlayer-error-message { padding: 15px 17px; border-radius: 11px; margin: 0 0 20px; font-family: Manrope, sans-serif; font-size: 14.5px; line-height: 1.55; border: 1px solid; }
.blc .formlayer-success-message { color: #BFE9C6; border-color: rgba(93,196,116,.34); background: rgba(93,196,116,.10); }
.blc .formlayer-error-message { color: #F3C0BC; border-color: rgba(226,98,86,.34); background: rgba(226,98,86,.10); }
.blc-cards { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 18px; }
.blc-card { display: block; background: #0E0F12; border: 1px solid #202327; border-radius: 16px; padding: 20px; text-decoration: none; transition: border-color .25s ease, transform .25s ease, background-color .25s ease; }
a.blc-card:hover { border-color: rgba(250,182,46,.42); background: #101215; transform: translateY(-2px); }
.blc-card__ic { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; color: #FAB62E; border: 1px solid rgba(250,182,46,.22); background: rgba(250,182,46,.08); margin: 0 0 16px; }
.blc-card__k { display: block; font-family: Manrope, sans-serif; font-size: 12.5px; font-weight: 500; color: #969CA6; margin: 0 0 6px; }
.blc-card__v { display: block; font-family: Manrope, sans-serif; font-size: 14.5px; font-weight: 700; letter-spacing: -.1px; color: #F2F0ED; line-height: 1.45; overflow-wrap: anywhere; }
.blc-map { position: relative; height: 360px; margin: 18px 0 0; border: 1px solid #202327; border-radius: 16px; overflow: hidden; }
.blc-map__frame { display: block; width: 100%; height: 100%; border: 0; }
.blc-map__open { position: absolute; top: 14px; left: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 9px; border: 1px solid #202327; background: #0E0F12; color: #F2F0ED; font-family: Manrope, sans-serif; font-size: 13px; font-weight: 600; text-decoration: none; box-shadow: 0 6px 18px rgba(0,0,0,.35); transition: color .25s ease, border-color .25s ease; }
.blc-map__open:hover { color: #FAB62E; border-color: rgba(250,182,46,.5); }
.blc-alt { margin: 16px 0 0; font-family: Manrope, sans-serif; font-size: 14px; color: #969CA6; }
.blc-alt a { color: #FAB62E; text-decoration: none; }
.blc-alt a:hover { color: #FFC856; }
@media (max-width: 1100px) {
  .blc { grid-template-columns: minmax(0,1fr); }
  .blc-map { height: 320px; }
}
@media (max-width: 620px) {
  .blc-panel { padding: 26px 20px; }
  .blc-panel__t { font-size: 23px; }
  .blc .formlayer-form-fields-wrapper { grid-template-columns: minmax(0,1fr); }
  .blc-cards { grid-template-columns: minmax(0,1fr); }
  .blc-map { height: 260px; }
}
/* ==== BOOKING WIZARD ====
   .bkw-* is ours; .formlayer-* restyles the form plugin's own markup. */
.bkw { max-width: 780px; margin: 0 auto; }
.bkw-prog { margin: 0 0 26px; }
.bkw-rail { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; list-style: none; margin: 0 0 16px; padding: 0; }
.bkw-rail__i { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bkw-rail__n { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 999px; border: 1px solid #23262B; background: #141619; color: #969CA6; font-family: Manrope, sans-serif; font-size: 13px; font-weight: 700; transition: all .25s ease; }
.bkw-rail__t { font-family: Manrope, sans-serif; font-size: 13px; font-weight: 600; color: #6A7078; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .25s ease; }
.bkw-rail__i.is-on .bkw-rail__n { border-color: #FAB62E; background: #FAB62E; color: #090A0C; }
.bkw-rail__i.is-on .bkw-rail__t { color: #F2F0ED; }
.bkw-rail__i.is-done .bkw-rail__n { border-color: rgba(250,182,46,.5); background: rgba(250,182,46,.12); color: #FAB62E; }
.bkw-rail__i.is-done .bkw-rail__t { color: #969CA6; }
.bkw-bar { height: 4px; border-radius: 999px; background: #1A1D21; overflow: hidden; }
.bkw-bar__f { display: block; height: 100%; border-radius: 999px; background: #FAB62E; transition: width .35s ease; }
.bkw-card { background: #0E0F12; border: 1px solid #202327; border-radius: 18px; padding: 34px 36px 30px; }
.bkw-stepline { font-family: Manrope, sans-serif; font-size: 12.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #FAB62E; margin: 0 0 12px; }
.bkw-h { font-family: Sora, sans-serif; font-size: 25px; font-weight: 700; letter-spacing: -.5px; color: #F2F0ED; margin: 0 0 8px; }
.bkw-sub { font-family: Manrope, sans-serif; font-size: 15px; line-height: 1.6; color: #969CA6; margin: 0 0 26px; }
.bkw-err { display: none; }
.bkw-err.is-on { display: block; padding: 13px 16px; border-radius: 10px; margin: 0 0 20px; border: 1px solid rgba(226,98,86,.34); background: rgba(226,98,86,.10); color: #F3C0BC; font-family: Manrope, sans-serif; font-size: 14px; }
.bkw .formlayer-form-fields-wrapper { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px 20px; }
.bkw .bkw-f { grid-column: 1 / -1; margin: 0; min-width: 0; }
.bkw .bkw-half { grid-column: span 1; }
.bkw .bkw-f[hidden] { display: none; }
.bkw .formlayer-label { display: block; font-family: Manrope, sans-serif; font-size: 13.5px; font-weight: 700; color: #F2F0ED; margin: 0 0 9px; }
.bkw .required-indicator { color: #FAB62E; margin-left: 4px; }
.bkw .formlayer-input { width: 100%; box-sizing: border-box; background: #141619; border: 1px solid #23262B; border-radius: 10px; padding: 14px 16px; font-family: Manrope, sans-serif; font-size: 14.5px; line-height: 1.5; color: #F2F0ED; transition: border-color .2s ease, box-shadow .2s ease; }
.bkw .formlayer-input::placeholder { color: #6A7078; }
.bkw .formlayer-input:focus { outline: none; border-color: #FAB62E; background: #16181C; box-shadow: 0 0 0 3px rgba(250,182,46,.16); }
.bkw .bkw-ta { min-height: 132px; resize: vertical; }
.bkw-count { display: block; text-align: right; margin: 8px 0 0; font-family: Manrope, sans-serif; font-size: 12.5px; font-weight: 500; color: #6A7078; }
.bkw-count.is-near { color: #FAB62E; }
.bkw .formlayer-date-wrap { position: relative; }
.bkw .formlayer-date-wrap .dashicons { display: none; }
.bkw .formlayer-input[type=date]::-webkit-calendar-picker-indicator { filter: invert(72%) sepia(64%) saturate(720%) hue-rotate(348deg); cursor: pointer; }
/* option groups: service cards, event-type cards, budget pills */
.bkw .formlayer-options-list { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
/* FormLayer's list is flex-direction:column, which stretched every pill to
   the full row. */
.bkw .bkw-pills .formlayer-options-list { display: flex; flex-direction: row; flex-wrap: wrap; gap: 10px; }
.bkw .formlayer-option-label { position: relative; display: flex !important; align-items: center !important; gap: 12px !important; margin: 0 !important; padding: 14px 16px; min-height: 56px; border: 1px solid #23262B; border-radius: 12px; background: #141619; cursor: pointer; font-family: Manrope, sans-serif; font-size: 14px; font-weight: 500; line-height: 1.35; color: #C2C6CD; transition: border-color .2s ease, background-color .2s ease, color .2s ease; }
.bkw .bkw-pills .formlayer-option-label { width: auto !important; min-height: 0; border-radius: 999px; padding: 11px 18px; }
.bkw .formlayer-option-label:hover { border-color: #2C3037; color: #F2F0ED; }
/* FormLayer forces the native box visible with
   'opacity:1 !important; visibility:visible !important; appearance:auto !important',
   which overlapped and clipped the label text. Beaten here on specificity, and
   replaced with a drawn control on the label so the state is legible. */
.bkw .formlayer-option-label input[type="checkbox"],
.bkw .formlayer-option-label input[type="radio"] { position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important; opacity: 0 !important; clip-path: inset(50%); pointer-events: none; }
.bkw .bkw-grid2 .formlayer-option-label::before { content: ''; flex: 0 0 auto; width: 20px; height: 20px; border: 1.5px solid #33373E; border-radius: 6px; background: #0E0F12; background-repeat: no-repeat; background-position: center; background-size: 12px 12px; transition: border-color .2s ease, background-color .2s ease; }
.bkw .bkw-grid2 .formlayer-option-label:has(input[type="radio"])::before { border-radius: 999px; }
.bkw .bkw-grid2 .formlayer-option-label.is-sel::before,
.bkw .bkw-grid2 .formlayer-option-label:has(input:checked)::before { border-color: #FAB62E; background-color: #FAB62E; background-image: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23090A0C%22 stroke-width=%223%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpolyline points=%2220 6 9 17 4 12%22/%3E%3C/svg%3E'); }
.bkw .bkw-grid2 .formlayer-option-label.is-sel:has(input[type="radio"])::before,
.bkw .bkw-grid2 .formlayer-option-label:has(input[type="radio"]:checked)::before { background-image: none; box-shadow: inset 0 0 0 4px #0E0F12; }
.bkw .formlayer-option-label span { flex: 1 1 auto; min-width: 0; color: inherit; font-family: Manrope, sans-serif; font-size: 14px !important; font-weight: 500 !important; line-height: 1.4 !important; }
.bkw .formlayer-option-label.is-sel,
.bkw .formlayer-option-label:has(input:checked) { border-color: #FAB62E; background: rgba(250,182,46,.10); color: #F2F0ED; box-shadow: inset 0 0 0 1px rgba(250,182,46,.28); }
.bkw .formlayer-option-label:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(250,182,46,.22); }
/* review step */
.bkw-rv { border: 1px solid #202327; border-radius: 14px; background: #101215; padding: 18px 20px; margin: 0 0 14px; }
.bkw-rv__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.bkw-rv__head h3 { font-family: Sora, sans-serif; font-size: 15.5px; font-weight: 700; color: #F2F0ED; margin: 0; }
.bkw-edit { border: 0; background: none; padding: 0; cursor: pointer; font-family: Manrope, sans-serif; font-size: 13px; font-weight: 700; color: #FAB62E; }
.bkw-edit:hover { color: #FFC856; text-decoration: underline; }
.bkw-rv__list { margin: 0; }
.bkw-rv__row { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 10px 16px; padding: 7px 0; border-top: 1px solid #1A1D21; }
.bkw-rv__row:first-child { border-top: 0; padding-top: 0; }
.bkw-rv__row dt { font-family: Manrope, sans-serif; font-size: 13.5px; color: #969CA6; margin: 0; }
.bkw-rv__row dd { font-family: Manrope, sans-serif; font-size: 14px; font-weight: 600; color: #F2F0ED; margin: 0; overflow-wrap: anywhere; }
.bkw-rv__none { color: #6A7078 !important; font-weight: 400 !important; }
/* navigation */
/* Review summary and the nav row are moved inside the form's grid by the
   script, so both need to span it. */
.bkw .bkw-review, .bkw .bkw-nav { grid-column: 1 / -1; }
.bkw-nav { display: flex; align-items: center; gap: 12px; margin: 24px 0 0; }
.bkw .bkw-nav .formlayer-submit-wrap { flex: 0 0 auto; margin: 0 0 0 auto !important; }
.bkw .bkw-nav .formlayer-submit-btn { width: auto !important; padding: 16px 34px; }
.bkw-btn { flex: 0 0 auto; cursor: pointer; font-family: Manrope, sans-serif; font-size: 15px; font-weight: 700; border-radius: 10px; padding: 15px 30px; transition: background-color .25s ease, border-color .25s ease, color .25s ease; }
.bkw-btn--next { border: 0; background: #FAB62E; color: #090A0C; margin-left: auto; }
.bkw-btn--next:hover { background: #FFC856; }
.bkw-btn--back { border: 1px solid #23262B; background: transparent; color: #C2C6CD; font-weight: 500; }
.bkw-btn--back:hover { border-color: #2C3037; color: #F2F0ED; }
.bkw .formlayer-submit-wrap { margin: 24px 0 0; }
.bkw .formlayer-submit-btn { width: 100%; height: auto; box-shadow: none; display: inline-flex; align-items: center; justify-content: center; background: #FAB62E; color: #090A0C; border: 0; border-radius: 12px; padding: 18px 26px; font-family: Manrope, sans-serif; font-size: 15.5px; font-weight: 700; cursor: pointer; transition: background-color .25s ease; }
.bkw .formlayer-submit-btn:hover { background: #FFC856; transform: none; box-shadow: none; }
.bkw .formlayer-form-status:empty { display: none; }
.bkw .formlayer-success-message, .bkw .formlayer-error-message { padding: 15px 17px; border-radius: 11px; margin: 0 0 20px; font-family: Manrope, sans-serif; font-size: 14.5px; line-height: 1.55; border: 1px solid; }
.bkw .formlayer-success-message { color: #BFE9C6; border-color: rgba(93,196,116,.34); background: rgba(93,196,116,.10); }
.bkw .formlayer-error-message { color: #F3C0BC; border-color: rgba(226,98,86,.34); background: rgba(226,98,86,.10); }
.bkw-note { text-align: center; font-family: Manrope, sans-serif; font-size: 13.5px; color: #6A7078; margin: 18px 0 0; }
@media (max-width: 720px) {
  .bkw-card { padding: 24px 20px; }
  .bkw-h { font-size: 22px; }
  .bkw .formlayer-form-fields-wrapper { grid-template-columns: minmax(0,1fr); }
  .bkw .bkw-half { grid-column: 1 / -1; }
  .bkw .formlayer-options-list { grid-template-columns: minmax(0,1fr); }
  .bkw-rail__t { display: none; }
  .bkw-rail { grid-template-columns: repeat(4, auto); justify-content: space-between; }
  .bkw-rv__row { grid-template-columns: minmax(0,1fr); gap: 2px; }
  .bkw-nav { flex-direction: row; flex-wrap: wrap; }
  .bkw .bkw-nav .formlayer-submit-wrap { flex: 1 1 100%; order: -1; margin: 0 0 12px !important; }
  .bkw .bkw-nav .formlayer-submit-btn { width: 100% !important; }
  .bkw-btn { padding: 15px 22px; }
}
/* ==== FORMLAYER DARK-THEME OVERRIDES ====
   FormLayer ships a light theme and targets fields as
   `.formlayer-form input[type="text"] { background:#fff; color:#1d2327 }`
   (specificity 0-2-1), which outranks `.blc .formlayer-input` /
   `.bkw .formlayer-input` (0-2-0). Unfocused that painted the fields white;
   focused, our own rule won for the background only, leaving dark text on a
   dark ground -- typing was invisible. These selectors carry 0-3-0 so both
   colours land together. Keep them in sync with the per-page field styles. */
.blc .formlayer-form .formlayer-input,
.bkw .formlayer-form .formlayer-input {
  background: #141619;
  color: #F2F0ED;
  -webkit-text-fill-color: #F2F0ED;
  border: 1px solid #23262B;
}
.blc .formlayer-form .formlayer-input:hover,
.bkw .formlayer-form .formlayer-input:hover { border-color: #2C3037; }
.blc .formlayer-form .formlayer-input:focus,
.bkw .formlayer-form .formlayer-input:focus {
  background: #16181C;
  color: #F2F0ED;
  -webkit-text-fill-color: #F2F0ED;
  border-color: #FAB62E;
  box-shadow: 0 0 0 3px rgba(250,182,46,.16);
  outline: none;
}
.blc .formlayer-form .formlayer-input::placeholder,
.bkw .formlayer-form .formlayer-input::placeholder { color: #6A7078; -webkit-text-fill-color: #6A7078; opacity: 1; }
/* Chrome paints autofilled fields with its own pale ground. */
.blc .formlayer-form .formlayer-input:-webkit-autofill,
.bkw .formlayer-form .formlayer-input:-webkit-autofill,
.blc .formlayer-form .formlayer-input:-webkit-autofill:focus,
.bkw .formlayer-form .formlayer-input:-webkit-autofill:focus {
  -webkit-text-fill-color: #F2F0ED;
  box-shadow: 0 0 0 1000px #141619 inset;
  caret-color: #F2F0ED;
}
.blc .formlayer-form .formlayer-input { caret-color: #FAB62E; }
.bkw .formlayer-form .formlayer-input { caret-color: #FAB62E; }
/* Native date and number widgets default to dark glyphs. */
.bkw .formlayer-form input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(72%) sepia(64%) saturate(720%) hue-rotate(348deg); cursor: pointer; }
.bkw .formlayer-form input[type="number"]::-webkit-inner-spin-button,
.bkw .formlayer-form input[type="number"]::-webkit-outer-spin-button { filter: invert(85%); opacity: .55; }
/* ==== TRUSTED BY ====
   Logos and text wordmarks sit side by side, so both are reduced to one light
   tone. Colour logos would clash badly on this ground and make the row look
   like a jumble of pasted images. */
.blt { width: 100%; }
.blt__k { text-align: center; font-family: Manrope, sans-serif; font-size: 12.5px; font-weight: 700; letter-spacing: 1.7px; text-transform: uppercase; color: #7C838D; margin: 0 0 26px; }
.blt__grid { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px 46px; list-style: none; margin: 0; padding: 0; }
.blt__i { display: flex; align-items: center; }
.blt__l { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; text-decoration: none; transition: opacity .25s ease, filter .25s ease; }
.blt__logo { display: block; max-height: 38px; width: auto; max-width: 148px; object-fit: contain; filter: grayscale(1) brightness(2.2); opacity: .62; transition: opacity .25s ease, filter .25s ease; }
a.blt__l:hover .blt__logo { opacity: 1; filter: grayscale(0) brightness(1); }
.blt__word { font-family: Sora, sans-serif; font-size: 15.5px; font-weight: 600; letter-spacing: .3px; color: #C2C6CD; opacity: .78; white-space: nowrap; transition: color .25s ease, opacity .25s ease; }
a.blt__l:hover .blt__word { opacity: 1; color: #FAB62E; }
@media (max-width: 921px) {
  .blt__grid { gap: 16px 34px; }
  .blt__word { font-size: 14.5px; }
  .blt__logo { max-height: 32px; max-width: 120px; }
}
@media (max-width: 600px) {
  .blt__k { font-size: 11.5px; letter-spacing: 1.4px; margin-bottom: 20px; }
  .blt__grid { gap: 14px 24px; }
  .blt__word { font-size: 13.5px; }
}
/* ================================================================
   BACKLINE FOOTER v3
   The footer was capped at 1240px while the header runs to 1536px, which
   left ~340px of dead margin each side on a 1080p laptop. One shared
   container now governs every footer row, so the footer lines up with the
   header instead of sitting in a narrower column.
   ================================================================ */
.blf { max-width: none; margin: 0; padding: 0; }
.site-footer .ast-builder-grid-row-container-inner {
  width: 100%; max-width: 1536px; margin-inline: auto;
  padding-inline: clamp(20px, 3vw, 48px);
}

/* Hairline under each link row, as in the reference */
.blf-list li { border-bottom: 1px solid #202327; }
.blf-list li + li { margin-top: 0; }
.blf-all { border-top: 0; margin-top: 14px; padding-top: 14px; }

/* ---- Newsletter band ---- */
.site-below-footer-wrap { padding: 0 0 26px; border-top: 0; }
.site-below-footer-wrap .ast-builder-grid-row { grid-template-columns: minmax(0,1fr) !important; row-gap: 0; }
.blf-news {
  display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
  margin: 46px 0 0; padding: 24px 28px;
  border: 1px solid #202327; border-radius: 16px; background: rgba(255,255,255,.02);
}
.blf-news__lead { display: flex; align-items: center; gap: 18px; flex: 1 1 360px; min-width: 0; }
.blf-news__t { font-family: Sora, sans-serif; font-size: 17px; font-weight: 700; color: #F2F0ED; margin: 0 0 4px; }
.blf-news__p { font-family: Manrope, sans-serif; font-size: 14px; line-height: 1.55; color: #969CA6; margin: 0; }
.blf-news__form { flex: 0 1 470px; min-width: 0; }
.blf-news .formlayer-form-fields-wrapper { display: flex; gap: 12px; align-items: stretch; }
.blf-news .formlayer-field-wrap { flex: 1 1 auto; margin: 0; min-width: 0; }
.blf-news .formlayer-submit-wrap { flex: 0 0 auto; margin: 0 !important; padding: 0; }
.blf-news input[type="email"] {
  width: 100%; height: 48px; padding: 0 16px; box-sizing: border-box;
  font-family: Manrope, sans-serif; font-size: 14.5px; color: #F2F0ED;
  background: rgba(255,255,255,.03); border: 1px solid #202327; border-radius: 10px; outline: none;
  transition: border-color .25s ease, background-color .25s ease;
}
.blf-news input[type="email"]::placeholder { color: #6E747E; }
.blf-news input[type="email"]:focus { border-color: rgba(250,182,46,.55); background: rgba(255,255,255,.05); }
.blf-news .formlayer-submit-wrap button[type="submit"] {
  height: 48px; padding: 0 26px; border: 0; cursor: pointer; border-radius: 10px;
  font-family: Manrope, sans-serif; font-weight: 700; font-size: 14.5px; color: #090A0C;
  background: #FAB62E; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  white-space: nowrap; transition: background-color .25s ease, transform .25s ease;
}
.blf-news .formlayer-submit-wrap button[type="submit"]::after { content: "\2192"; font-size: 16px; line-height: 1; }
.blf-news .formlayer-submit-wrap button[type="submit"]:hover { background: #FFC856; transform: translateY(-1px); }
.blf-news .formlayer-form-status { font-family: Manrope, sans-serif; font-size: 13px; margin: 0 0 8px; }
.blf-news .formlayer-form-status:empty { display: none; }
.blf-news .required-indicator { display: none; }

/* ---- Bottom bar ---- */
.bl-bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  margin-top: 26px; padding-top: 22px; border-top: 1px solid #202327;
  font-family: Manrope, sans-serif; font-size: 13.5px; color: #969CA6;
}
.bl-bottom a { color: #969CA6; text-decoration: none; transition: color .25s ease; }
.bl-bottom a:hover { color: #FAB62E; }
.bl-bottom a.bl-gold { color: #FAB62E; }
.bl-legal { display: inline-flex; align-items: center; gap: 16px; }
.bl-legal a { margin-left: 0; }
.bl-legal i { font-style: normal; color: #202327; }

/* ---- Responsive ---- */
@media (max-width: 921px) {
  .blf-news { flex-direction: column; align-items: stretch; gap: 18px; margin-top: 38px; }
  .blf-news__form { flex: 1 1 auto; }
}
@media (max-width: 640px) {
  .blf-news { padding: 20px; margin-top: 32px; }
}
@media (max-width: 520px) {
  .blf-news .formlayer-form-fields-wrapper { flex-direction: column; }
  .blf-news .formlayer-submit-wrap button[type="submit"] { width: 100%; }
  .bl-bottom { flex-direction: column; text-align: center; gap: 12px; }
}
/* ================================================================
   BACKLINE WIDTH v4
   Header and footer share one container. 1536 still left ~230px of dead
   margin each side on a 1080p laptop at 100% scaling, so both move to
   1680 together. Widening only the footer would push its brand column
   left of the header logo.
   ================================================================ */
.site-header .ast-container,
.site-footer .ast-builder-grid-row-container-inner {
  width: 100%; max-width: 1680px; margin-inline: auto;
  padding-inline: clamp(20px, 3vw, 48px);
}


/* ================================================================
   BACKLINE FOOTER v5 | reference match, 2026-09-02
   Appended, never replacing. The whole footer is now one shortcode:
   CTA panel, full-bleed hairline, four bare columns (no vertical
   dividers), newsletter band, bottom bar with the back-to-top button.
   Astra's below row is emptied, so the .site-below-footer-wrap and
   .bl-bottom rules above no longer render anything.
   ================================================================ */
.site-footer { overflow-x: clip; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ---- CTA panel: the one lit panel (design token footerCta) ---- */
.blf--v5 .blf-cta {
  position: relative; overflow: hidden; isolation: isolate;
  display: flex; align-items: center; gap: 36px; flex-wrap: wrap;
  margin: 0; padding: 36px 40px;
  border: 1px solid transparent; border-radius: 22px;
  background:
    radial-gradient(70% 160% at 100% 50%, rgba(250,182,46,.10), rgba(250,182,46,0) 65%) padding-box,
    linear-gradient(100deg, #101114 0%, #0E0F12 55%, #101114 100%) padding-box,
    linear-gradient(120deg, rgba(250,182,46,.42) 0%, #202327 45%, rgba(239,118,57,.36) 100%) border-box;
  box-shadow: 0 24px 64px -28px rgba(250,182,46,.22);
}
/* faint concentric line texture in two corners, as in the reference */
.blf--v5 .blf-cta::before, .blf--v5 .blf-cta::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: 340px; height: 240px; left: 0; bottom: 0;
  background: repeating-radial-gradient(circle at 0 100%, rgba(250,182,46,.09) 0 1px, rgba(250,182,46,0) 1px 13px);
  -webkit-mask: radial-gradient(circle at 0 100%, #090A0C 0%, transparent 72%);
          mask: radial-gradient(circle at 0 100%, #090A0C 0%, transparent 72%);
}
.blf--v5 .blf-cta::after { left: auto; right: 0; bottom: auto; top: 0; transform: rotate(180deg); }
.blf--v5 .blf-cta__lead { gap: 24px; flex: 1 1 400px; }
.blf--v5 .blf-cta .blf-ic--round { width: 68px; height: 68px; border-color: rgba(250,182,46,.4); background: rgba(250,182,46,.06); }
.blf--v5 .blf-cta__t { font-family: Sora, sans-serif; font-size: 30px; font-weight: 700; letter-spacing: -.02em; line-height: 1.08; color: #F2F0ED; margin: 0 0 10px; }
.blf--v5 .blf-cta__hl { color: #FAB62E; }
.blf--v5 .blf-cta__p { font-family: Manrope, sans-serif; font-size: 15.5px; line-height: 1.6; color: #C2C6CD; margin: 0; max-width: 44ch; }
.blf--v5 .blf-facts { gap: 0; padding-right: 30px; border-right: 1px solid #202327; }
.blf--v5 .blf-fact { gap: 14px; padding-right: 26px; }
.blf--v5 .blf-fact + .blf-fact { padding-left: 26px; }
.blf--v5 .blf-fact + .blf-fact::before { height: 46px; }
.blf--v5 .blf-ic--sq { width: 46px; height: 46px; border-radius: 12px; }
.blf--v5 .blf-fact__t { font-size: 15.5px; margin: 0 0 3px; }
.blf--v5 .blf-fact__p { font-size: 13.5px; }
.blf--v5 .blf-quote {
  background: #FAB62E; color: #090A0C; border: 0; border-radius: 14px;
  padding: 20px 28px; font-size: 16px; font-weight: 700; gap: 12px;
  box-shadow: 0 8px 32px -8px rgba(250,182,46,.25);
  transition: background-color .25s ease, box-shadow .25s ease, transform .15s ease;
}
.blf--v5 .blf-quote:hover { background: #FFC856; color: #090A0C; box-shadow: 0 12px 36px -8px rgba(250,182,46,.4); }
.blf--v5 .blf-quote:active { transform: translateY(1px); }

/* ---- full-bleed hairline between panel and columns ---- */
.blf--v5 .blf-sep { position: relative; height: 1px; margin: 44px 0 56px; }
.blf--v5 .blf-sep::before { content: ""; position: absolute; top: 0; left: 50%; width: 100vw; height: 1px; transform: translateX(-50%); background: #202327; }

/* ---- columns: bare, no vertical dividers ---- */
.blf--v5 .blf-cols { grid-template-columns: 1.05fr 1fr .8fr 1.05fr; gap: 0 56px; }
.blf--v5 .blf-cols > * + * { border-left: 0; padding-left: 0; margin-left: 0; }
.blf--v5 .blf-h { color: #F2F0ED; font-size: 14px; font-weight: 700; letter-spacing: 2.6px; margin: 0; }
.blf--v5 .blf-h::after { width: 40px; height: 3px; background: linear-gradient(90deg, #FAB62E, #EF7639); margin: 12px 0 22px; }

/* brand column: logo, rule, tagline, five social buttons */
.blf--v5 .blf-brand { padding-top: 2px; }
.blf--v5 .blf-logo { display: inline-block; margin: 0 0 18px; line-height: 0; }
.blf--v5 .blf-logo__img { display: block; width: 136px; height: auto; border-radius: 8px; }
.blf--v5 .blf-mark { margin: 0 0 18px; }
.blf--v5 .blf-rule { width: 40px; height: 3px; background: linear-gradient(90deg, #FAB62E, #EF7639); margin: 0 0 22px; }
.blf--v5 .blf-tag { font-size: 15.5px; line-height: 1.75; color: #C2C6CD; max-width: 30ch; margin: 0 0 26px; }
.blf--v5 .blf-social { gap: 14px; }
.blf--v5 .blf-social a, .blf--v5 .blf-social__off {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 999px; border: 1px solid #202327; color: #C2C6CD;
  transition: color .25s ease, border-color .25s ease, transform .25s ease;
}
.blf--v5 .blf-social a:hover { color: #FAB62E; border-color: rgba(250,182,46,.5); transform: translateY(-2px); }

/* link lists */
.blf--v5 .blf-list a { font-size: 15.5px; color: #C2C6CD; padding: 12px 0; }
.blf--v5 .blf-list li { border-bottom: 1px solid #202327; }
.blf--v5 .blf-list li + li { margin-top: 0; }
.blf--v5 .blf-list a svg { color: #969CA6; width: 16px; height: 16px; }
.blf--v5 .blf-all { font-size: 15.5px; margin-top: 20px; padding-top: 0; border-top: 0; width: auto; }

/* contact column */
.blf--v5 .blf-clist li { gap: 16px; margin: 0 0 22px; }
.blf--v5 .blf-clist a, .blf--v5 .blf-place { font-size: 15.5px; }

/* ---- newsletter band ---- */
.blf--v5 .blf-news {
  display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
  margin: 56px 0 0; padding: 26px 30px;
  border: 1px solid #202327; border-radius: 22px; background: rgba(255,255,255,.02);
}
.blf--v5 .blf-news__lead { display: flex; align-items: center; gap: 22px; flex: 1 1 360px; min-width: 0; }
.blf--v5 .blf-news .blf-ic--round { width: 56px; height: 56px; }
.blf--v5 .blf-news__t { font-family: Sora, sans-serif; font-size: 18px; font-weight: 700; color: #F2F0ED; margin: 0 0 5px; }
.blf--v5 .blf-news__p { font-family: Manrope, sans-serif; font-size: 15px; line-height: 1.55; color: #C2C6CD; margin: 0; }
.blf--v5 .blf-news__form { flex: 0 1 560px; min-width: 0; }
.blf--v5 .blf-news .formlayer-form-fields-wrapper { display: flex; gap: 16px; align-items: stretch; }
.blf--v5 .blf-news .formlayer-field-wrap { flex: 1 1 auto; margin: 0; min-width: 0; }
.blf--v5 .blf-news .formlayer-submit-wrap { flex: 0 0 auto; margin: 0 !important; padding: 0; }
.blf--v5 .blf-news .formlayer-form input[type="email"] {
  width: 100%; height: 64px; padding: 0 20px; box-sizing: border-box;
  font-family: Manrope, sans-serif; font-size: 15.5px; color: #F2F0ED; -webkit-text-fill-color: #F2F0ED; caret-color: #FAB62E;
  background: rgba(255,255,255,.03); border: 1px solid #202327; border-radius: 14px; outline: none;
}
.blf--v5 .blf-news .formlayer-form input[type="email"]::placeholder { color: #969CA6; -webkit-text-fill-color: #969CA6; opacity: 1; }
.blf--v5 .blf-news .formlayer-form input[type="email"]:focus { border-color: rgba(250,182,46,.55); background: rgba(255,255,255,.05); box-shadow: 0 0 0 3px rgba(250,182,46,.16); }
.blf--v5 .blf-news .formlayer-form input[type="email"]:-webkit-autofill { -webkit-text-fill-color: #F2F0ED; box-shadow: 0 0 0 1000px #101114 inset; }
.blf--v5 .blf-news .formlayer-submit-wrap button[type="submit"] {
  height: 64px; padding: 0 28px; border-radius: 14px; font-size: 16px; gap: 12px;
  box-shadow: 0 8px 32px -8px rgba(250,182,46,.25);
}
.blf--v5 .blf-news .formlayer-submit-wrap button[type="submit"]:hover { background: #FFC856; transform: none; box-shadow: 0 12px 36px -8px rgba(250,182,46,.4); }
.blf--v5 .blf-news .formlayer-form-status { font-family: Manrope, sans-serif; font-size: 13.5px; margin: 0 0 8px; color: #C2C6CD; }
.blf--v5 .blf-news .formlayer-form-status:empty { display: none; }
.blf--v5 .blf-news .required-indicator { display: none; }

/* ---- bottom bar ---- */
.blf--v5 .blf-bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  margin-top: 30px; padding: 26px 0 0; border-top: 1px solid #202327;
  font-family: Manrope, sans-serif; font-size: 15px; color: #969CA6;
}
.blf--v5 .blf-copy { margin: 0; }
.blf--v5 .blf-copy a { color: #FAB62E; text-decoration: none; transition: color .25s ease; }
.blf--v5 .blf-copy a:hover { color: #FFC856; }
.blf--v5 .blf-bottom__r { display: flex; align-items: center; gap: 30px; }
.blf--v5 .blf-legal { display: flex; align-items: center; }
.blf--v5 .blf-legal a { color: #969CA6; text-decoration: none; padding: 0 22px; border-left: 1px solid #202327; transition: color .25s ease; }
.blf--v5 .blf-legal a:first-child { padding-left: 0; border-left: 0; }
.blf--v5 .blf-legal a:last-child { padding-right: 0; }
.blf--v5 .blf-legal a:hover { color: #FAB62E; }
.blf--v5 .blf-top {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 46px; height: 46px; border-radius: 999px;
  border: 1px solid rgba(250,182,46,.55); color: #FAB62E; background: rgba(250,182,46,.06);
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.blf--v5 .blf-top:hover { background: #FAB62E; color: #090A0C; transform: translateY(-2px); }

/* ---- responsive ---- */
@media (max-width: 1240px) {
  .blf--v5 .blf-cols { grid-template-columns: 1fr 1fr; gap: 44px 48px; }
}
@media (max-width: 1100px) {
  .blf--v5 .blf-cta { gap: 26px; }
  .blf--v5 .blf-facts { border-right: 0; padding-right: 0; }
}
@media (max-width: 921px) {
  .blf--v5 .blf-cta { padding: 28px; }
  .blf--v5 .blf-cta__lead { flex: 1 1 100%; }
  .blf--v5 .blf-cta__t { font-size: 26px; }
  .blf--v5 .blf-quote { width: 100%; justify-content: center; }
  .blf--v5 .blf-news { flex-direction: column; align-items: stretch; gap: 20px; padding: 24px; }
  .blf--v5 .blf-news__form { flex: 1 1 auto; }
}
@media (max-width: 767px) {
  .blf--v5 .blf-cols { grid-template-columns: 1fr; gap: 40px; }
  .blf--v5 .blf-cols > * + * { border-top: 0; padding-top: 0; }
  .blf--v5 .blf-tag { max-width: none; }
  .blf--v5 .blf-sep { margin: 36px 0 44px; }
  .blf--v5 .blf-bottom { flex-direction: column; text-align: center; gap: 18px; }
  .blf--v5 .blf-bottom__r { flex-direction: column; gap: 18px; }
}
@media (max-width: 640px) {
  .blf--v5 .blf-cta::before, .blf--v5 .blf-cta::after { display: none; }
  .blf--v5 .blf-cta { padding: 24px 20px; }
  .blf--v5 .blf-cta .blf-ic--round { width: 56px; height: 56px; }
  .blf--v5 .blf-cta__t { font-size: 24px; }
  .blf--v5 .blf-facts { width: 100%; }
  .blf--v5 .blf-fact { flex: 1 1 100%; padding-right: 0; }
  .blf--v5 .blf-fact + .blf-fact { padding-left: 0; padding-top: 18px; }
  .blf--v5 .blf-fact + .blf-fact::before { top: 0; width: 100%; height: 1px; transform: none; }
  .blf--v5 .blf-news { padding: 20px; margin-top: 40px; }
}
@media (max-width: 520px) {
  .blf--v5 .blf-news .formlayer-form-fields-wrapper { flex-direction: column; }
  .blf--v5 .blf-news .formlayer-submit-wrap button[type="submit"] { width: 100%; }
  .blf--v5 .blf-legal { flex-wrap: wrap; justify-content: center; row-gap: 10px; }
}

/* ---- BACKLINE FOOTER v5.1 | mobile corrections, 2026-09-02 ----
   In the stacked newsletter band the lead's 360px flex-basis became its
   height; FormLayer's submit wrap is a flex row, so the button never took
   the full width. The CTA lead icon now tops-aligns with the heading. */
@media (max-width: 921px) {
  .blf--v5 .blf-news__lead { flex: 0 0 auto; }
  .blf--v5 .blf-news__form { flex: 0 0 auto; }
}
@media (max-width: 640px) {
  .blf--v5 .blf-cta__lead { align-items: flex-start; }
  .blf--v5 .blf-cta .blf-ic--round { margin-top: 2px; }
  .blf--v5 .blf-news__lead { align-items: flex-start; }
}
@media (max-width: 520px) {
  .blf--v5 .blf-news .formlayer-submit-wrap { display: block; width: 100%; }
  .blf--v5 .blf-news .formlayer-submit-wrap button[type="submit"] { width: 100%; }
}

/* ---- BACKLINE FOOTER v5.2 | FormLayer sets the button width with !important, so the stacked mobile button needs the same weight. */
@media (max-width: 520px) {
  .blf--v5 .blf-news .formlayer-submit-wrap .formlayer-submit-btn { width: 100% !important; max-width: none !important; display: flex !important; }
}

/* ================================================================
   BACKLINE SOCIAL v1 | Portfolio video band, 2026-09-03
   [backline_social]: YouTube (latest non-Shorts, server-cached) and the
   TikTok creator embed, both behind click-to-load previews for consent.
   ================================================================ */
.bls { width: 100%; }
.bls-head { max-width: 730px; margin: 0 0 36px; }
.bls-eyebrow { font-family: Manrope, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 2.6px; text-transform: uppercase; color: #FAB62E; margin: 0 0 14px; }
.bls-h2 { font-family: Sora, sans-serif; font-size: 34px; font-weight: 700; line-height: 1.2; letter-spacing: -.7px; color: #F2F0ED; margin: 0 0 14px; }
.bls-lead { font-family: Manrope, sans-serif; font-size: 16px; line-height: 1.65; color: #969CA6; margin: 0; max-width: 60ch; }
.bls-grid { display: grid; gap: 28px; align-items: stretch; }
.bls-grid--yt { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); }
.bls-grid--tt { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }

/* glass panels */
.bls-panel { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 22px; padding: 20px; min-width: 0; transition: border-color .25s ease, background-color .25s ease; }
.bls-panel:hover { background: rgba(255,255,255,.07); border-color: rgba(250,182,46,.35); }

/* YouTube */
.bls-yt__feat { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; background: #0E0F12; }
.bls-yt__play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background: none; cursor: pointer; }
.bls-yt__play img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .9; transition: transform .4s ease, opacity .3s ease; }
.bls-yt__play:hover img { transform: scale(1.03); opacity: 1; }
.bls-yt__btn { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 72px; height: 72px; border-radius: 999px; background: #FAB62E; color: #090A0C; display: inline-flex; align-items: center; justify-content: center; padding-left: 4px; box-shadow: 0 8px 32px -8px rgba(250,182,46,.25); transition: background-color .25s ease, transform .25s ease; }
.bls-yt__play:hover .bls-yt__btn { background: #FFC856; transform: translate(-50%, -50%) scale(1.06); }
.bls-yt__play:focus-visible { outline: 2px solid #FAB62E; outline-offset: -2px; }
.bls-yt__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bls-yt__meta { padding: 16px 4px 0; }
.bls-yt__title { font-family: Sora, sans-serif; font-size: 18px; font-weight: 600; line-height: 1.3; color: #F2F0ED; margin: 0 0 4px; }
.bls-yt__date { font-family: Manrope, sans-serif; font-size: 13px; color: #969CA6; margin: 0; }
.bls-yt__list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bls-yt__row { display: block; width: 100%; border: 0; padding: 0; margin: 0; background: none; cursor: pointer; text-align: left; color: #C2C6CD; font-family: Manrope, sans-serif; font-size: 13.5px; line-height: 1.4; }
.bls-yt__row img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; display: block; margin: 0 0 8px; opacity: .85; transition: opacity .25s ease, outline-color .25s ease; outline: 1px solid transparent; }
.bls-yt__row:hover img, .bls-yt__row.is-current img { opacity: 1; outline-color: rgba(250,182,46,.55); }
.bls-yt__row span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* TikTok */
.bls-tt { display: flex; flex-direction: column; }
.bls-tt__embed { flex: 1 1 auto; min-height: 440px; display: flex; align-items: center; justify-content: center; }
.bls-tt.is-loaded .bls-tt__embed { display: block; min-height: 0; }
.bls-tt .tiktok-embed { margin: 0 auto !important; }
.bls-tt__facade { text-align: center; padding: 28px 16px; max-width: 36ch; }
.bls-ic--tt { display: inline-flex; width: 64px; height: 64px; border-radius: 999px; align-items: center; justify-content: center; border: 1px solid rgba(250,182,46,.35); background: rgba(250,182,46,.08); color: #FAB62E; margin: 0 0 18px; }
.bls-tt__h { font-family: Sora, sans-serif; font-size: 20px; font-weight: 700; line-height: 1.2; color: #F2F0ED; margin: 0 0 8px; }
.bls-tt__p { font-family: Manrope, sans-serif; font-size: 15px; line-height: 1.6; color: #969CA6; margin: 0 0 20px; }
.bls-tt__load { display: inline-flex; align-items: center; gap: 10px; background: #FAB62E; color: #090A0C; border: 0; border-radius: 14px; padding: 15px 24px; font-family: Manrope, sans-serif; font-size: 15px; font-weight: 700; cursor: pointer; box-shadow: 0 8px 32px -8px rgba(250,182,46,.25); transition: background-color .25s ease, box-shadow .25s ease, transform .15s ease; }
.bls-tt__load:hover { background: #FFC856; box-shadow: 0 12px 36px -8px rgba(250,182,46,.4); }
.bls-tt__load:active { transform: translateY(1px); }
.bls-tt__note { display: block; font-family: Manrope, sans-serif; font-size: 12.5px; line-height: 1.5; color: #969CA6; margin: 14px 0 0; }

/* follow card (shown until the first YouTube video exists) and strip */
.bls-follow { display: flex; flex-direction: column; justify-content: center; padding: 8px 8px 8px 20px; min-width: 0; }
.bls-follow__h { font-family: Sora, sans-serif; font-size: 24px; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: #F2F0ED; margin: 0 0 12px; max-width: 18ch; }
.bls-follow__p { font-family: Manrope, sans-serif; font-size: 15.5px; line-height: 1.65; color: #969CA6; margin: 0 0 24px; max-width: 42ch; }
.bls-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.bls-btn { display: inline-flex; align-items: center; gap: 10px; padding: 13px 20px; border-radius: 14px; border: 1px solid rgba(255,255,255,.12); color: #F2F0ED; font-family: Manrope, sans-serif; font-size: 14.5px; font-weight: 600; text-decoration: none; transition: border-color .25s ease, color .25s ease, transform .25s ease; }
.bls-btn:hover { color: #FAB62E; border-color: rgba(250,182,46,.5); transform: translateY(-2px); }
.bls-btn svg { width: 16px; height: 16px; flex: 0 0 auto; }
.bls-strip { margin: 26px 0 0; }

/* responsive */
@media (max-width: 1024px) {
  .bls-grid--yt, .bls-grid--tt { grid-template-columns: minmax(0, 1fr); }
  .bls-follow { padding: 4px 0 0; }
}
@media (max-width: 640px) {
  .bls-h2 { font-size: 27px; }
  .bls-panel { padding: 14px; border-radius: 16px; }
  .bls-yt__list { gap: 8px; }
  .bls-yt__row span { font-size: 12.5px; }
  .bls-tt__embed { min-height: 360px; }
  .bls-btn { width: 100%; justify-content: center; }
}

/* ---- BACKLINE A11Y v1 | text links carry an underline, not colour alone (audit 2026-09-06) ---- */
.elementor-widget-text-editor a:not(.elementor-button), .elementor-widget-heading a, .bl-lede a, .blb-body a, .bl-assure a, .entry-content a:not(.elementor-button):not(.wp-block-button__link) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* ---- BACKLINE A11Y v2 | 2026-09-07 -------------------------------------
   The <main> landmark added on 2026-09-06 is a bare child of Astra's
   .ast-container. On the blog archive and category archives that container is
   a flex row, so main took its content width (955px inside 1885px) and sat
   hard left, leaving most of the page empty. On Elementor pages the container
   is display:block, so they were unaffected. Fill in both cases. */
#content > .ast-container > .bl-main { flex: 1 1 auto; width: 100%; max-width: 100%; min-width: 0; }
