/* Colours pallet

   var(--aalto-idp-background-color) - Body background, header / section border, read only / disabled input fields.
   var(--aalto-idp-link-color) - Links, buttons, list items, selected radio, selected checkbox.
   var(--aalto-idp-body-text-color) - Body text, input fields border.
   var(--aalto-idp-disabled-color) - read only / disabled input fields.

*/

:root {
  --aalto-idp-background-color:          hsl(0 0 92);
  --aalto-idp-main-shadow-color:         hsl(0 0 0 / 13%);
  --aalto-idp-boxed-shadow-color:        hsl(0 0 0 / 13%);
  --aalto-idp-boxed-bg:                  white;
  --aalto-idp-main-bg-color:             hsl(0 0 97);
  --aalto-idp-body-text-color:           #32424a;
  --aalto-idp-link-color:                #0038ff;
  --aalto-idp-disabled-color:            #959595;
  --aalto-idp-placeholder-color:         #a9b0b4;

  --aalto-idp-output-message-bg:         #ffd8c2;
  --aalto-idp-output-message-color:      #7a2d00;

  --aalto-idp-error-message-bg:          #fff0f3;
  --aalto-idp-error-message-color:       #b50024;

  --aalto-idp-success-message-bg:        #dcf9e7;
  --aalto-idp-success-message-color:     #1c7d40;

  --aalto-idp-input-bg:                  white;
  --aalto-idp-input-border-color:        hsl(from var(--aalto-idp-body-text-color) h calc(s - 12) calc(l + 47));

  --aalto-idp-checkbox-bg:               white;
  --aalto-idp-checkbox-label-color:      var(--aalto-idp-link-color);
  --aalto-idp-checkbox-border-color:     hsl(from var(--aalto-idp-body-text-color) h calc(s - 10) calc(l + 10));
  --aalto-idp-checkedbox-border-color:   var(--aalto-idp-link-color);

  --aalto-idp-button-bg:                 var(--aalto-idp-link-color);
  --aalto-idp-button-color:              white;
  --aalto-idp-button-border-color:       var(--aalto-idp-button-bg);
  --aalto-idp-button-border-style:       solid;
  --aalto-idp-button-hover-bg:           hsl(from var(--aalto-idp-button-bg) h s calc(l - 17));
  --aalto-idp-button-hover-color:        white;
  --aalto-idp-button-hover-border-color: black;
  --aalto-idp-button-hover-border-style: solid;
  --aalto-idp-button-transition-time:    0.1s;

  --aalto-idp-2nd-bt-bg:                 var(--aalto-idp-main-bg-color);
  --aalto-idp-2nd-bt-color:              var(--aalto-idp-link-color);
  --aalto-idp-2nd-bt-border-color:       var(--aalto-idp-2nd-bt-color);
  --aalto-idp-2nd-bt-hover-bg:           var(--aalto-idp-button-hover-bg);
  --aalto-idp-2nd-bt-hover-color:        var(--aalto-idp-button-hover-color);
  --aalto-idp-2nd-bt-hover-border-color: var(--aalto-idp-button-hover-border-color);
  --aalto-idp-2nd-bt-hover-border-style: solid;

  --aalto-idp-button-border-width:       3px;
  --aalto-idp-border-radius-small:       2px;
  --aalto-idp-border-radius-medium:      5px;
  --aalto-idp-border-radius-large:       7px;
}

html, html * {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  box-sizing: border-box;
  background: none;
  background-repeat: no-repeat;
  background-position: left top;
  border: 0;
  outline: 0;
}

