:root {
    --off-white: #F3F3F3;
    --light-grey: #CCCCCC;
    --dark-grey: #666666;
    --red: #E1251B;
    --dark-red: #BE0403;

    --info: #d9e7f7;
    --success: #457112;
    --warning: #f3bb1b;
    --error: #d12123;

    --full-padding: 44px;
    --mobile-padding: 24px;
    --punchout-max-width: 440px;
    --footnote-margin: 20px;
}

body {
    align-items: center;
    background-color: white;
    background-image: url('/uowidp/v1/WebContent/image/student_centre_1920x1080.jpg');
    background-position-x: center;
    background-position-y: 0;
    background-position: center;
    background-size: cover;
    color: #0A0A0A;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    font-family: "Segoe UI", "Helvetica Neue", "Lucida Grande", "Roboto", "Ebrima", "Nirmala UI", "Gadugi", "Segoe Xbox Symbol", "Segoe UI Symbol", "Meiryo UI", "Khmer UI", "Tunga", "Lao UI", "Raavi", "Iskoola Pota", "Latha", "Leelawadee", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "Estrangelo Edessa", "Microsoft Himalaya", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Tai Le", "Microsoft Yi Baiti", "Mongolian Baiti", "MV Boli", "Myanmar Text", "Cambria Math";
    font-size: 15px;
    height: 100vh;
    justify-content: center;
    margin: 0;
}

a,
a:link
{
    color: var(--red);
    text-decoration: underline;
}

a:focus
{
    outline: 1px dashed var(--dark-red);
    outline-offset: 0px;
    color: var(--dark-red);
    text-decoration: none;
}

a:hover,
a:active
{
    color: var(--dark-red);
    text-decoration: underline;
}

h1 {
    font-size: 24px;
    font-weight: 600;
    margin-top: 0.75em;
    margin-bottom: calc(2em / 3);
}

input[type="text"] {
    border-color: rgba(0, 0, 0, 0.6);
    border-style: solid;
    border-width: 0 0 1px 0;
    display: block;
    font-size: 1em;
    margin-bottom: 1em;
    padding: 6px 6px 6px 0;
    height: 36px;
    outline: none;
    width: 100%;
}

input[type="text"]:hover {
    border-color: rgba(0, 0, 0, 0.8);
}

input[type="text"]:focus {
    border-color: #0067B8;
}

/* Error states */
div#validation-msg {
    color: var(--red);
    padding: 0;
}

input.has-error {
    border-color: var(--error) !important;
}

/* Primary button */
button {
    border: 1px solid var(--red);
    background-color: var(--red);
    color: white;
    border-radius: 1em;
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 1em;
    line-height: 22px;
    min-width: 108px;
    padding: 4px 12px;
}
button:focus {
    border-color: var(--dark-red);
    background-color: var(--dark-red);
    color: white;
    outline: 1px dashed var(--dark-red);
    outline-offset: 2px;
    text-decoration: none;
}
button:hover {
    border-color: var(--dark-red);
    background-color: var(--dark-red);
    color: white;
    text-decoration: none;
}
button:active {
    border-color: var(--dark-red);
    background-color: var(--dark-red);
    color: white;
    text-decoration: none;
    transform: scale(0.98);
}

button:disabled {
    border-color: var(--light-grey);
    background-color: var(--light-grey);
    color: var(--dark-grey);
    cursor: not-allowed;
}

/* Secondary Button */
button.secondary {
    border: 1px solid var(--red);
    background-color: white;
    color: black;
    border-radius: 1em;
    text-decoration: none;
}
button.secondary:focus {
    border-color: var(--dark-red);
    background-color: white;
    color: var(--dark-red);
    outline: 1px dashed var(--dark-red);
    outline-offset: 2px;
    text-decoration: none;
}
button.secondary:hover {
    background-color: var(--dark-red);
	background-color: white;
    color: var(--dark-red);
	text-decoration: none;
}
button.secondary:active {
    background-color: var(--dark-red);
	background-color: white;
    color: var(--dark-red);
	text-decoration: none;
    transform: scale(0.98);
}

