/* Earl Grey v1.0 */

/* Browser Default Resets */

textarea,
input.text,
input[type='text'],
input[type='button'],
input[type='submit'],
input[type='email'],
input[type='tel'],
input[type='password'],
input[type='number'],
.input-checkbox {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
	color: var(--primary-font-colour);
}

select {
    color: var(--primary-font-colour);
}

fieldset, legend {
    font-size: var(--base-font-size);
    line-height: 1.5;
    width: 100%;
}

fieldset {
    border: 0px none;
    margin: 0;
    padding: 0;
}

dt, dl {
    font-size: var(--base-font-size);
}

dl {
    margin-block-start: 0.5em;
	margin-block-end: 0.5em;
}

.email-wrap {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* DSA Specfic */

html,
body {
    height: 100%;
}

#full-page {
    flex: 1 0 auto;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1440px;
    padding: 0 1rem;
    margin: 0 auto;
}

/* Navigation */

.header-container nav ul {
    display: flex;
    justify-content: space-between;
    margin: 0;
    padding: 0;
    width: 100%;
}

.header-container nav ul li {
    list-style: none;
    padding: 0;
    margin: 0;
}

.header-container nav ul li a {
    padding: 0.75em;
    display: inline-block;
}

#inline-memorabledataquestions-error {
    white-space: pre-wrap;
}

#application-reference {
    font-weight: 500;
}

/* Skip to main content */

.skip-to-content-link {
    width: 100%;
    padding: 0.5em;
    position: absolute;
    transform: translateY(-100%);
    transition: transform 0.3s;
    color: #333;
	box-sizing: border-box;
}

.skip-to-content-link:focus {
    transform: translateY(0%);
    font-size: 1rem;
    border: none;
    color: #333;
	background: #fd0;
}

/* reCaptcha */

.grecaptcha-badge {
    visibility: hidden;
}

#reCaptcha {
    margin: 2em 0;
    font-size: 0.875rem;
}

/* Accessible support */

.visually-hidden {
    position: absolute;
    left: -9000px;
}

.show-for-screen-reader-only {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

/* Questions */

.question-wrapper {
	padding: 0.25em 0 0.5em 0;
}

.question-label {
    display: block;
    margin: 0.25em 0;
    font-weight: 500;
}

.question-hint {
    display: block;
    color: #505a5f;
    margin: 6px 0;
}

    .question-hint p {
        margin: 0;
    }

.question-wrapper .answer-prefix {
    display: inline-block;
    margin-right: 6px;
}

.question-wrapper input {
    width: 100%;
    box-sizing: border-box;
}

.question-wrapper input[type='text'],
.question-wrapper input[type='email'],
.question-wrapper input[type='tel'],
.question-wrapper input[type='password'],
.question-wrapper input[type='number'],
.autocomplete__wrapper input {
    font: inherit;
    border: 2px solid var(--input-border-colour);
    padding: 3px 6px;
}

.question-wrapper select {
    font: inherit;
    font-size: var(--base-font-size);
    border: 2px solid var(--input-border-colour);
    padding: 3px 6px;
    max-width: 70%;
    color: #000;
    border-radius: 0;
	min-height: 2em;
}

.question-wrapper textarea {
    font: inherit;
    width: 100%;
    height: 5em;
    border: 2px solid var(--input-border-colour);
    padding: 3px 6px;
}

    .question-wrapper select:focus,
    .question-wrapper input[type='text']:focus,
    .question-wrapper input[type='email']:focus,
    .question-wrapper input[type='tel']:focus,
    .question-wrapper input[type='password']:focus,
    .question-wrapper input[type='number']:focus,
    .question-wrapper textarea:focus,
    .autocomplete__wrapper input:focus	{
        outline: 3px solid var(--input-focus-colour);
        outline-offset: 0;
        box-shadow: inset 0 0 0 2px;
    }

.question-wrapper legend {
    padding: 0;
}

input[type='radio'],
input[type='checkbox'] {
    position: relative;
    top: 2px;
    accent-color: var(--primary-brand-colour);
    width: 2.105rem;
    height: 2.105rem;
}

    input[type='radio']:disabled,
    input[type='checkbox']:disabled {
        cursor: not-allowed;
    }

        input[type='radio']:disabled + label,
        input[type='checkbox']:disabled + label {
            cursor: not-allowed;
            color: #515151;
        }

.check-box-question,
.question-radio-button {
    display: grid;
    grid-template-columns: 2.5rem auto;
    grid-gap: 0.5em;
    padding: 0.25em 0;
}

    .check-box-question label,
    .question-radio-button label {
        align-self: auto;
        padding-top: 0.3em;
    }

.checkbox-button label {
    display: inline-block;
    background-color: var(--primary-button-background-colour);
    border: 1px solid var(--primary-button-background-colour);
    color: #fff;
    padding: 0.5em;
    border-radius: 4px;
}

.checkbox-button input:checked ~ label {
    background-color: var(--primary-button-background-colour);
}

.checkbox-button input:hover ~ label {
    background-color: var(--primary-button-background-colour);
    cursor: pointer;
}

.checkbox-button input:focus ~ label {
    outline: 3px solid transparent;
    outline-offset: 3px;
    box-shadow: 0 0 0 2px var(--input-focus-colour);
}

.question-radio-button-inline {
    display: inline-block;
}

.checkbox-button label,
.radio-button-button label{
    display: inline-block;
    background-color: var(--primary-brand-colour);
    border: 1px solid var(--primary-brand-colour);
    color: #fff;
    padding: 0.5em;
}

.radio-button-button label{
    float:left;
    margin-right: 0.5em;
}

.checkbox-button input:checked ~ label,
.radio-button-button input:checked ~ label{
    background-color: #03633b;
    color: #fff;
}

.checkbox-button input:hover ~ label,
.radio-button-button input:hover ~ label{
    background-color: #03633b;
    color: #fff;
    cursor: pointer;
}

.checkbox-button input:focus ~ label,
.radio-button-button input:focus ~ label {
    outline: 3px solid transparent;
    outline-offset: 3px;
    box-shadow: 0 0 0 2px var(--input-focus-colour);
}

/* Double wrapper padding fix */

#address-question,
#address-lookup-wrapper,
#contact-details-question,
#nominated-account,
#other-sort-code-account-wrapper {
	padding-top: 0;
	padding-bottom: 0;
}