html {
  height: 100%;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main {
  display: block;
}

/* Default document styles - fonts, font sizes, text colours, font weight */
body {
  font-family: Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
  font-size: 16px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.5rem;
  color: var(--aalto-idp-body-text-color);
  font-weight: 400;
  max-width: 3000px;
  margin: 0 auto;
  background-color: var(--aalto-idp-background-color);
  padding: 6px 24px;
}
@media screen and (max-width: 759px) {
  body {
    padding: 6px 6px;
  }
}
@media screen and (max-width: 479px) {
  body {
    padding: 0px 0px;
  }
}


/* Links */
a[href] {
  text-decoration: none;
  color: var(--aalto-idp-link-color);
}

/* Link hover states */
a[href]:hover, a[href]:active, a[href]:focus {
  text-decoration: underline;
  color: var(--aalto-idp-link-color);
}

/* Heading styles */
h1 {
  font-size: 18px;
  /*! font-size: 1.5rem; */
  /*! line-height: 28px; */
  /*! line-height: 1.75rem; */
  font-weight: 550;
  margin: 12px 0 20px 0;
  padding: 0;
}

h2 {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 25px;
  line-height: 1.5rem;
  font-weight: 400;
}

h3 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 22px;
  line-height: 1.375rem;
  font-weight: 700;
}

h4 {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18px;
  line-height: 1.125rem;
  font-weight: 700;
  margin-bottom: 0.5em;
}

h5 {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18px;
  line-height: 1.125rem;
  font-weight: 400;
}

/*
h1, h2, h3, h4, h5, h6, p {
  margin-bottom: 1em;
}

h1:last-child, h2:last-child, h3:last-child, h4:last-child, h5:last-child, h6:last-child, p:last-child {
  margin-bottom: 0px;
}
*/

/* List styles */
ol, ul {
  list-style: none;
  margin: 8px;
}

ol:before, ol:after,
ul:before, ul:after {
  content: " ";
  display: table;
}

ol:after,
ul:after {
  clear: both;
}

ol:last-child,
ul:last-child {
  margin-bottom: 0px;
}

ol:first-child,
ul:first-child {
  margin-top: 0px;
}

ul li {
  padding-left: 22px;
  margin-bottom: 4px;
  position: relative;
  list-style: none;
}

ul li:last-child {
  margin-bottom: 0px;
}

ul li:before {
  content: '';
  border-radius: var(--aalto-idp-border-radius-small);
  background-color: var(--aalto-idp-link-color);
  height: 7px;
  width: 7px;
  display: block;
  position: absolute;
  left: 0;
  top: 7px;
}

ol {
  counter-reset: item;
}

ol li {
  padding-left: 22px;
  margin-bottom: 10px;
  position: relative;
  list-style: none;
}

ol li:last-child {
  margin-bottom: 0px;
}

ol li:before {
  color: var(--aalto-idp-link-color);
  position: absolute;
  left: 0;
  content: counter(item) ". ";
  counter-increment: item;
  font-weight: 700;
  top: 1px;
}

ol li:nth-child(n+10) {
  padding-left: 30px;
}

ol li:nth-child(n+100) {
  padding-left: 38px;
}

hr {
  width: 100%;
  clear: both;
  border: 0;
  outline: 0;
  background-color: var(--aalto-idp-background-color);
  height: 1px;
  display: block;
  margin: 30px 0;
}

b, strong {
  font-weight: 700;
}

i, em {
  font-style: italic;
}

small {
  font-size: 0.8em;
}

big {
  font-size: 1.2em;
}

.cc {
  clear: both;
  margin: 0 auto;
  width: 100%;
  max-width: 649px;
  padding: 0 0;
}

.cc:before, .cc:after {
  content: " ";
  display: table;
}

.cc:after {
  clear: both;
}

img {
  max-width: 100%;
  height: auto;
}

/* Main content area */
main {
  clear: both;
  margin: 0 auto;
  width: 100%;
  max-width: 800px;
  background-color: var(--aalto-idp-main-bg-color);
  border-radius: var(--aalto-idp-border-radius-large);
  box-shadow: 0px 0px 10px 0px var(--aalto-idp-main-shadow-color);
}

