/* ========================================================= CTMS GLOBAL VARIABLES ========================================================= */:root { /* Testing value. Later this can be: var(--e-global-color-primary, #00ADEE); */ --site-primary-override: #00ADEE; --site-font-family: "DM Sans", sans-serif;--site-heading: #14284B; --site-text: #1C3144; --site-muted: #65758B;--site-card-bg: #F3FAFD; --site-card-border: #E3EEF3;/* Form colours */ --form-bg: #F3F3F3; --form-text: #374151; --form-heading: #123B7A; --form-border: #E2E8F0; --form-placeholder: #A3AAB5;/* Form field colours */ --form-field-bg: #FFFFFF; --form-field-border: #D1D5DB; --form-field-focus-border: #9CA3AF; }/* ========================================================= GLOBAL FONT Defined once and applied to CTMS listing, study detail and form. ========================================================= */.rt-embed.rt-container, .rt-embed.rt-container *, .rt-embed.rt-container *::before, .rt-embed.rt-container *::after, .study-page, .study-page *, .study-page *::before, .study-page *::after, .osBox.osBox-100.osDetail.osContent, .osBox.osBox-100.osDetail.osContent *, .osBox.osBox-100.osDetail.osContent *::before, .osBox.osBox-100.osDetail.osContent *::after { font-family: var(--site-font-family) !important; }/* ========================================================= MAIN CONTAINER ========================================================= */.rt-embed.rt-container { width: 100% !important; max-width: 100% !important; margin: 0 auto !important; padding: 0 !important; box-sizing: border-box !important;color: var(--site-text) !important; }/* ========================================================= LINK COLOUR ========================================================= */.osTitle .rt-home-button { color: var(--site-primary-override); }/* ========================================================= SEARCH BAR ========================================================= */.ctms-study-search { display: flex !important; align-items: center !important;width: 100% !important;gap: clamp(8px, 0.55vw, 12px) !important;margin: 0 0 clamp(20px, 1.56vw, 30px) !important; padding: 0 !important;box-sizing: border-box !important; }/* ========================================================= SEARCH INPUT WRAPPER ========================================================= */.ctms-search-input-wrapper { position: relative !important;flex: 1 1 auto !important;width: auto !important; min-width: 0 !important;margin: 0 !important; padding: 0 !important;box-sizing: border-box !important; }/* ========================================================= SEARCH ICON ========================================================= */.ctms-search-input-wrapper::before { content: "" !important;position: absolute !important;top: 50% !important; left: clamp(14px, 0.9vw, 18px) !important;width: 15px !important; height: 15px !important;transform: translateY(-50%) !important;background: #8B99A8 !important;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5' fill='none' stroke='black' stroke-width='1.2'/%3E%3Cpath d='M10.5 10.5L14 14' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5' fill='none' stroke='black' stroke-width='1.2'/%3E%3Cpath d='M10.5 10.5L14 14' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;pointer-events: none !important;z-index: 5 !important; }/* ========================================================= SEARCH INPUT ========================================================= */.rt-embed.rt-container .ctms-study-search input.ctms-study-search-input { display: block !important;width: 100% !important; height: clamp(42px, 2.65vw, 52px) !important; min-height: clamp(42px, 2.65vw, 52px) !important;margin: 0 !important;padding: 0 clamp(40px, 2.8vw, 50px) 0 clamp(38px, 2.6vw, 48px) !important;box-sizing: border-box !important;background: #FFFFFF !important;border: 1px solid #E1E7EC !important; border-radius: 999px !important;color: var(--site-text) !important;font-family: var(--site-font-family) !important; font-size: clamp(11px, 0.68vw, 14px) !important; font-weight: 400 !important;line-height: 1 !important;outline: none !important;box-shadow: none !important;appearance: none !important; -webkit-appearance: none !important; }.rt-embed.rt-container .ctms-study-search input.ctms-study-search-input::placeholder { color: #98A5B3 !important; opacity: 1 !important; }.rt-embed.rt-container .ctms-study-search input.ctms-study-search-input:focus { border-color: var(--site-primary-override) !important;outline: none !important;box-shadow: 0 0 0 2px color-mix( in srgb, var(--site-primary-override) 12%, transparent ) !important; }/* Hide browser's native search X */.rt-embed.rt-container .ctms-study-search input.ctms-study-search-input::-webkit-search-cancel-button { -webkit-appearance: none !important; appearance: none !important; }/* ========================================================= CLEAR BUTTON ========================================================= */.ctms-search-clear { position: absolute !important;top: 50% !important; right: 14px !important;display: none !important;align-items: center !important; justify-content: center !important;width: 24px !important; height: 24px !important;padding: 0 !important; margin: 0 !important;transform: translateY(-50%) !important;border: 0 !important; border-radius: 50% !important;background: transparent !important;color: #7A8795 !important;font-family: Arial, sans-serif !important; font-size: 19px !important; font-weight: 400 !important;line-height: 1 !important;cursor: pointer !important;z-index: 10 !important;box-shadow: none !important;appearance: none !important; -webkit-appearance: none !important; }.ctms-search-clear:hover { background: #F0F3F5 !important; color: var(--site-text) !important; }/* ========================================================= SEARCH BUTTON ========================================================= */.rt-embed.rt-container .ctms-study-search button.ctms-study-search-button { display: inline-flex !important;align-items: center !important; justify-content: center !important;flex: 0 0 clamp(140px, 10.2vw, 196px) !important;width: clamp(140px, 10.2vw, 196px) !important;height: clamp(42px, 2.65vw, 52px) !important; min-height: clamp(42px, 2.65vw, 52px) !important;margin: 0 !important; padding: 0 20px !important;box-sizing: border-box !important;border: 1px solid var(--site-primary-override) !important; border-radius: 999px !important;background-color: var(--site-primary-override) !important; background: var(--site-primary-override) !important;color: #FFFFFF !important;font-family: var(--site-font-family) !important; font-size: clamp(12px, 0.68vw, 14px) !important; font-weight: 500 !important;line-height: 1 !important; text-align: center !important; white-space: nowrap !important;cursor: pointer !important;opacity: 1 !important; visibility: visible !important;outline: none !important;box-shadow: none !important;appearance: none !important; -webkit-appearance: none !important;transition: opacity 0.2s ease, transform 0.2s ease !important; }.rt-embed.rt-container .ctms-study-search button.ctms-study-search-button:hover { background-color: var(--site-primary-override) !important; background: var(--site-primary-override) !important;border-color: var(--site-primary-override) !important;color: #FFFFFF !important;opacity: 0.88 !important; }/* ========================================================= MAIN HEADER ========================================================= */.rt-embed .osHeader .osTitle { margin: 0 0 clamp(18px, 1.25vw, 24px) !important;padding: 0 !important;color: var(--site-heading) !important;font-size: clamp( 22px, calc(18.85px + 0.817vw), 34px ) !important;font-style: normal !important; font-weight: 600 !important;line-height: 1.2 !important;letter-spacing: -0.02em !important; }/* ========================================================= STUDY AREA HEADING ========================================================= */.rt-embed h2.osArea { margin: 0 0 clamp(12px, 0.83vw, 16px) !important;padding: 0 !important;color: var(--site-heading) !important;font-size: clamp( 22px, calc(18.85px + 0.817vw), 34px ) !important;font-style: normal !important; font-weight: 600 !important;line-height: 1.2 !important;letter-spacing: -0.02em !important; }/* ========================================================= KEYWORD PILLS ========================================================= */.rt-embed .rt-keyword-container { display: inline-block !important;width: auto !important; max-width: 100% !important;float: none !important;margin: 0 6px 8px 0 !important;padding: 0 !important;vertical-align: middle !important;box-sizing: border-box !important; }.rt-embed .rt-keyword-container p.osStudyItem, .rt-embed .rt-keyword-container p.keyword-indiv-elem { display: inline-block !important;width: auto !important;margin: 0 !important; padding: 0 !important;line-height: 1 !important; }.rt-embed .rt-keyword { display: inline-flex !important;align-items: center !important; justify-content: center !important;min-height: clamp(28px, 1.46vw, 32px) !important;padding: 5px clamp(12px, 0.68vw, 14px) !important;box-sizing: border-box !important;border: 1px solid color-mix( in srgb, var(--site-primary-override) 40%, white ) !important;border-radius: 999px !important;background: color-mix( in srgb, var(--site-primary-override) 8%, white ) !important;color: var(--site-text) !important;font-family: var(--site-font-family) !important;font-size: clamp( 9px, calc(8px + 0.16vw), 12px ) !important;font-weight: 400 !important;line-height: 1.2 !important;white-space: nowrap !important;text-decoration: none !important;cursor: pointer !important; }.rt-embed .rt-keyword:hover { background: var(--site-primary-override) !important;border-color: var(--site-primary-override) !important;color: #FFFFFF !important; }/* ========================================================= STUDY CARD ========================================================= */.rt-embed .osListing { position: relative !important;display: block !important;width: 100% !important;height: auto !important;min-height: 84px !important;margin: 0 0 clamp(8px, 0.63vw, 12px) !important;padding: clamp(14px, 0.83vw, 16px) clamp(120px, 9vw, 150px) clamp(14px, 0.83vw, 16px) clamp(16px, 1.25vw, 24px) !important;box-sizing: border-box !important;overflow: hidden !important;background: var(--site-card-bg) !important;border: 1px solid var(--site-card-border) !important;border-radius: clamp(9px, 0.63vw, 12px) !important; }/* ========================================================= HIDE CTMS THUMBNAIL ========================================================= */.rt-embed .osListing .osThumb { display: none !important; }/* ========================================================= STUDY DETAILS ========================================================= */.rt-embed .osListing .osDetail { width: 100% !important;float: none !important;margin: 0 !important; padding: 0 !important;box-sizing: border-box !important; }/* ========================================================= STUDY TITLE ========================================================= */.rt-embed .osListing .osDetail > h2 { margin: 0 0 4px !important;padding: 0 !important;color: var(--site-text) !important;font-family: var(--site-font-family) !important;font-size: clamp( 16px, calc(15px + 0.18vw), 18.407px ) !important;font-style: normal !important;font-weight: 600 !important;line-height: clamp( 24px, calc(22px + 0.4vw), 27.61px ) !important;letter-spacing: -0.46px !important; }/* ========================================================= DESCRIPTION ========================================================= */.rt-embed .osListing .osDetail p { margin: 0 !important; padding: 0 !important;color: var(--site-text) !important;font-family: var(--site-font-family) !important;font-size: clamp( 11px, calc(10px + 0.16vw), 13px ) !important;font-weight: 400 !important;line-height: 1.4 !important; }/* Override CTMS inline Verdana */.rt-embed .osListing .osDetail p[style] { font-family: var(--site-font-family) !important;font-size: clamp( 11px, calc(10px + 0.16vw), 13px ) !important;line-height: 1.4 !important; }.rt-embed .osListing .osDetail p > div { margin: 0 !important; padding: 0 !important;font-family: var(--site-font-family) !important;color: var(--site-text) !important;font-size: inherit !important; line-height: inherit !important; }.rt-embed .osListing .osDetail p > div p { margin: 0 !important; padding: 0 !important;font-family: var(--site-font-family) !important;color: inherit !important;font-size: inherit !important; line-height: inherit !important; }/* ========================================================= CTA CONTAINER ========================================================= */.rt-embed .osListing .rt-study-area-buttons { position: absolute !important;top: 50% !important; right: clamp(12px, 0.83vw, 16px) !important;display: flex !important;align-items: center !important;width: auto !important; height: auto !important;margin: 0 !important; padding: 0 !important;transform: translateY(-50%) !important;z-index: 10 !important; }/* ========================================================= CTA ARROW ========================================================= */.rt-embed .osListing .rt-study-area-buttons::after { content: "" !important;position: absolute !important;top: 50% !important; right: 13px !important;width: 14px !important; height: 14px !important;transform: translateY(-50%) !important;background: var(--site-primary-override) !important;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat !important;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat !important;pointer-events: none !important; }/* ========================================================= CTA BUTTON ========================================================= */.rt-embed .osListing input.osButton.osButton-inline { display: inline-flex !important;align-items: center !important; justify-content: center !important;width: auto !important;min-width: clamp( 118px, 7.7vw, 148px ) !important;height: clamp( 36px, 2.3vw, 44px ) !important;min-height: clamp( 36px, 2.3vw, 44px ) !important;margin: 0 !important;padding: 0 36px 0 16px !important;box-sizing: border-box !important;border: 0.92px solid var(--site-primary-override) !important;border-radius: 999px !important;background: #FFFFFF !important;color: var(--site-primary-override) !important;font-family: var(--site-font-family) !important;font-size: clamp( 12px, 0.625vw, 13px ) !important;font-weight: 400 !important;line-height: 1 !important;cursor: pointer !important;text-shadow: none !important;outline: none !important;box-shadow: none !important;appearance: none !important; -webkit-appearance: none !important; }.rt-embed .osListing input.osButton.osButton-inline:hover { background: var(--site-primary-override) !important;border-color: var(--site-primary-override) !important;color: #FFFFFF !important; }.rt-embed .osListing .rt-study-area-buttons:hover::after { background: #FFFFFF !important; }/* Remove CTMS inline margin */.rt-embed .osListing .rt-study-area-buttons input { margin-right: 0 !important; }/* ========================================================= NO RESULTS ========================================================= */.ctms-no-results { display: none !important;width: 100% !important;margin: 0 0 16px !important;padding: 24px 20px !important;box-sizing: border-box !important;background: var(--site-card-bg) !important;border: 1px solid var(--site-card-border) !important;border-radius: 12px !important;color: var(--site-muted) !important;font-family: var(--site-font-family) !important;font-size: 14px !important;line-height: 1.5 !important;text-align: center !important; }.ctms-no-results.ctms-show { display: block !important; }/* ========================================================= PAGINATION ========================================================= */.ctms-pagination { display: flex !important;align-items: center !important; justify-content: center !important;flex-wrap: wrap !important;gap: 6px !important;width: 100% !important;margin: clamp(20px, 1.56vw, 30px) 0 0 !important;padding: 0 !important; }.ctms-pagination button { display: inline-flex !important;align-items: center !important; justify-content: center !important;width: clamp(30px, 2vw, 38px) !important;height: clamp(30px, 2vw, 38px) !important;min-width: clamp(30px, 2vw, 38px) !important;padding: 0 !important;margin: 0 !important;box-sizing: border-box !important;border: 1px solid var(--site-card-border) !important;border-radius: 999px !important;background: #FFFFFF !important;color: var(--site-text) !important;font-family: var(--site-font-family) !important;font-size: clamp( 10px, 0.625vw, 13px ) !important;font-weight: 500 !important;line-height: 1 !important;cursor: pointer !important;opacity: 1 !important;visibility: visible !important;box-shadow: none !important; }.ctms-pagination button:hover { border-color: var(--site-primary-override) !important;color: var(--site-primary-override) !important; }.ctms-pagination button.ctms-page-active { background: var(--site-primary-override) !important;border-color: var(--site-primary-override) !important;color: #FFFFFF !important; }.ctms-pagination button.ctms-page-arrow { font-size: 16px !important; }.ctms-pagination button:disabled { opacity: 0.35 !important;cursor: default !important; }/* ========================================================= MOBILE ========================================================= */@media (max-width: 767px) {.ctms-study-search { gap: 8px !important; }.ctms-study-search-button { flex: 0 0 105px !important;width: 105px !important; }.ctms-study-search-input { height: 42px !important; min-height: 42px !important; }.rt-embed .osHeader .osTitle, .rt-embed h2.osArea { font-size: clamp( 22px, 5.8vw, 30px ) !important; }.rt-embed .rt-keyword-container { margin: 0 5px 7px 0 !important; }.rt-embed .osListing { min-height: 88px !important;padding: 12px 104px 12px 12px !important; }.rt-embed .osListing .osDetail > h2 { font-size: 15px !important;line-height: 1.35 !important; }.rt-embed .osListing .osDetail p { font-size: 11px !important; }.rt-embed .osListing .rt-study-area-buttons { right: 9px !important; }.rt-embed .osListing input.osButton.osButton-inline { min-width: 94px !important;height: 34px !important; min-height: 34px !important;padding: 0 30px 0 10px !important;font-size: 11px !important; }.rt-embed .osListing .rt-study-area-buttons::after { right: 10px !important;width: 13px !important; height: 13px !important; } }/* ========================================================= SMALL MOBILE ========================================================= */@media (max-width: 480px) {.ctms-study-search-button { flex: 0 0 90px !important;width: 90px !important;padding: 0 10px !important; }.ctms-study-search-input { padding-left: 38px !important; padding-right: 38px !important; }.rt-embed .osListing { min-height: 86px !important;padding: 12px 96px 12px 12px !important; }.rt-embed .osListing input.osButton.osButton-inline { min-width: 88px !important;height: 33px !important; min-height: 33px !important;padding: 0 28px 0 9px !important;font-size: 10px !important; } }/* ========================================================= STUDY DETAIL — RESEARCH STUDIES TITLE ========================================================= *//* ========================================================= RESEARCH STUDIES TITLE 18px → 24px using clamp ========================================================= */.osTitle, .osTitle *, .osTitle *::before, .osTitle *::after { font-family: var(--site-font-family) !important; }.osTitle { font-size: clamp( 18px, calc(16.54px + 0.388vw), 24px ) !important;font-weight: 600 !important;line-height: 1.2 !important; }/* ========================================================= CTMS ========================================================= */.study-page { --site-primary: var(--site-primary-override) !important; }/* ========================================================= SECTION TITLES ========================================================= Study Overview WHO CAN PARTICIPATE JOURNEY BENEFITS FAQ Existing CTMS content is NOT changed. Only styling is applied. ========================================================= */.study-page .section-label { color: var(--site-primary-override) !important; }/* ========================================================= PILLS ========================================================= */.study-page .study-tag {color: var(--site-primary-override) !important;border-color: var(--site-primary-override) !important;background: var(--form-bg) !important; }/* ========================================================= PARTICIPATION BULLETS ========================================================= */.study-page .participation-list li::before {background: var(--site-primary-override) !important; }/* ========================================================= JOURNEY / FLOW ========================================================= *//* Number colour only. Circle background remains unchanged. */.study-page .journey-number {color: var(--site-primary-override) !important; }/* Flow title */.study-page .journey-title {color: var(--site-primary-override) !important; }/* Dashed connecting line */.study-page .journey-line {border-top-color: var(--site-primary-override) !important; }/* ========================================================= BENEFITS ========================================================= */.study-page .benefit-title {color: var(--site-primary-override) !important; }/* Benefit underline, if present */.study-page .benefit-title::after {background: var(--site-primary-override) !important; }/* ========================================================= APPLICATION FORM ========================================================= *//* ========================================================= FORM VARIABLES + CONTAINER ========================================================= */.osBox.osBox-100.osDetail.osContent {/* Form width */width: 100% !important;max-width: 100% !important;margin: 0 auto !important;/* Responsive padding */padding: clamp( 24px, calc(16px + 0.83vw), 32px ) clamp( 16px, calc(12px + 0.42vw), 20px ) !important;/* Requested form background */background: var(--form-bg) !important;border: 1px solid var(--form-border) !important;border-radius: clamp( 18px, 1.15vw, 22px ) !important;box-sizing: border-box !important;color: var(--form-text) !important; }/* ========================================================= FORM BOX SIZING ========================================================= */.osBox.osBox-100.osDetail.osContent *, .osBox.osBox-100.osDetail.osContent *::before, .osBox.osBox-100.osDetail.osContent *::after {box-sizing: border-box; }/* ========================================================= FORM HEADING ========================================================= Existing CTMS heading/content remains unchanged. Only styling is applied. ========================================================= */.osBox.osBox-100.osDetail.osContent > h1 {margin: 0 0 clamp( 16px, 1.25vw, 24px ) !important;padding: 0 !important;color: var(--form-heading) !important;font-size: clamp( 28px, 2.5vw, 42px ) !important;font-weight: 600 !important;line-height: 1.2 !important;text-align: center !important; }/* ========================================================= FORM PARAGRAPH ========================================================= */.osBox.osBox-100.osDetail.osContent p {font-size: clamp( 13px, calc(11px + 0.26vw), 16px ) !important;font-weight: 400 !important;line-height: 1.5 !important;color: var(--form-text) !important; }/* ========================================================= FIELD WRAPPERS ========================================================= */.osBox.osBox-100.osDetail.osContent > div[style*="margin: 3px"] {margin: 0 0 18px !important;padding: 0 !important;border: 0 !important; }/* ========================================================= FORM LABELS ========================================================= */.osBox.osBox-100.osDetail.osContent .osFormLabel.singlePageBlockElem {margin: 0 0 7px !important;padding: 0 !important;color: var(--form-text) !important;font-size: clamp( 13px, calc(11px + 0.26vw), 16px ) !important;font-weight: 400 !important;line-height: 1.3 !important; }/* ========================================================= FORM VALUE ========================================================= */.osBox.osBox-100.osDetail.osContent .osFormValue.singlePageBlockElem {width: 100% !important;margin: 0 !important;padding: 0 !important; }/* ========================================================= TEXT INPUTS ========================================================= */.osBox.osBox-100.osDetail.osContent input[type="text"],.osBox.osBox-100.osDetail.osContent input[type="email"],.osBox.osBox-100.osDetail.osContent input[type="tel"],.osBox.osBox-100.osDetail.osContent input[type="number"] {width: 100% !important;height: clamp( 50px, calc(46px + 0.42vw), 54px ) !important;margin: 0 !important;padding: 14px 16px !important;color: var(--form-text) !important;background: var(--form-field-bg) !important;border: 1px solid var(--form-border) !important;border-radius: 8px !important;outline: none !important;font-size: clamp( 14px, calc(12px + 0.21vw), 16px ) !important;font-weight: 400 !important;line-height: 1.5 !important; }/* ========================================================= PLACEHOLDER ========================================================= */.osBox.osBox-100.osDetail.osContent input::placeholder {color: var(--form-placeholder) !important;opacity: 1 !important; }/* ========================================================= FORM FIELDS — STANDARD COLOUR ========================================================= */.osBox.osBox-100.osDetail.osContent input[type="text"], .osBox.osBox-100.osDetail.osContent input[type="email"], .osBox.osBox-100.osDetail.osContent input[type="tel"], .osBox.osBox-100.osDetail.osContent input[type="number"], .osBox.osBox-100.osDetail.osContent select, .osBox.osBox-100.osDetail.osContent textarea {border: 1px solid var(--form-field-border) !important;background: var(--form-field-bg) !important;outline: none !important; }/* ========================================================= FORM FIELDS — FOCUS ========================================================= */.osBox.osBox-100.osDetail.osContent input[type="text"]:focus, .osBox.osBox-100.osDetail.osContent input[type="email"]:focus, .osBox.osBox-100.osDetail.osContent input[type="tel"]:focus, .osBox.osBox-100.osDetail.osContent input[type="number"]:focus, .osBox.osBox-100.osDetail.osContent select:focus, .osBox.osBox-100.osDetail.osContent textarea:focus {border-color: var(--form-field-focus-border) !important;outline: none !important;box-shadow: none !important; }/* ========================================================= FORM FIELDS — ERROR / INVALID ========================================================= */.osBox.osBox-100.osDetail.osContent input:invalid, .osBox.osBox-100.osDetail.osContent input.error, .osBox.osBox-100.osDetail.osContent input.invalid, .osBox.osBox-100.osDetail.osContent select.error, .osBox.osBox-100.osDetail.osContent select.invalid, .osBox.osBox-100.osDetail.osContent textarea.error, .osBox.osBox-100.osDetail.osContent textarea.invalid {border-color: var(--form-field-border) !important;box-shadow: none !important;outline: none !important; }/* ========================================================= FIRST NAME / LAST NAME ========================================================= */.osBox.osBox-100.osDetail.osContent > div:has(input[name="FirstName"]) {display: inline-block !important;width: 100%;margin-right: 8px !important;vertical-align: top !important; }.osBox.osBox-100.osDetail.osContent > div:has(input[name="LastName"]) {display: inline-block !important;width: 100%;vertical-align: top !important; }/* ========================================================= SELECT ========================================================= */.osBox.osBox-100.osDetail.osContent select {width: 100% !important;height: clamp( 50px, calc(46px + 0.42vw), 54px ) !important;margin: 0 !important;padding: 12px 16px !important;color: var(--form-text) !important;background: var(--form-field-bg) !important;border: 1px solid var(--form-border) !important;border-radius: 8px !important;font-size: clamp( 14px, calc(12px + 0.21vw), 16px ) !important;font-weight: 400 !important; }/* ========================================================= DATE OF BIRTH ========================================================= */.osBox.osBox-100.osDetail.osContent select[data-field="dob_day"] {width: 100%; margin-bottom: 10px !important; }.osBox.osBox-100.osDetail.osContent select[data-field="dob_day"] + select { width:100%; margin-bottom: 10px !important; }.osBox.osBox-100.osDetail.osContent select[data-field="dob_day"] + select + select { width: 100%; margin-bottom: 10px !important; }/* ========================================================= RADIO ========================================================= */.osBox.osBox-100.osDetail.osContent input[type="radio"] {width: 16px !important;height: 16px !important;margin: 0 7px 0 0 !important;accent-color: var(--site-primary-override) !important;vertical-align: middle !important; }/* ========================================================= RADIO LABEL ========================================================= */.osBox.osBox-100.osDetail.osContent input[type="radio"] + label {color: var(--form-text) !important;font-size: clamp( 13px, calc(11px + 0.26vw), 16px ) !important; }/* ========================================================= CHECKBOX ========================================================= */.osBox.osBox-100.osDetail.osContent input[type="checkbox"] {width: 16px !important;height: 16px !important;margin: 0 8px 0 0 !important;accent-color: var(--site-primary-override) !important;vertical-align: middle !important; }/* ========================================================= CHECKBOX LABEL ========================================================= */.osBox.osBox-100.osDetail.osContent input[type="checkbox"] + label {color: var(--form-text) !important;font-size: clamp( 13px, calc(11px + 0.26vw), 16px ) !important; }/* ========================================================= SEARCH INPUT ========================================================= */.osBox.osBox-100.osDetail.osContent input[data-field^="search_"] {width: 100% !important;height: 44px !important;margin: 0 0 10px !important;padding: 10px 14px !important;color: var(--form-text) !important;background: var(--form-field-bg) !important;border: 1px solid var(--form-border) !important;border-radius: 8px !important;font-size: clamp( 13px, calc(11px + 0.26vw), 15px ) !important; }/* ========================================================= CHECKBOX LIST ========================================================= */.osBox.osBox-100.osDetail.osContent .osFormValue > div[style*="height: 256px"] {width: 100% !important;height: 256px !important;padding: 0 !important; }/* ========================================================= CHECKBOX LIST ROWS ========================================================= */.osBox.osBox-100.osDetail.osContent .osFormValue > div[style*="height: 256px"] p {margin: 0 0 12px !important;padding: 0 !important;font-size: clamp( 13px, calc(11px + 0.26vw), 16px ) !important;line-height: 1.5 !important; }/* ========================================================= CHECKBOX LIST TEXT ========================================================= */.osBox.osBox-100.osDetail.osContent .osFormValue > div[style*="height: 256px"] label {color: var(--form-text) !important;font-size: clamp( 13px, calc(11px + 0.26vw), 16px ) !important;font-weight: 400 !important;line-height: 1.5 !important; }/* ========================================================= CONTACT TIME CHECKBOX ========================================================= */.osBox.osBox-100.osDetail.osContent input[name="_ContactTime[]"] {margin-right: 8px !important;accent-color: var(--site-primary-override) !important; }/* ========================================================= CONFIDENTIAL MESSAGE ========================================================= */.osBox.osBox-100.osDetail.osContent .webint-notice-confidential {margin: 20px 0 !important;padding: 0 !important;color: #505665 !important;font-size: clamp( 13px, calc(11px + 0.26vw), 16px ) !important;line-height: 1.5 !important; }/* ========================================================= SUBMIT BUTTON ========================================================= DESIGN ONLY. The existing value="Submit Application" remains untouched. ========================================================= */.osBox.osBox-100.osDetail.osContent .rt-application-button-container {width: 100% !important;margin: 28px 0 0 !important;padding: 0 !important;text-align: center !important; }.osBox.osBox-100.osDetail.osContent input.osButton {width: 50% !important;height: clamp( 32px, 8vw + 10px, 70px ) !important;min-height: 0 !important;margin: 0 !important;padding: 0 30px !important;background: var(--site-primary-override) !important;color: #FFFFFF !important;border: none !important;border-radius: 999px !important;/* 12px minimum → 18px maximum */font-size: clamp( 12px, 1.55vw, 18px ) !important;font-weight: 400 !important;line-height: 1 !important;text-align: center !important;box-shadow: none !important;cursor: pointer !important; }/* ========================================================= SUBMIT BUTTON HOVER ========================================================= */.osBox.osBox-100.osDetail.osContent input.osButton:hover {background: var(--site-primary-override) !important;color: #FFFFFF !important;border: none !important;box-shadow: none !important; }/* ========================================================= MOBILE ========================================================= */@media (max-width: 767px) {.osBox.osBox-100.osDetail.osContent {padding: 24px 16px !important;border-radius: 18px !important; }/* First / Last name become full width */.osBox.osBox-100.osDetail.osContent > div:has(input[name="FirstName"]),.osBox.osBox-100.osDetail.osContent > div:has(input[name="LastName"]) {display: block !important;width: 100% !important;margin-left: 0 !important;margin-right: 0 !important; }/* Inputs */.osBox.osBox-100.osDetail.osContent input[type="text"],.osBox.osBox-100.osDetail.osContent input[type="email"],.osBox.osBox-100.osDetail.osContent input[type="tel"],.osBox.osBox-100.osDetail.osContent input[type="number"],.osBox.osBox-100.osDetail.osContent select {height: 52px !important; }/* Submit button */.osBox.osBox-100.osDetail.osContent input.osButton {width: 100% !important;height: 64px !important;min-height: 0 !important;padding: 0 24px !important;border-radius: 999px !important;font-size: clamp( 12px, 5vw, 18px ) !important; }}/* ========================================================= 375px - 400px ========================================================= */@media (min-width: 375px) and (max-width: 400px) {.osBox.osBox-100.osDetail.osContent {padding: 22px 14px !important; }}/* ========================================================= PRIMARY-COLOUR DEPENDENT FORM BACKGROUND If primary colour is #FB3231, form background becomes #F3F3F3. Otherwise the default --form-bg value is used. ========================================================= */:root.ctms-primary-red { --form-bg: #F3F3F3; }
(function () {/* ===================================================== PRIMARY-COLOUR DEPENDENT FORM BACKGROUND ===================================================== Testing primary colour is #00ADEE. If the primary colour becomes #FB3231, the form background is changed to #F3F3F3 automatically. */function updatePrimaryDependentStyles() {const primary = getComputedStyle(document.documentElement) .getPropertyValue('--site-primary-override') .trim();const probe = document.createElement('span');probe.style.color = primary; probe.style.display = 'none';document.body.appendChild(probe);const resolvedPrimary = getComputedStyle(probe).color;probe.remove();const isRedPrimary = resolvedPrimary === 'rgb(251, 50, 49)';document.documentElement.classList.toggle( 'ctms-primary-red', isRedPrimary ); }/* ===================================================== SETTINGS ===================================================== */const ITEMS_PER_PAGE = 8;/* ===================================================== INITIALISE ===================================================== */updatePrimaryDependentStyles();function initialiseCTMSStudyList() {const container = document.querySelector( '.rt-embed.rt-container' );if (!container) { return false; }const listings = container.querySelectorAll( '.osListing' );if (!listings.length) { return false; }/* * Prevent duplicate initialisation. */if ( container.dataset.ctmsEnhanced === 'true' ) { return true; }container.dataset.ctmsEnhanced = 'true';/* ================================================= SEARCH BAR ================================================= */const searchWrapper = document.createElement( 'div' );searchWrapper.className = 'ctms-study-search';const inputWrapper = document.createElement( 'div' );inputWrapper.className = 'ctms-search-input-wrapper';/* Search input */const searchInput = document.createElement( 'input' );searchInput.type = 'search';searchInput.className = 'ctms-study-search-input';searchInput.placeholder = 'Search study...';searchInput.setAttribute( 'aria-label', 'Search study title' );/* Clear button */const clearButton = document.createElement( 'button' );clearButton.type = 'button';clearButton.className = 'ctms-search-clear';clearButton.innerHTML = '×';clearButton.setAttribute( 'aria-label', 'Clear search' );inputWrapper.appendChild( searchInput );inputWrapper.appendChild( clearButton );/* Search button */const searchButton = document.createElement( 'button' );searchButton.type = 'button';searchButton.className = 'ctms-study-search-button';searchButton.textContent = 'Search';searchWrapper.appendChild( inputWrapper );searchWrapper.appendChild( searchButton );/* ================================================= INSERT SEARCH BAR ================================================= */const header = container.querySelector( '.osHeader' );if (header) {header.parentNode.insertBefore( searchWrapper, header );} else {container.prepend( searchWrapper ); }/* ================================================= NO RESULTS ================================================= */const noResults = document.createElement( 'div' );noResults.className = 'ctms-no-results';noResults.textContent = 'No studies found matching your search.';/* ================================================= PAGINATION ================================================= */const pagination = document.createElement( 'div' );pagination.className = 'ctms-pagination';const listingParent = listings[0].parentNode;listingParent.appendChild( noResults );listingParent.appendChild( pagination );/* ================================================= STATE ================================================= */let currentPage = 1;let currentSearch = '';/* ================================================= STUDY TITLE ================================================= */function getStudyTitle( listing ) {const title = listing.querySelector( '.osDetail > h2' );if (!title) { return ''; }return title.textContent .replace( /\s+/g, ' ' ) .trim() .toLowerCase(); }/* ================================================= FILTER STUDIES ================================================= */function getFilteredListings() {return Array .from(listings) .filter( function (listing) {const title = getStudyTitle( listing );/* * No search = * show every study. */if ( currentSearch === '' ) {return true; }/* * Search ONLY * study title. */return title.indexOf( currentSearch ) !== -1; } ); }/* ================================================= CLEAR SEARCH ICON ================================================= */function updateClearButton() {if ( searchInput.value.trim() !== '' ) {clearButton.style.setProperty( 'display', 'inline-flex', 'important' );} else {clearButton.style.setProperty( 'display', 'none', 'important' ); } }/* ================================================= PAGINATION ================================================= */function renderPagination( totalPages ) {pagination.innerHTML = '';if ( totalPages 1 ) {currentPage--;renderStudies(); } } );pagination.appendChild( previousButton );/* Page numbers */for ( let page = 1; page <= totalPages; page++ ) {const pageButton = document.createElement( 'button' );pageButton.type = 'button';pageButton.textContent = page;if ( page === currentPage ) {pageButton.classList.add( 'ctms-page-active' ); }pageButton.addEventListener( 'click', function () {currentPage = page;renderStudies(); } );pagination.appendChild( pageButton ); }/* Next */const nextButton = document.createElement( 'button' );nextButton.type = 'button';nextButton.className = 'ctms-page-arrow';nextButton.innerHTML = '›';nextButton.disabled = currentPage === totalPages;nextButton.addEventListener( 'click', function () {if ( currentPage totalPages ) {currentPage = totalPages; }/* * Calculate current range. */const startIndex = ( currentPage - 1 ) * ITEMS_PER_PAGE;const endIndex = startIndex + ITEMS_PER_PAGE;/* * Show only the * current 8 studies. */filteredListings .slice( startIndex, endIndex ) .forEach( function (listing) {listing.style.setProperty( 'display', 'block', 'important' ); } );/* * Update pagination. */renderPagination( totalPages ); }/* ================================================= PERFORM SEARCH ================================================= */function performSearch() {currentSearch = searchInput.value .trim() .toLowerCase();/* * New search always * starts from page 1. */currentPage = 1;renderStudies(); }/* ================================================= SEARCH BUTTON CLICK ================================================= */searchButton.addEventListener( 'click', function () {performSearch(); } );/* ================================================= ENTER KEY ================================================= */searchInput.addEventListener( 'keydown', function (event) {if ( event.key === 'Enter' ) {event.preventDefault();performSearch(); } } );/* ================================================= INPUT CHANGE ================================================= */searchInput.addEventListener( 'input', function () {updateClearButton(); } );/* ================================================= CLEAR SEARCH ================================================= */clearButton.addEventListener( 'click', function () {searchInput.value = '';currentSearch = '';currentPage = 1;updateClearButton();renderStudies();/* * Put focus back into * the search field. */searchInput.focus(); } );/* ================================================= INITIAL RENDER ================================================= */updateClearButton();renderStudies();return true; }/* ===================================================== INITIAL ATTEMPT ===================================================== */if ( initialiseCTMSStudyList() ) {return; }/* ===================================================== CTMS DYNAMIC CONTENT ===================================================== */const observer = new MutationObserver( function () {if ( initialiseCTMSStudyList() ) {observer.disconnect(); } } );observer.observe( document.body, { childList: true, subtree: true } );/* ===================================================== STOP OBSERVER AFTER 30 SECONDS ===================================================== */setTimeout( function () {observer.disconnect();}, 30000 );})();