.personal-details-display,
.linked-account-details-display,
.verified-account-details-display {
	padding-bottom: 1em;
	margin-left:1em;
}

#applicant-1-linked-full-name,
#applicant-1-linked-date-of-birth,
#applicant-1-linked-address,
#applicant-2-linked-full-name,
#applicant-2-linked-date-of-birth,
#applicant-2-linked-address {
	display:block;
	margin:0.25em 0;
}

.selected-address-result-title {
    display: block;
    margin-top: 1em;
    font-weight: 500;
}
/* Input widths */

.two-char {
    max-width: 2.75em;
    text-align: center;
}

.three-char {
    max-width: 3em;
}

.four-char {
    max-width: 4em;
    text-align: center;
}

.five-char, .six-char {
    max-width: 5em;
}

.eight-char {
    max-width: 7em;
}

.ten-char, .fifteen-char {
    max-width: 10em;
}

.eighteen-char, .twenty-char, .forty-char, .fifty-char, .drop-down {
    max-width: 20em;
}

/* Buttons */

.action-button {
    padding: 1em 0;
}

button,
a.link-button {
    display: inline-block;
    font: inherit;
    font-size: var(--base-font-size);
    color: var(--primary-button-text-colour);
    background-color: var(--primary-button-background-colour);
    padding: 9px 14px;
    cursor: pointer;
    text-decoration: none;
    border-radius: 0.5em;
    border: 1px solid var(--primary-button-border-colour);
}

    button:hover,
    a.link-button:hover {
        background-color: var(--primary-button-hover-background-colour);
        color: var(--primary-button-hover-text-colour);
        border: 1px solid var(--primary-button-hover-border-colour);
        text-decoration: none;
    }

    button:disabled,
    a.link-button.disabled {
        opacity: 0.5;
        color: var(--primary-button-text-colour);
        background-color: var(--primary-button-background-colour);
        border: 1px solid var(--primary-button-border-colour);
    }

        button:disabled:hover {
            cursor: not-allowed;
        }

button#continue-button {
    margin-top: 30px;
}

    button.secondary-action,
    a.link-button.secondary-action {
        background-color: var(--secondary-button-background-colour);
        color: var(--secondary-button-text-colour);
        border: 1px solid var(--secondary-button-border-colour);
    }

        button.secondary-action:hover,
        a.link-button.secondary-action:hover {
            color: var(--secondary-button-hover-text-colour);
            background-color: var(--secondary-button-hover-background-colour);
        }

    button.warning-action,
    a.link-button.warning-action {
        background-color: #d4351c;
    }

        button.warning-action:hover,
        a.link-button.warning-action:hover {
            background-color: var(--secondary-button-hover-background-colour);
            color: var(--secondary-button-hover-text-colour);
            border: 1px solid var(--secondary-button-hover-border-colour);
        }

    button:focus-visible,
    a.link-button:focus-visible {
        outline: none;
        background-color: var(--input-focus-colour);
        color: var(--button-focus-colour);
    }