/* Add a border top when 2 sections are together */
main section + section {
  border-top: 1px solid var(--aalto-idp-background-color);
}

/* Header */
header {
  display: block; /* Change to display: none to hide */
  /*! border-bottom: 1px solid var(--aalto-idp-background-color); */
  /*! text-align: center; */
  padding: 0 6%;
}

header .main-logo {
  display: block;
  /*! margin: 0 auto; */
  max-width: 240px;
  padding: 24px 0 0 0;
  margin: 0 0 16px -20px;
}

.service-logo {
  display: block;
  margin: 24px 0;
  max-height: 70px;
}

section {
  padding: 1% 6% 4% 6%;
}

/* Output Messages */
.output-message {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18px;
  line-height: 1.125rem;
  font-style: italic;
  border-radius: var(--aalto-idp-border-radius-medium);
  background-color: var(--aalto-idp-output-message-bg);
  display: block;
  padding: 4%;
  margin-bottom: 20px;
  color: var(--aalto-idp-output-message-color);
}

.output-message:last-child {
  margin-bottom: 0px;
}

/* Output Message Success */
.output-message.output--success {
  background-color: var(--aalto-idp-success-message-bg);
  color: var(--aalto-idp-success-message-color);
}

/* Output Message Error */
.output-message.output--error {
  background-color: var(--aalto-idp-error-message-bg);
  color: var(--aalto-idp-error-message-color);
}

.boxed {
  border-radius: var(--aalto-idp-border-radius-large);
  box-shadow: 2px 0px 10px 0px var(--aalto-idp-boxed-shadow-color);
  background-color: var(--aalto-idp-boxed-bg);
  padding: 2px 16px 12px 16px;
  margin: 0 0 30px 0;
}

.boxed:last-child {
  margin-bottom: 0px;
}

.boxed:first-child {
  margin-top: 0px;
}

/* Footer style */
footer {
  z-index: 1;
  position: relative;
  text-align: center;
  margin-top: 20px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 16px;
  line-height: 1rem;
}

/* Forms styles */
fieldset {
  display: block;
  margin-bottom: 20px;
}

fieldset:last-child {
  margin-bottom: 0px;
}

fieldset .field-validation {
  display: block;
  margin-top: 10px;
}

fieldset .error {
  color: var(--aalto-idp-error-message-color);
}

fieldset legend span {
  display: block;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  height: 0;
}

/* Form labels */
label {
  /*! vertical-align: top; */
  font-size: 14px;
  /*! font-size: 0.875rem; */
  line-height: 18px;
  line-height: 1.125rem;
  font-weight: 700;
  display: block;
  color: var(--aalto-idp-body-text-color);
  margin: 12px 1em 2px 0;
}

label:focus {
  color: var(--aalto-idp-link-color);
}

/* Form input fields */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="telephone"],
input[type="tel"],
input[type="url"],
textarea,
select {
  background-color: var(--aalto-idp-input-bg);
  border: 2px solid var(--aalto-idp-input-border-color);
  transition: all 0.3s ease-in-out;
  color: var(--aalto-idp-body-text-color);
  padding: 8px 12px;
  display: block;
  width: 100%;
  appearance: none;
  border-radius: var(--aalto-idp-border-radius-medium);
}

/* Form input focus */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="telephone"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
textarea:focus,
select:focus,
input[type="text"]:active,
input[type="email"]:active,
input[type="password"]:active,
input[type="telephone"]:active,
input[type="tel"]:active,
input[type="url"]:active,
textarea:active,
select:active {
  border-color: var(--aalto-idp-link-color);
  background-color: var(--aalto-idp-input-bg);
  color: var(--aalto-idp-body-text-color);
}

/* Form input errors */
input[type="text"].error,
input[type="email"].error,
input[type="password"].error,
input[type="telephone"].error,
input[type="tel"].error,
input[type="url"].error,
textarea.error,
select.error {
  border-color: var(--aalto-idp-error-message-color);
}

