@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700;800&display=swap');
:root{--beca-blue:#135AD5;--beca-text:#1A1A1A;--beca-muted:#666666;--beca-bg-alt:#F7F8FA;--beca-blue-tint:#EEF4FF;--beca-font-family:"Open Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--beca-accent:#07A5F6;--beca-heading-color:#1a1a1a;--beca-muted-color:#6b7280;--beca-container-max:1240px;}
.beca-section{font-family:var(--beca-font-family);box-sizing:border-box}
.beca-section h1,
.beca-section h2,
.beca-section h3,
.beca-section h4,
.beca-section h5,
.beca-section h6,
.beca-section .heading,
.beca-section .beca-image-text-row__title{font-family:var(--beca-font-family) !important}
.beca-section *,.beca-section *::before,.beca-section *::after{box-sizing:inherit}
.beca-image-text > .beca-inner{width:100% !important;max-width:1240px !important;margin-left:auto !important;margin-right:auto !important;padding-left:0 !important;padding-right:0 !important}
.eyebrow{margin:0 0 0.65rem;display:inline-block;position:relative;padding-left:15px;color:var(--beca-accent);font-size:0.85rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;line-height:1.4}
.eyebrow::before{content:'';position:absolute;left:0;top:0;width:3px;height:100%;border-radius:2px;background:var(--beca-accent)}
.heading{margin:0 0 clamp(0.55rem,1vh,0.85rem);color:var(--beca-heading-color);font-size:clamp(1.65rem,2.65vw,2.55rem);font-weight:500;line-height:1.16;letter-spacing:-0.018em;text-wrap:balance;text-shadow:none}

/* Image + Text section
   Uses the same page-container treatment as beca_z_matrix: the section
   fills the available page width while .beca-inner centers the content
   and caps it at 1240px (or the configured max width). */
.beca-image-text{width:100% !important;max-width:none !important;padding-left:24px;padding-right:24px;margin-left:0;margin-right:0}
.beca-image-text__header{margin-bottom:56px}
/* When no eyebrow is supplied, treat the heading as a lower-level section
   subheading: smaller type and substantially tighter spacing to the content. */
.beca-image-text__header--subheading{margin-bottom:20px}
.beca-image-text__header--subheading .heading{font-size:clamp(1.3rem,1.8vw,1.75rem);line-height:1.24;margin-bottom:0}
.beca-image-text__header--left{text-align:left}
.beca-image-text__header--center{text-align:center}
.beca-image-text__header--right{text-align:right}

/* Two columns, exactly 50/50, spanning the full width of .beca-inner
   (100% of the page up to the 1240px cap), separated by a 3rem gap. */
.beca-image-text-row{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:stretch;width:100%}
@media(max-width:1023px){.beca-image-text-row{grid-template-columns:1fr;align-items:center}}
@media(min-width:1024px){.beca-image-text-row--reversed .beca-image-text-row__image{order:2}.beca-image-text-row--reversed .beca-image-text-row__text{order:1}}

/* Optional intrinsic-width image layout. On desktop, the image column follows
   the image's natural rendered width while the text flexes into all remaining
   horizontal space. The default layout remains the existing 50/50 grid. */
@media(min-width:1024px){
  .beca-image-text-row--fit-image{display:flex;align-items:flex-start;gap:3rem}
  .beca-image-text-row--fit-image .beca-image-text-row__image{flex:0 1 auto;width:auto;max-width:100%}
  .beca-image-text-row--fit-image .beca-image-text-row__img-wrap{width:auto;max-width:100%}
  .beca-section.beca-image-text .beca-image-text-row--fit-image .beca-image-text-row__img-wrap img,
  .beca-image-text-row--fit-image .beca-image-text-row__img-wrap img{width:auto !important;max-width:100% !important;height:auto !important}
  .beca-image-text-row--fit-image .beca-image-text-row__text{flex:1 1 0;width:auto;min-width:0}
  .beca-image-text-row--fit-image.beca-image-text-row--reversed .beca-image-text-row__image{order:2}
  .beca-image-text-row--fit-image.beca-image-text-row--reversed .beca-image-text-row__text{order:1}
}

.beca-image-text-row__image{position:relative;min-width:0;width:100%;align-self:start}
.beca-image-text-row__img-wrap{position:relative;overflow:hidden;background:transparent;width:100%}
.beca-section.beca-image-text .beca-image-text-row__img-wrap img,
.beca-image-text-row__img-wrap img{position:static !important;width:100% !important;height:auto !important;max-width:100% !important;object-fit:initial !important;object-position:initial !important;transition:transform .7s ease;display:block}
.beca-image-text-row__img-wrap:hover img{transform:scale(1.03)}
.beca-image-text-row__deco{position:absolute;width:96px;height:96px;background:var(--beca-blue-tint);border-radius:20px;bottom:-16px;right:-16px;z-index:-1}

.beca-image-text-row__text{min-width:0;width:100%}
.beca-image-text-row__body{font-size:1rem;color:var(--beca-muted);line-height:1.7;margin:0;white-space:pre-line;text-align:justify}

/* Hashtag pill row — spans the full width beneath the two columns and wraps
   onto additional lines as needed. */
.beca-image-text__tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px;width:100%}
.beca-image-text__tag{display:inline-flex;align-items:center;padding:0.45rem 1.15rem;border-radius:999px;background:var(--beca-blue-tint);color:var(--beca-blue);font-family:var(--beca-font-family);font-size:0.875rem;font-weight:600;line-height:1.2;white-space:nowrap}

