/* Header */
.apex-header {
    display: flex;
    align-items: center;      /* Vertically centres logo and links */
    padding: 20px;
    background: #fff;
}

.apex-logo {
    flex-shrink: 0;
}

.apex-links {
    margin-left: auto;
    display: flex;
    gap: 15px;
    z-index: 9999;
}

.apex-links a {
    color: #333;
    text-decoration: none;
    font-size: 12px;
}

a {
    color: #333;
  
}

a:hover {
    text-decoration: underline;
}

/* Gradient Banner */
.apex-banner {
    background-image: url("https://asset-cdn-use.cassiecloud.com/Themes/B969E1B2-ECA8-463C-A927-2B6719F63267/5/resources/gradient-banner.png");
    background-size: cover;
    background-position: center;
    height: 50px;
    display: flex;
    width:100%;
}




/* =====================================
   GLOBAL LAYOUT (flex ordering)
===================================== */

.container.body-content {
    display: flex;
    flex-direction: column;
}

.two-factor-auth {
    display: flex;
    flex-direction: column;
}

body {
    display: flex;
    flex-direction: column;
    margin: 5% 20% 20% 20%;
    font-family: Arial, Helvetica, sans-serif;
    color: #111;
}

.login-panel {
    order: -2;
}

.login-wrapper {
    order: 0;
}

.page-footer {
    order: -1;
    margin-top: 0px;
}

.main-group {
    order: 1;
    margin-top: 50px;
    max-width: 950px;
}

.body-container {
    width: 100%;
}

.content-container {
    padding: 0px !important;
    margin-left: 0% !important;
    margin-right: 0% !important;
}

/* =====================================
   VERIFY PANEL (#LoginPanel1)
===================================== */

#LoginPanel1 {
    max-width: 100%;
}

/* Email + button row */
#LoginPanel1 .login-field,
#LoginPanel1 #login-button-1 {
    box-sizing: border-box;
}

/* Create row layout */
#LoginPanel1 form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

/* Input field (flex-basis overridden by later rule: 1 1 300px) */
#LoginPanel1 .login-field {
    flex: 1 1 300px;
    min-width: 200px;
    max-width: 30%;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #cfd3d8;
    border-radius: 3px;
    font-size: 14px;
}

/* Button styling */
#LoginPanel1 #login-button-1 {
    height: 40px;
    min-width: 100px;
    padding: 0 20px;
    border: none;
    border-radius: 3px;
    background-color: #4F67D6;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

#LoginPanel1 #login-button-1:hover {
    background-color: #445BC2;
}

#LoginPanel1 .login-field:focus {
    outline: none;
    border-color: #4F67D6;
    box-shadow: 0 0 0 2px rgba(79, 103, 214, 0.15);
}

/* =====================================
   REMOVE PORTAL ELEMENTS
   (.page-footer intentionally excluded here ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â
   it's made visible again below)
===================================== */

.language-container,
#ClientLogo,
.custom-identifier,
.main-group__description,
.page-freetext,
.AllChannelAndStatementIDs,
.SourceCode,
.ResponseChannel {
    display: none !important;
}

#top-bar {
    display: none !important;
}

.page-footer {
    display: block !important;
    text-align: left;
}

/* =====================================
   REMOVE THEME STYLING
===================================== */

.body-container,
.content-container,
#group-bar,
.main-group,
.main-group__header,
.main-group__statements {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

/* =====================================
   PAGE TITLE
===================================== */

.content-title {
    display: none;
    justify-content: flex-start;
}

.page-title {
    font-size: 42px;
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 20px;
    color: #000;
}

/* =====================================
   CONTENT
===================================== */

.content-description {
    font-size: 16px;
    line-height: 1.6;
}

.content-description p {
    max-width: 100%;
}

.content-description ul {
    list-style: none;
    display: flex;
    justify-content: flex-end;
    gap: 20px;
    padding: 0;
    margin: 20px 0 30px;
}

.content-description a {
    color: #2251ff;
    text-decoration: none;
}

.content-description a:hover {
    text-decoration: underline;
}

/* =====================================
   PRIVACY CHOICES SECTION
===================================== */

#group-bar {
    text-align: center;
    margin-top: 3%;
    margin-left: 0%;
    margin-right: 0%;
}