/* Form input read only / disabled */
input[type="text"]:read-only,
input[type="email"]:read-only,
input[type="password"]:read-only,
input[type="telephone"]:read-only,
input[type="tel"]:read-only,
input[type="url"]:read-only,
textarea:read-only,
select:read-only,
input[type="text"]:disabled,
input[type="email"]:disabled,
input[type="password"]:disabled,
input[type="telephone"]:disabled,
input[type="tel"]:disabled,
input[type="url"]:disabled,
textarea:disabled,
select:disabled {
  background-color: var(--aalto-idp-background-color);
  pointer-events: none;
}

/* Text areas */
textarea {
  height: 124px;
  resize: none;
}


/* Dropdowns */
select {
  appearance: auto;
}

select:read-only {
  background-color: var(--aalto-idp-input-bg);
  pointer-events: unset;
}

select::-ms-expand {
  display: none;
}

/* Checkboxes / Radio buttons */
input[type="checkbox"], input[type="radio"] {
  position: absolute;
  opacity: 0;
  height: 0;
  width: 0;
}

input[type="checkbox"] + label, input[type="radio"] + label {
  display: block;
  color: var(--aalto-idp-checkbox-label-color);
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.5rem;
  cursor: pointer;
  position: relative;
  padding-left: 30px;
  padding-top: 3px;
  margin-bottom: 4px;
  margin-right: 12px;
  display: inline-block;
}

input[type="checkbox"] + label:before, input[type="radio"] + label:before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  height: 20px;
  width: 20px;
  background-color: var(--aalto-idp-checkbox-bg);
  border: 2px solid var(--aalto-idp-checkbox-border-color);
  transition: all 0.2s ease-out;
}

input[type="checkbox"] + label:after, input[type="radio"] + label:after {
  content: "";
  position: absolute;
  transform: rotate(45deg);
  display: none;
}

/*
input[type="checkbox"]:checked + label, input[type="radio"]:checked + label {
  color: var(--aalto-idp-link-color);
}
*/

input[type="checkbox"]:focus + label, input[type="radio"]:focus + label,
input[type="checkbox"]:hover + label, input[type="radio"]:hover + label {
  text-decoration: underline;
}

input[type="checkbox"]:checked + label:before, input[type="radio"]:checked + label:before,
input[type="checkbox"]:focus + label:before, input[type="radio"]:focus + label:before {
  border-color: var(--aalto-idp-checkedbox-border-color);
}

input[type="checkbox"]:checked + label:after, input[type="radio"]:checked + label:after {
  border-color: var(--aalto-idp-checkedbox-border-color);
  display: block;
}

input[type="checkbox"] + label:before {
  border-radius: var(--aalto-idp-border-radius-medium);
}

input[type="checkbox"] + label:after {
  left: 8px;
  top: 5px;
  width: 4px;
  height: 10px;
  border: solid var(--aalto-idp-checkbox-border-color);
  border-width: 0 4px 4px 0;
}

input[type="radio"] + label:before {
  border-radius: 100%;
}

input[type="radio"] + label:after {
  background-color: var(--aalto-idp-link-color);
  height: 12px;
  width: 12px;
  border-radius: 100%;
  left: 6px;
  top: 8px;
}

/* Buttons / Submit buttons */
button, input[type=button],
input[type=submit],
a.button,
.button {
  display: inline-block;
  text-align: center;
  background-color: var(--aalto-idp-button-bg);
  border: var(--aalto-idp-button-border-width) var(--aalto-idp-button-border-style) var(--aalto-idp-button-border-color);
  font-weight: 700;
  padding: 11px 74px;
  cursor: pointer;
  color: var(--aalto-idp-button-color);
  appearance: none;
  border-radius: var(--aalto-idp-border-radius-medium);
  transition: all var(--aalto-idp-button-transition-time) ease-out;
}