a.back-link:link {
    color:#0b0c0c;
    text-decoration:underline;
    text-underline-offset: .3em;
    }

    a.back-link:before {
        content: "";
        display: inline-block;
        width: 7px;
        height: 7px;
        margin: auto 5px 2px 0;
        transform: rotate(225deg);
        border: solid;
        border-color: #0b0c0c;
        border-width: 2px 2px 0 0;
        }

    a.back-link:hover {
            text-decoration-thickness: max(3px, .1875rem, .12em);
            text-decoration-skip: none;
            }

/* Validation */

.validation-summary-errors {
    padding: 10px 20px;
    border-color: var(--error-border-colour);
    border-width: 3px;
    border-style: solid;
    color: var(--error-text-colour);
}

    .validation-summary-errors h2 {
        border: none;
        color: var(--error-text-colour);
    }

    .validation-summary-errors ul li {
        color: var(--error-text-colour);
    }

.has-error {
    padding-left: 20px;
    border-color: var(--error-border-colour);
    border-width: 0 0 0 3px;
    border-style: solid;
}

.field-validation-error {
    display: block;
    margin: 6px 0;
    color: var(--error-border-colour);
}

.question-date {
    display: inline-block;
    margin-right: 20px;
}

    .question-date label {
        display: block;
        margin: 6px 0;
    }

/* Details  */

.details {
    margin: 1em 0;
    padding: 0;
    list-style: none;
}

    .details li,
    .check-answers .check-answer-row {
        position: relative;
        padding: 0.5em 100px 0.5em 0;
        border-bottom: solid var(--input-border-colour) 1px;
    }

    .check-answers .check-answer-row {
        padding-bottom: 0;
    }

        .details li:first-child,
        .check-answers .check-answer-row:first-child {
            border-top: solid var(--input-border-colour) 1px;
        }

    .details li .details-actions,
    .check-answers .check-answer-row .check-answer-actions {
        position: absolute;
        top: 0.5em;
        right: 0;
    }
    .check-answers .check-answer-row .check-answer-actions {
        margin: 0;
        padding: 0;
    }


/* Password with strength styles */

.password-validation .text .icon {
    width: 1em;
    height: 1em;
    display: inline-block;
}

.password-validation .text {
    display: inline-block;
}

.password-validation .neutral .text .icon {
    background: url("../images/checkbox/neutral.png") left center no-repeat;
}

.password-validation .positive .text .icon {
    background: url("../images/checkbox/positive.png") left center no-repeat;
}

.password-validation .negative .text .icon {
    background: url("../images/checkbox/negative.png") left center no-repeat;
}

/* Alerts */