/* Button container style */
button:not(:last-of-type) {
    margin-right: 0.25em;
}

.button-container {
    text-align: right;
    margin-top: 1em;
}

button.fill {
    width: 100%;
    margin: 0 0 1em 0em;
}

.punchout {
    background-color: white;
    display: flex;
    flex-direction: column;
    flex: 0;
    max-width: var(--punchout-max-width);
    width: calc(100% - 40px);
}

.content-container {
    margin-bottom: 20px;
}

.alternate-content {
    background-color: var(--off-white);
    box-sizing: border-box;
    padding: 8px var(--full-padding);
    margin-bottom: 28px;
    border-radius: 0;
}

.alternate-content:hover {
    background-color: var(--light-grey);
}

.alternate-content:focus-within {
	outline: 1px dashed black;
	outline-offset: 0px;
    background-color: var(--light-grey);
}

.alternate-content a {
    color: inherit;
	text-decoration: none;
}

.alternate-content a:hover,
.alternate-content a:focus,
.alternate-content a:active {
    text-decoration: none;
	outline: none;
}

.alternate-content img {
    width: 32px;
    height: 32px;
    margin-right: 12px;
    vertical-align: middle;
}

.coatOfArms {
    max-width: 120px;
}

.flex-end {
    align-self: flex-end;
    padding: 24px var(--full-padding);
    display: inline-block;
    width: 100%;
    box-sizing: border-box;
}

.footnote {
    width: 100%;
}

.off-white {
    background-color:var(--off-white);
}

.content {
    padding: var(--full-padding);
}

.small {
    font-size: .8125rem;
}

@media (max-width: 600px), (max-height: 600px) {
    body {
        background-image: none;
        justify-content: flex-start;
    }
    .content-container {
        border: 0;
        margin-bottom: 88px;
    }
    .content {
        padding: var(--mobile-padding);
    }
    .alternate-content {
        background-color: white;
        border: 1px solid var(--dark-grey);
        padding-left: var(--mobile-padding);
        padding-right: var(--mobile-padding);
        max-width: calc(var(--punchout-max-width) - ( 2 * var(--mobile-padding)));
    }
    .footnote {
        margin: var(--footnote-margin);
        padding: var(--mobile-padding);
        width: calc(100% - 2 * var(--footnote-margin));
    }
}

/* CSS Spinner */
#loading_container {
    text-align: center;
}

.loader {
    width: 48px;
    height: 48px;
    border: 5px solid var(--dark-red);
    border-bottom-color: transparent;
    border-radius: 50%;
    display: inline-block;
    margin: 2em auto;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

  @keyframes rotation {
  0% {
      transform: rotate(0deg);
  }
  100% {
      transform: rotate(360deg);
  }
}

/* Alert/info box style */
.alert {
    display: inline-block;
    box-sizing: border-box;
    width: 100%;
    padding: 1em;
    margin: 2em 0em;

    border-radius: 4px;
    
    word-wrap: break-word;
    line-height: 1.5em;
    font-size: 1em;
}

.alert-info {
    background: var(--info);
    color: black;
}

.alert-success {
    background: var(--success);
    color: white;
}

.alert-warning {
    background: var(--warning);
    color: black;
}

.alert-error {
    background: var(--error);
    color: white;
}

.alert img.alert-icon {
    width: 1.5em;
    height: 1.5em;
    padding-right: .5em;
    display: inline-block;
    vertical-align: middle;
}

.alert-info img.alert-icon {
    content: url("/uowidp/v1/WebContent/image/icons/info_blk_48.png");
}

.alert-success img.alert-icon {
    content: url("/uowidp/v1/WebContent/image/icons/success_wht_48.png");
}

.alert-warning img.alert-icon {
    content: url("/uowidp/v1/WebContent/image/icons/warning_blk_48.png");
}

.alert-error img.alert-icon {
    content: url("/uowidp/v1/WebContent/image/icons/error_wht_48.png");
}

.alert-hide {
    display: none;
}

.alert-show {
    display: block;
    animation: 1s fadeIn;
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}