/* Button hover & focus states */
button:hover,
input[type=button]:hover,
input[type=submit]:hover,
a.button:hover,
.button:hover,
button:focus,
input[type=button]:focus,
input[type=submit]:focus,
a.button:focus,
.button:focus {
  text-decoration: none !important;
  background: var(--aalto-idp-button-hover-bg);
  color: var(--aalto-idp-button-hover-color) !important;
  border-style: var(--aalto-idp-button-hover-border-style);
  border-color: var(--aalto-idp-button-hover-border-color);
}

/* Secondary button styles */
button.button--secondary,
input[type=button].button--secondary,
input[type=submit].button--secondary,
a.button.button--secondary,
.button.button--secondary {
  background-color: var(--aalto-idp-2nd-bt-bg);
  border-color: var(--aalto-idp-2nd-bt-border-color);
  color: var(--aalto-idp-2nd-bt-color);
}

/* Secondary button hover & focus states */
button.button--secondary:hover,
input[type=button].button--secondary:hover,
input[type=submit].button--secondary:hover,
a.button.button--secondary:hover,
.button.button--secondary:hover,
button.button--secondary:focus,
input[type=button].button--secondary:focus,
input[type=submit].button--secondary:focus,
a.button.button--secondary:focus,
.button.button--secondary:focus {
  background: var(--aalto-idp-2nd-bt-hover-bg);
  color: var(--aalto-idp-2nd-bt-hover-color);
  border-style: var(--aalto-idp-2nd-bt-hover-border-style);
  border-color: var(--aalto-idp-2nd-bt-hover-border-color);
}

/* Secondary button disabled states */
button.button--secondary:disabled,
input[type=button].button--secondary:disabled,
input[type=submit].button--secondary:disabled,
a.button.button--secondary:disabled,
.button.button--secondary:disabled {
  background-color: var(--aalto-idp-2nd-bt-bg);
  color: var(--aalto-idp-disabled-color);
}

/* Full width buttons */
button.button--full,
input[type=button].button--full,
input[type=submit].button--full,
a.button.button--full,
.button.button--full {
  width: 100%;
  padding-left: 30px;
  padding-right: 30px;
}

/* Button disabled states */
button:disabled,
input[type=button]:disabled,
input[type=submit]:disabled,
a.button:disabled,
.button:disabled {
  pointer-events: none;
  background-color: var(--aalto-idp-disabled-color);
  border-color: var(--aalto-idp-disabled-color);
}

/* Placeholder styles */
::-webkit-input-placeholder {
  color: var(--aalto-idp-placeholder-color);
}

:-moz-placeholder {
  color: var(--aalto-idp-placeholder-color);
}

::-moz-placeholder {
  color: var(--aalto-idp-placeholder-color);
}

:-ms-input-placeholder {
  color: var(--aalto-idp-placeholder-color);
}

.grid {
  margin-top: 18px;
}

/* Grid (used for 2 columns) */
.grid:before, .grid:after {
  content: " ";
  display: table;
}

.grid:after {
  clear: both;
}

.grid > .grid-item {
  margin-bottom: 18px;
  min-height: 1px;
  width: 100%;
}

.grid:last-child > .item:last-child {
  margin-bottom: 0px;
}

@media screen and (min-width: 760px) {
  .grid.md-2 > .grid-item {
    float: left;
    width: 48.34436%;
    margin-right: 3.31126%;
  }

  .grid.md-2 > .grid-item:nth-child(n), .grid.md-2 > .grid-item:nth-of-type(n) {
    margin-right: 3.31126%;
    clear: none;
  }

  .grid.md-2 > .grid-item:nth-child(2n) {
    margin-right: 0;
  }

  .grid.md-2 > .grid-item:nth-child(2n+1) {
    clear: both;
  }
}

form { padding: 0 0 0 0; }

/* Aalto additions */
p {
  margin-top: 0.75em;
}
dt {
  margin-top: 0.67em;
}