/* Keep the header, two-column row and tags free to use the entire inner
   container width. This mirrors the working beca_z_matrix layout. */
.beca-image-text__header,.beca-image-text-row,.beca-image-text__tags{width:100%;max-width:none}
.beca-image-text-row__image,.beca-image-text-row__text{min-width:0;width:100%}
@media(max-width:767px){.beca-image-text{padding-left:16px;padding-right:16px}}

/* Text-only fallback: when no section image is configured, the text content
   uses the complete inner container width (capped by the module at 1240px). */
.beca-image-text-row--text-only{grid-template-columns:minmax(0,1fr);gap:0}
.beca-image-text-row--text-only .beca-image-text-row__text{max-width:1240px;width:100%}

/* Optional image metadata. */
.beca-image-text-row__meta{margin-top:.75rem}
.beca-image-text-row__caption,.beca-image-text-row__credit{margin:0;color:var(--beca-muted);font-family:var(--beca-font-family);font-size:.8125rem;line-height:1.55}
.beca-image-text-row__caption{font-weight:600;color:var(--beca-text)}
.beca-image-text-row__credit{margin-top:.18rem;font-size:.75rem}

/* CTA — same normal/hover interaction used by beca_feature_cards. */
.beca-image-text__cta{position:relative;display:inline-flex;align-items:center;gap:0;margin-top:1rem;padding:0 1.4rem 0 4rem;min-height:2.85rem;width:fit-content;border-radius:999px;background:transparent;color:#6D6D6D;font-size:.9375rem;font-weight:700;line-height:1;text-decoration:none;letter-spacing:.01em;isolation:isolate;overflow:hidden;transition:color 300ms ease,transform 300ms cubic-bezier(.22,1,.36,1),box-shadow 300ms ease}
.beca-image-text__cta::before{content:"";position:absolute;left:0;top:50%;z-index:-1;width:2.85rem;height:2.85rem;border-radius:999px;background:#135AD5;transform:translateY(-50%);transition:width 400ms cubic-bezier(.22,1,.36,1),box-shadow 300ms ease}
.beca-image-text__cta:hover,.beca-image-text__cta:focus-visible{color:#fff;transform:translateY(-2px);box-shadow:0 12px 28px rgba(19,90,213,.28);text-decoration:none;outline-offset:3px}
.beca-image-text__cta:hover::before,.beca-image-text__cta:focus-visible::before{width:100%;box-shadow:0 6px 18px rgba(19,90,213,.32)}
.beca-image-text__cta-icon{position:absolute;left:0;top:50%;width:2.85rem;height:2.85rem;display:flex;align-items:center;justify-content:center;transform:translateY(-50%);pointer-events:none}
.beca-image-text__cta-icon img{position:absolute;filter:brightness(0) invert(1);object-fit:contain;transition:opacity 320ms cubic-bezier(.22,1,.36,1),transform 380ms cubic-bezier(.22,1,.36,1)}
.beca-image-text__cta-chevron{width:1rem;height:1rem;opacity:1;transform:translateX(0)}
.beca-image-text__cta-arrow{width:1.25rem;height:1.25rem;opacity:0;transform:translateX(-6px) scaleX(.5)}
.beca-image-text__cta:hover .beca-image-text__cta-chevron,.beca-image-text__cta:focus-visible .beca-image-text__cta-chevron{opacity:0;transform:translateX(8px) scaleX(1.15)}
.beca-image-text__cta:hover .beca-image-text__cta-arrow,.beca-image-text__cta:focus-visible .beca-image-text__cta-arrow{opacity:1;transform:translateX(0) scaleX(1)}
.beca-image-text__cta-label{position:relative;z-index:1;transition:transform 300ms cubic-bezier(.22,1,.36,1)}
.beca-image-text__cta:hover .beca-image-text__cta-label,.beca-image-text__cta:focus-visible .beca-image-text__cta-label{transform:translateX(2px)}
@media(prefers-reduced-motion:reduce){.beca-image-text__cta,.beca-image-text__cta::before,.beca-image-text__cta-icon img,.beca-image-text__cta-label{transition:none}}