.main-group__header {
    margin-bottom: 25px;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}

.main-group__name {
    background: transparent !important;
    border: 0 !important;
    color: #2351ff;
    font-size: 32px;
    font-weight: 400;
    line-height: 1.2;
    text-align: left;
    margin: 0;
    padding: 0;
}

/* =====================================
   CHECKBOXES
===================================== */

.ChannelIdCheckbox {
    position: absolute;
    left: -9999px;
}

/* =====================================
   PREFERENCE ROWS
===================================== */

.main-group__statements > div {
    position: relative;
    padding: 12px 0;
    min-height: 34px;
}

/* NOTE: a later duplicate of this rule set display:block (no align-items),
   which overrides display:flex below per cascade. align-items/min-height
   were never overridden so they persist but have no visual effect while
   display is block. Flagging in case display:flex was the intended value. */
.ChannelIdCheckbox + label {
display: flex;
align-items: center;
    box-sizing: border-box;
    width: 100%;
    min-height: 34px;
    padding-right: 220px;
    margin: 0;
    font-size: 16px;
    line-height: 1.4;
    text-align: left !important;
    cursor: pointer;
}

/* =====================================
   SEGMENTED CONTROL
===================================== */

.ChannelIdCheckbox + label::before {
    content: "Opt-In";
    position: absolute;
    right: 90px;
    top: 50%;
    transform: translateY(-50%);
    width: 90px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #2251ff;
    border-right: none;
    border-radius: 4px 0 0 4px;
    background: #2251ff;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
}

.ChannelIdCheckbox + label::after {
    content: "Opt-Out";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 90px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #2251ff;
    border-radius: 0 4px 4px 0;
    background: #fff;
    color: #2251ff;
    font-size: 14px;
    font-weight: 600;
}

/* =====================================
   CHECKED STATE
===================================== */

.ChannelIdCheckbox:checked + label::before {
    background: #2251ff;
    color: #fff;
}

.ChannelIdCheckbox:checked + label::after {
    background: #fff;
    color: #2251ff;
}

.ChannelIdCheckbox:not(:checked) + label::before {
    background: #fff;
    color: #2251ff;
}

.ChannelIdCheckbox:not(:checked) + label::after {
    background: #2251ff;
    color: #fff;
}

.ChannelIdCheckbox + label::before,
.ChannelIdCheckbox + label::after {
    transition:
        background-color 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease;

    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
}

/* =====================================
   ACTION BUTTONS
===================================== */

.actions-container {
    margin-top: 40px;
    display: flex;
    justify-content: flex-start;
    border-top: solid 0px grey;
}

.button {
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
}

.savePreferencesButton {
    width: 180px;
    height: 36px;
    background: #fff;
    color: #2251ff;
    border: 1px solid #2251ff;
    font-size: 13px;
    font-weight: 600;

}

.savePreferencesButton:hover {
    background: #2251ff;
    color: #fff;
}

/* Hide Opt Out All */
.optOutDiv {
    display: none;
}


/* =====================================
   MOBILE
===================================== */
@media (max-width: 600px) {

    body {
        margin: 10px 40px 0px 40px;
    }

    .main-group__statements > div {
        min-height: 80px;
        padding-bottom: 12px;
    }

#LoginPanel1 .login-field {
    width: 100%;
}    

    .ChannelIdCheckbox + label {
        padding-right: 0;
        padding-bottom: 40px;
    }

    .ChannelIdCheckbox + label::before,
    .ChannelIdCheckbox + label::after {
        top: auto;
        bottom: 0;
        transform: none;
    }

    .ChannelIdCheckbox + label::before {
        right: 90px;
    }

    .ChannelIdCheckbox + label::after {
        right: 0;
    }

    /* Centre Save Preferences button */
    .actions-container {
        justify-content: center;
        padding-top: 30px;
    }
   .savePreferencesButton {
        width: 80%;
    }    

    .apex-header {
        flex-direction: column;
        align-items: center;
        gap: 15px;
        padding: 0px 0px 0px 0px 
    }

.apex-banner {
    width:120%;
    margin: 10% -10% 5% -10%;
}    

    .apex-links {
        margin-left: 0;
        gap: 10px;
        display: flex;
    }

    .apex-links a {
        text-align: center;
    }
}
