/* Additions on top of the theme: rich-text content from the CMS editor (blog posts, legal pages, case studies). */
.rich-text p { margin-bottom: 24px; }
.rich-text p:last-child { margin-bottom: 0; }
.rich-text h1, .rich-text h2, .rich-text h3, .rich-text h4, .rich-text h5, .rich-text h6 { font-weight: 700; color: var(--secondary-color); margin: 40px 0 24px; }
.rich-text h2 { margin: 48px 0 30px; }
.rich-text h4 { font-weight: 600; margin: 32px 0 20px; }
.rich-text > :first-child { margin-top: 0; }
.rich-text ul, .rich-text ol { padding-left: 20px; margin-bottom: 30px; }
.rich-text ul { list-style-type: disc; }
.rich-text ol { list-style-type: decimal; }
.rich-text li { margin-bottom: 8px; }
.rich-text strong { font-weight: 600; color: var(--secondary-color); }
.rich-text a { color: var(--primary-color); text-decoration: underline; }
.rich-text img { max-width: 100%; height: auto; border-radius: 8px; margin: 12px 0 24px; }
.rich-text blockquote { border-left: 4px solid var(--quaternary-color); padding: 8px 0 8px 24px; margin: 24px 0; font-style: italic; color: var(--tertiary-color); }
.rich-text pre { background: #111; color: #f5f5f5; padding: 20px; border-radius: 8px; overflow-x: auto; margin-bottom: 24px; }
.rich-text code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.95em; }
.rich-text iframe { max-width: 100%; border-radius: 8px; margin-bottom: 24px; }
.rich-text table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
.rich-text th, .rich-text td { border: 1px solid #e5e5e5; padding: 10px 12px; text-align: left; }
.legal-content .rich-text p { margin-bottom: 30px; }
.contact-form input[type="file"] { border: none; padding: 12px 0; }
.text-danger { color: #c62828; }
.footer .footer__map { border-radius: 12px; overflow: hidden; }
/* Technology / partner logo slider: small, grey, no colour highlight on the centre slide */
.sponsor .sponsor__single { padding: 0 30px; display: flex !important; align-items: center; justify-content: center; }
.sponsor .sponsor__single img { max-height: 44px; width: auto; max-width: 160px; object-fit: contain; filter: grayscale(1); opacity: 0.6; }
.sponsor .slick-center img { filter: grayscale(1); opacity: 1; }
.sponsor .sponsor__single img:hover { opacity: 1; }
/* Brand colour instead of the theme's two hard-coded yellows */
.career-banner::before { background-image: linear-gradient(to bottom, var(--quaternary-color) 50%, var(--quaternary-color) 50%); }
.transform .transform-single { border-right-color: rgba(227, 11, 93, 0.35); }
.form-status { text-transform: none; }
/* Case-study slider cards: keep landscape images from stretching to the card's min-height */
.tp-study .tp-study-slider__single .thumb img { height: 400px; object-fit: cover; }
/* Case-study image frames: the theme's mh-* classes are min-height only, so a portrait or
   over-tall upload stretches the layout. Fix the frame and crop instead, so any aspect ratio works. */
.c-study .c-study-single .thumb img { height: 420px; object-fit: cover; }
.c-details .poster img { height: 520px; object-fit: cover; }
@media (max-width: 991px) {
  .c-study .c-study-single .thumb img { height: 300px; }
  .c-details .poster img { height: 300px; }
}
/* The theme's .title-anim forces lowercase (SplitText re-uppercases only each word's first
   character), which mangles brand names: AIMBEE -> "Aimbee", Dr. NTR -> "Dr. Ntr".
   .keep-case opts a heading out while keeping the split-text animation. */
.title-anim.keep-case,
.title-anim.keep-case div,
.title-anim.keep-case > div > div:nth-of-type(1) { text-transform: none !important; }