.alert  {
    display: block;
    margin: 1em 0 0 0;
    border-width: 5px;
    border-style: solid;
	border-top: none;
}
 
    .alert h2 {
        color: inherit;
        font-size: var(--base-font-size);
        border-bottom: 0;
    }
 
    .alert.error {
        border-color: var(--error-border-colour);
        color: var(--error-text-colour);
    }
 
    .alert.information {
		border-color: var(--alert-information-colour, #0066cc);
    }
 
    .alert.warning {
        border-color: var(--alert-warning-colour, #ff9900);
    }
 
    .alert.complete  {
        border-color: var(--alert-success-colour, #008800);
    }
		.alert.complete h2,
		.alert.information h2,		
		.alert.warning h2,
		.alert.information p,
		.alert.complete p,
		.alert.warning p {
			padding: 0.5em;
			margin: 0;
		}
		.alert.complete p.alert-heading {
			background-color: var(--alert-success-colour, #008800);
			color: var(--alert-heading-font-colour, #ffffff);
			font-weight: 500;
		}
		.alert.warning p.alert-heading {
			background-color: var(--alert-warning-colour, #ff9900);
			color: #000;
			font-weight: 500;
		}
		.alert.information p.alert-heading {
			background-color:  var(--alert-information-colour, #0066cc);
			color: var(--alert-heading-font-colour, #ffffff);
			font-weight: 500;
		}

	.address-loading.alert.information,
	#non-electronic-isa-transfer-notice {
		padding: 0.5em;
		border-top: solid;
		border-width: 5px;
		border-color: var(--alert-information-colour, #0066cc);
	}

/* Cards */

.cards {
    padding: 1em;
    border-radius: 10px;
    background-color: var(--primary-background-colour);
}

    .cards h2 {
        margin-top: 0;
    }

    .cards ul {
        padding: 0;
        margin: 0;
        list-style: none;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        grid-gap: 1em;
    }

        .cards ul li.card {
            padding: 0;
            margin: 0;
            background-color: #fff;
            border-radius: 10px;
            border: 0px none;
        }

.card {
    border-radius: 10px;
    border: 2px solid var(--primary-brand-colour);
}

    .card .card-header,
    .card .card-body,
    .card .card-options {
        padding: 0 1em;
    }

.account-card .card-body dl {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.account-card dt {
    font-weight: normal;
}

.account-card .card-interest-rate {
    grid-column: 1;
    grid-row: 2;
}

.account-card .card-balance {
    grid-column: 2;
    grid-row: 1;
    font-size: 1.5rem;
    font-weight: bold;
    margin-top: -0.4em;
    text-align: right;
    color: var(--primary-brand-colour);
}

.account-card .card-available-balance {
    text-align: right;
}

.card-body dt {
    display: inline-block;
    margin: 0.25em 0;
}

.card-body dd {
    display: inline-block;
    margin: 0.25em 0;
    padding: 0;
}

.card .card-options a {
    display: inline-block;
    padding: 0.5em;
    border: 1px solid var(--primary-brand-colour);
    border-radius: 4px;
    text-decoration: none;
}

    .card .card-options a:focus,
    .card .card-options a:hover {
        background-color: var(--primary-background-colour);
    }

    .card .card-options a:focus {
        outline: 3px solid transparent;
        outline-offset: 3px;
        box-shadow: 0 0 0 2px var(--input-focus-colour);
    }

.card-footer {
    margin-top: 1em;
    border-top: 2px solid #fff;
    padding: 0 1em;
}

.card input {
    position: absolute;
    left: -9000px;
}

.action-cards ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 1em;
    margin: 1em 0;
    padding: 0;
    list-style: none;
    text-align: center;
}

    .action-cards ul li {
        border-radius: 0.5em;
        background-color: var(--primary-background-colour);
        margin: 0;
    }

        .action-cards ul li p:first-child {
            margin: 1em 0 0 0;
            font-size: 0.875rem
        }

        .action-cards ul li a {
            width: 80%;
            display: inline-block;
        }

/* Used for displaying a list of downloads */

ul.downloads {
    list-style: none;
    padding: 0;
}

.downloads a {
    display: inline-block;
    padding: 0.75em 1em;
    border: 1px solid var(--primary-brand-colour);
    text-decoration: none;
    background: left 14px center no-repeat;
    background-color: var(--primary-background-colour);
    color: var(--primary-brand-colour);
    border-radius: 5px;
}

    .downloads a:hover {
        opacity: 0.6;
    }

.downloads li:not(:last-child) a {
    border-bottom: 0px none;
}

.downloads li a {
    display: block;
    border-radius: 0;
}

.downloads li:first-child a {
    border-radius: 5px 5px 0 0;
}

.downloads li:last-child a {
    border-radius: 0 0 5px 5px;
}

.downloads a.pdf-download {
    padding-left: 42px;
    background-image: url(../images/pdf.svg);
}

.downloads a small.unread-action,
.downloads a small.read-action {
    display: inline-block;
    padding-left: 28px;
    background: url(../images/unread.svg) left 4px center no-repeat;
}

.downloads a small.read-action {
    background-image: url(../images/read.svg);
}

.downloads a small.unread-action {
    background-size: 18px;
}

/* Progress bar and steps */

#progress-bar {
    margin: 0.5em 0;
    height: 0.5em;
    background-color: var(--progress-background);
}

    #progress-bar:before {
        display: block;
        height: 100%;
        content: ' ';
        background-color: var(--primary-brand-colour);
    }

#step-number {
    font-weight: bold;
}

.progress-caption {
    margin-top: 1em;
}

.step1.single:before {
    width: 14%;
}

.step2.single:before {
    width: 28.5%;
}

.step3.single:before {
    width: 42.8%;
}

.step4.single:before {
    width: 57%;
}

.step5.single:before {
    width: 71.4%;
}

.step6.single:before {
    width: 85.7%;
}

.step7.single:before {
    width: 100%;
}

.step1.joint:before {
    width: 10%;
}

.step2.joint:before {
    width: 20%;
}

.step3.joint:before {
    width: 30%;
}

.step4.joint:before {
    width: 40%;
}

.step5.joint:before {
    width: 50%;
}

.step6.joint:before {
    width: 60%;
}

.step7.joint:before {
    width: 70%;
}

.step8.joint:before {
    width: 80%;
}

.step9.joint:before {
    width: 90%;
}

.step10.joint:before {
    width: 100%;
}

.step1.existing:before {
    width: 33%;
}

.step2.existing:before {
    width: 67%;
}

.step3.existing:before {
    width: 100%;
}

/* grey divider between sections */

#joint-account,
#existing-isa,
#nationality,
#date-of-birth,
#sex,
#employment,
#fatca-details,
#marketing-preferences,
#email-address-questions,
#contact-number,
#source-of-wealth,
#interest-frequency,
#FSCS,
.memorable-information-section,
.additional-security-info,
#isa-transfer-account-details,
#transfer-isa-amount-question,
#transfer-authority .question-wrapper,
.existing-customer-account-set-up #FSCS
{
    border-top: solid 2px lightgray;
    margin-top: 1em;
}

#name-on-account {
    padding-bottom: 1em;
}

/* Existing Customer Styles */

.existing-customer-account-set-up #interest-frequency,
.existing-customer-personal-details #fatca-details {
    border-top: 0;
    margin-top: 0;
}

/* --- MODAL STYLES --- */

.modal-wrapper {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 101;
}

.modal-background {
    background: #000;
    filter: alpha(opacity=50);
    opacity: 0.5;
    z-index: 102;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.modal-message {
    display: none;
    position: fixed;
    top: 100px;
    left: 0;
    right: 0;
    z-index: 1003;
    padding: 1.5em;
    background: #fff;
    text-align: center;
}

    .modal-message p {
        margin: 10px auto;
        padding: 0.5em;
        text-align: center;
    }

    .modal-message a.link-button {
        margin: 0.5em;
        padding: 9px 20px;
    }

/* Responsive */

@media only screen and (max-width: 1020px) {
    main,
    header,
    #footer-wrapper
	{
        padding: 0 1rem;
    }
}

@media only screen and (max-width: 479px) and (orientation: landscape) {
	.modal-message,
	.modal-message h2,
	.modal-message p {
		padding: 0.25rem;
		margin: 0;
	}
	.modal-message a.link-button {
		margin-bottom: 0.25rem;
	}
}

@media only screen and (max-width: 1000px) and (orientation: landscape) {
    .modal-message {
        top: 0;
		position: absolute;
    }
}

@media only screen and (max-width: 400px) {
    .header-container {
        flex-direction: column;
        padding-bottom: 1em;
    }
}

/* Description Lists */

dt {
    font-weight: 500;
    width: 50%;
}

dd {
    padding: 1em 0 0.5em 0;
    margin: -2.55em 0 0 50%;
    min-height: 1.5em;
    width: 50%;
}

dd ul {
    margin: 0;
    padding: 0px 0px 0px 22px;
}

.confirm-section {
	padding-bottom: 0.5em;
}
.personal-details-display.applicant-1 dd,
.linked-account-details-display dd,
.verified-account-details-display dd {
    margin: -2.55em 0 0 30%;
}

@media only screen and (max-width: 960px) {
    dd,
    .linked-account-details-display dd,
	.verified-account-details-display dd, 
	.personal-details-display.applicant-1 dd {
        padding: 0 0 1em 0;
        margin: 0;
    }
    dd, dt,
	.personal-details-display.applicant-1 dd,
	.personal-details-display.applicant-1 dt,
    .linked-account-details-display dd,
    .linked-account-details-display dt,
	.verified-account-details-display dd, 
	.verified-account-details-display dt {
        width: 100%;
    }
}

/* Show/hide */

.show {
    display: block;
}

.hide {
    display: none;
}

/* Reg saver specific */

.RegularSaver h2:has(span.reg-saver-hidden),
.RegularSaver .investment-details,
.RegularSaver main hr:last-of-type {
    display: none;
}

.RegularSaver #FSCS {
    border: 0;
    padding: 0;
}

/* Feature Set - Only visible when a feature is set */

#feature-id-set {
    position: static;
    top: 0;
    z-index: 999;
    box-sizing: border-box;
    background-color: #000;
    color: #fff;
    width: 100%;
    padding: 10px 20px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

#feature-id-set a {
    color: #fff;
}

#feature-id-set a:hover {
    color: #f6f6f6;
}