/* =========================================================
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
);})();