
/* =========================================================
   FONTIT
   ========================================================= */

@font-face {
    font-family: 'Greed Standard';
    src:
        url('/datalink_cdn/fonts/GreedStandard-Regular.woff2') format('woff2'),
        url('/datalink_cdn/fonts/GreedStandard-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Greed Standard';
    src:
        url('/datalink_cdn/fonts/GreedStandard-Medium.woff2') format('woff2'),
        url('/datalink_cdn/fonts/GreedStandard-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Greed Standard';
    src:
        url('/datalink_cdn/fonts/GreedStandard-SemiBold.woff2') format('woff2'),
        url('/datalink_cdn/fonts/GreedStandard-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Greed Standard';
    src:
        url('/datalink_cdn/fonts/GreedStandard-Bold.woff2') format('woff2'),
        url('/datalink_cdn/fonts/GreedStandard-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}


/* =========================================================
   DESIGN TOKENIT
   ========================================================= */

:root {
    /* Fontti */
    --dl-font-family:
        'Greed Standard',
        Arial,
        sans-serif;

    --dl-font-regular: 400;
    --dl-font-medium: 500;
    --dl-font-semibold: 600;
    --dl-font-bold: 700;

    /* Typografia */
    --dl-font-size-body: 15px;
    --dl-font-size-ingress: 20px;
    --dl-font-size-field-label: 17px;
    --dl-font-size-field-help: 15px;
    --dl-font-size-input: 17px;
    --dl-font-size-button: 14px;
    --dl-font-size-tooltip: 14px;

    --dl-font-size-h1: 36px;
    --dl-font-size-h2: 24px;
    --dl-font-size-h3: 20px;
    --dl-font-size-h4: 20px;
    --dl-font-size-h5: 20px;
    --dl-font-size-h6: 18px;

    /* Värit */
    --dl-color-text: #413723;
    --dl-color-heading: #413723;
    --dl-color-background: #f5f3f0;
    --dl-color-surface: #ffffff;
    --dl-color-border: #917d67;
    --dl-color-border-light: #cfc4b7;
    --dl-color-hover: #ece6e0;
    --dl-color-muted: #8b8175;
    --dl-color-placeholder: #6f6254;
    --dl-color-info-background: #eed4e8;
    --dl-color-error: #91468f;

    /* Välit */
    --dl-space-xs: 4px;
    --dl-space-sm: 8px;
    --dl-space-md: 16px;
    --dl-space-lg: 24px;
    --dl-space-xl: 32px;
    --dl-space-xxl: 48px;

    /* Kulmat */
    --dl-radius-sm: 4px;
    --dl-radius-md: 8px;
    --dl-radius-lg: 12px;
    --dl-radius-round: 999px;

    /* Sivurakenne */
    --dl-content-width: 1120px;
    --dl-page-padding: 32px;

    /* Käytettävyys */
    --dl-transition: 180ms ease;
    --dl-focus-outline:
        2px solid var(--dl-color-text);
}


/* =========================================================
   RESET JA PERUSRAKENNE
   ========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    margin: 0;

    color: var(--dl-color-text);
    background-color: var(--dl-color-background);

    font-family: var(--dl-font-family);
    font-size: var(--dl-font-size-body);
    font-weight: var(--dl-font-regular);
    line-height: 1.5;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

form {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

strong,
b {
    font-weight: var(--dl-font-semibold);
}

[hidden] {
    display: none !important;
}

::selection {
    color: var(--dl-color-surface);
    background-color: var(--dl-color-text);
}

a {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

a:hover {
    text-decoration: none;
}


/* =========================================================
   TYPOGRAFIA
   ========================================================= */

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;

    color: var(--dl-color-heading);

    font-family: var(--dl-font-family);
    line-height: 1.15;

    letter-spacing: normal;
    text-transform: none;
}

h1 {
    margin-bottom: var(--dl-space-md);
    font-size: var(--dl-font-size-h1);
    font-weight: var(--dl-font-bold);
}

h2 {
    margin-bottom: 20px;
    font-size: var(--dl-font-size-h2);
    font-weight: var(--dl-font-bold);
}

h3 {
    margin-bottom: 20px;
    font-size: var(--dl-font-size-h3);
    font-weight: var(--dl-font-semibold);
}

h4 {
    margin-bottom: var(--dl-space-md);
    font-size: var(--dl-font-size-h4);
    font-weight: var(--dl-font-bold);
}

h5 {
    margin-bottom: var(--dl-space-md);
    font-size: var(--dl-font-size-h5);
    font-weight: var(--dl-font-regular);
}

h6 {
    margin-bottom: 12px;
    font-size: var(--dl-font-size-h6);
    font-weight: var(--dl-font-semibold);
} 


p {
    margin-top: 0;
    margin-bottom: 0.65em;
}

p:last-child {
    margin-bottom: 0;
}



.dl-ingress {
    margin: 0 0 var(--dl-space-lg);
    font-size: var(--dl-font-size-ingress);
    font-weight: var(--dl-font-regular);
    line-height: 1.5;
}









hr {
    height: 0;
    margin: 40px 0;

    background: none;
    border: 0;
    border-top:
        1px solid var(--dl-color-border-light);
}

@media (max-width: 650px) {
    h1 {
        font-size: 38px;
    }

    h2,
    h3 {
        font-size: 30px;
    }
}

@media (max-width: 420px) {
    h1 {
        font-size: 34px;
    }

    h2,
    h3 {
        font-size: 28px;
    }
}


/* =========================================================
   PAINIKKEET
   ========================================================= */

.dl-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dl-space-sm);

    min-height: 38px;
    padding: 7px 17px;

    color: var(--dl-color-text);
    background-color: transparent;

    border: 1px solid var(--dl-color-text);
    border-radius: var(--dl-radius-round);

    font-family: var(--dl-font-family);
    font-size: var(--dl-font-size-button);
    font-weight: var(--dl-font-medium);
    line-height: 1;

    text-align: center;
    text-decoration: none;
    white-space: nowrap;

    cursor: pointer;

    transition:
        color var(--dl-transition),
        background-color var(--dl-transition),
        border-color var(--dl-transition);
}

.dl-button:hover {
    color: var(--dl-color-surface);
    background-color: var(--dl-color-text);
    border-color: var(--dl-color-text);

    text-decoration: none;
}

.dl-button:focus-visible {
    outline: var(--dl-focus-outline);
    outline-offset: 3px;
}

.dl-button[disabled],
.dl-button[aria-disabled='true'] {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}


/* =========================================================
   PAINIKEVARIANTIT
   ========================================================= */

/* Tumma ensisijainen painike */

.dl-button--primary {
    color: var(--dl-color-surface);
    background-color: var(--dl-color-text);
}

.dl-button--primary:hover {
    color: var(--dl-color-text);
    background-color: transparent;
}


/* Painike ilman reunusta */

.dl-button--text {
    min-height: auto;
    padding-right: 0;
    padding-left: 0;

    background-color: transparent;
    border-color: transparent;
    border-radius: 0;
}

.dl-button--text:hover {
    color: var(--dl-color-text);
    background-color: transparent;

    text-decoration: underline;
}


/* Kuvan mukainen seuraava-painike on normaalisti tumma */

.dl-button--next {
    color: var(--dl-color-surface);
    background-color: var(--dl-color-text);
}

.dl-button--next:hover {
    color: var(--dl-color-text);
    background-color: transparent;
}


/* Poistopainike käyttää samaa neutraalia ulkoasua */

.dl-button--delete {
    color: var(--dl-color-text);
}


/* =========================================================
   PAINIKEIKONIT
   ========================================================= */

.dl-button-icon {
    position: relative;

    display: inline-block;
    flex: 0 0 auto;

    color: currentColor;
}


/* Nuoli vasemmalle */

.dl-button-icon--back {
    width: 20px;
    height: 14px;
}

.dl-button-icon--back::before {
    content: '';

    position: absolute;
    top: 50%;
    left: 1px;

    width: 18px;

    border-top: 1.5px solid currentColor;

    transform: translateY(-50%);
}

.dl-button-icon--back::after {
    content: '';

    position: absolute;
    top: 50%;
    left: 1px;

    width: 9px;
    height: 9px;

    border-bottom: 1.5px solid currentColor;
    border-left: 1.5px solid currentColor;

    transform:
        translateY(-50%)
        rotate(45deg);
}


/* Nuoli oikealle */

.dl-button-icon--next {
    width: 20px;
    height: 14px;
}

.dl-button-icon--next::before {
    content: '';

    position: absolute;
    top: 50%;
    right: 1px;

    width: 18px;

    border-top: 1.5px solid currentColor;

    transform: translateY(-50%);
}

.dl-button-icon--next::after {
    content: '';

    position: absolute;
    top: 50%;
    right: 1px;

    width: 9px;
    height: 9px;

    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;

    transform:
        translateY(-50%)
        rotate(45deg);
}


/* Lataus */

.dl-button-icon--download {
    width: 17px;
    height: 18px;

    border-bottom: 1.5px solid currentColor;
}

.dl-button-icon--download::before {
    content: '';

    position: absolute;
    top: 0;
    left: 50%;

    width: 1.5px;
    height: 11px;

    background-color: currentColor;

    transform: translateX(-50%);
}

.dl-button-icon--download::after {
    content: '';

    position: absolute;
    top: 6px;
    left: 50%;

    width: 7px;
    height: 7px;

    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;

    transform:
        translateX(-50%)
        rotate(45deg);
}


/* Roskakori */

.dl-button-icon--delete {
    width: 15px;
    height: 16px;

    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    border-left: 1.5px solid currentColor;
}

.dl-button-icon--delete::before {
    content: '';

    position: absolute;
    top: -4px;
    left: -2px;

    width: 17px;

    border-top: 1.5px solid currentColor;
}

.dl-button-icon--delete::after {
    content: '';

    position: absolute;
    top: -7px;
    left: 4px;

    width: 6px;
    height: 3px;

    border: 1.5px solid currentColor;
    border-bottom: 0;
}


/* =========================================================
   MOBIILI
   ========================================================= */

@media (max-width: 600px) {
    .dl-button--mobile-full {
        width: 100%;
    }
}


/* =========================================================
   LOMAKEKENTÄT
   ========================================================= */


/* ---------------------------------------------------------
   Kentän rakenne
   --------------------------------------------------------- */

.dl-field {
    width: 100%;
    min-width: 0;
}

.dl-field-label {
    display: block;
    margin: 0 0 6px;

    color: var(--dl-color-heading);

    font-size: var(--dl-font-size-field-label);
    font-weight: var(--dl-font-semibold);
    line-height: 1.3;
}

.dl-field-help {
    display: block;
    margin: 0 0 7px;

    color: var(--dl-color-text);

    font-size: var(--dl-font-size-field-help);
    font-weight: var(--dl-font-regular);
    line-height: 1.35;
}

.dl-field-error {
    display: block;
    margin-top: var(--dl-space-xs);

    color: var(--dl-color-error);

    font-size: var(--dl-font-size-field-label);
    font-weight: var(--dl-font-medium);
    line-height: 1.35;
}

.dl-required {
    margin-left: var(--dl-space-xs);

    color: var(--dl-color-error);

    font-size: 16px;
    font-weight: var(--dl-font-bold);
    line-height: 1;
}


/* ---------------------------------------------------------
   Yhteinen kontrollipohja
   --------------------------------------------------------- */

.dl-input,
.dl-select,
.dl-textarea {
    display: block;

    width: 100%;
    max-width: 100%;
    min-width: 0;

  box-sizing: border-box;


    color: var(--dl-color-text);
    background-color: var(--dl-color-surface);

    border: 1px solid var(--dl-color-border);
    border-radius: var(--dl-radius-sm);

    font-family: var(--dl-font-family);
    font-size: var(--dl-font-size-input);
    font-weight: var(--dl-font-regular);
    line-height: 1.4;

    transition:
        border-color var(--dl-transition),
        box-shadow var(--dl-transition);
}


/* ---------------------------------------------------------
   Input
   --------------------------------------------------------- */

.dl-input {
    min-height: 44px;
    padding: 9px 12px;
}


/* ---------------------------------------------------------
   Select
   --------------------------------------------------------- */

.dl-select {
    height: 44px;
    min-height: 44px;
    padding: 0 42px 0 12px;
    box-sizing: border-box;

    background-color: var(--dl-color-hover);

    line-height: normal;
    cursor: pointer;
}


/* ---------------------------------------------------------
   Textarea
   --------------------------------------------------------- */

.dl-textarea {
    min-height: 150px;
    padding: 12px;

    resize: vertical;
}


/* ---------------------------------------------------------
   Checkbox
   --------------------------------------------------------- */

.dl-checkbox {
    appearance: none;
    -webkit-appearance: none;

    width: 16px;
    height: 16px;
    margin: 0;

    background-color: #e8e4dc;
    border: 1px solid #817969;
    border-radius: 2px;

    cursor: pointer;

    background-repeat: no-repeat;
    background-position: center;
    background-size: 11px 11px;
}

.dl-checkbox:checked {
    background-color: #e8e4dc;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5L6.5 12L13 4.5' fill='none' stroke='%23413723' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.dl-checkbox:focus-visible {
    outline: var(--dl-focus-outline);
    outline-offset: 2px;
}

.dl-checkbox:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ---------------------------------------------------------
   Radio
   --------------------------------------------------------- */

/* ---------------------------------------------------------
   Radio
   --------------------------------------------------------- */

input[type="radio"].dl-radio {
    appearance: none;
    -webkit-appearance: none;

    width: 16px;
    min-width: 16px;
    max-width: 16px;
    height: 16px;
    min-height: 16px;
    max-height: 16px;

    margin: 2px 0 0 0;
    padding: 0;

    background-color: #e8e4dc;
    border: 1px solid #817969;
    border-radius: 50%;

    cursor: pointer;
    flex: 0 0 16px;
    box-sizing: border-box;
}

input[type="radio"].dl-radio:checked {
    background-color: #e8e4dc;

    background-image: radial-gradient(
        circle at center,
        #413723 0,
        #413723 4px,
        transparent 4.5px
    );

    background-repeat: no-repeat;
    background-position: center;
}

input[type="radio"].dl-radio:focus-visible {
    outline: var(--dl-focus-outline);
    outline-offset: 2px;
}

input[type="radio"].dl-radio:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

input[type="radio"].dl-radio + label {
    cursor: pointer;
}

input[type="radio"].dl-radio:disabled + label {
    cursor: default;
}

/* ---------------------------------------------------------
   Input group
   --------------------------------------------------------- */

.dl-input-group {
    display: flex;
    align-items: stretch;

    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.dl-input-group > .dl-input {
    flex: 1 1 auto;

    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.dl-input-addon {
    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    min-width: 48px;
    min-height: 44px;
    padding: 9px 12px;

    color: var(--dl-color-text);
    background-color: var(--dl-color-background);

    border: 1px solid var(--dl-color-border);
    border-left: 0;

    border-radius:
        0
        var(--dl-radius-sm)
        var(--dl-radius-sm)
        0;

    font-size: var(--dl-font-size-field-label);
    font-weight: var(--dl-font-regular);
    line-height: 1.4;
}


/* ---------------------------------------------------------
   Focus
   --------------------------------------------------------- */

.dl-input:focus,
.dl-select:focus,
.dl-textarea:focus {
    border-color: var(--dl-color-text);

    outline: var(--dl-focus-outline);
    outline-offset: 2px;

    box-shadow: none;
}


/* ---------------------------------------------------------
   Virhetila
   --------------------------------------------------------- */

.dl-input[aria-invalid='true'],
.dl-select[aria-invalid='true'],
.dl-textarea[aria-invalid='true'],
.dl-field--error .dl-input,
.dl-field--error .dl-select,
.dl-field--error .dl-textarea {
    border-color: var(--dl-color-error);
}


/* ---------------------------------------------------------
   Placeholder
   --------------------------------------------------------- */

.dl-input::placeholder,
.dl-textarea::placeholder {
    color: var(--dl-color-placeholder);
    opacity: 1;
}


/* ---------------------------------------------------------
   Disabled ja readonly
   --------------------------------------------------------- */

.dl-input:disabled,
.dl-select:disabled,
.dl-textarea:disabled,
.dl-checkbox:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.dl-input[readonly],
.dl-textarea[readonly] {
     background-color: var(--dl-color-surface);
}


/* ---------------------------------------------------------
   Mobiili
   --------------------------------------------------------- */

@media (max-width: 420px) {
    .dl-input,
    .dl-select {
        min-height: 42px;
    }

    .dl-textarea {
        min-height: 130px;
    }
}

/* ---------------------------------------------------------
Autocomplete
--------------------------------------------------------- */

.dl-autocomplete {
    position: relative;
}

.dl-autocomplete .autocomplete-items {
    position: absolute;
    z-index: 1000;

    left: 0;
    right: 0;
    top: calc(100% + 4px);

    max-height: 260px;
    overflow-y: auto;

    background-color: var(--dl-color-surface);

    border: 1px solid var(--dl-color-border);
    border-radius: var(--dl-radius-sm);

    box-shadow: 0 6px 18px rgba(0,0,0,.12);

    padding: 4px 0;

    box-sizing: border-box;
}

.dl-autocomplete .autocomplete-item {
    display: block;

    width: 100%;

    padding: 10px 12px;

    color: var(--dl-color-text);
    background: transparent;

    border: 0;

    font-family: var(--dl-font-family);
    font-size: var(--dl-font-size-input);
    font-weight: var(--dl-font-regular);

    text-align: left;

    cursor: pointer;
}

.dl-autocomplete .autocomplete-item:hover,
.dl-autocomplete .autocomplete-item:focus,
.dl-autocomplete .autocomplete-item.autocomplete-active {
    background-color: var(--dl-color-hover);

    outline: none;
}


/* ---------------------------------------------------------
   Radiokortit
   --------------------------------------------------------- */

.dl-radio-card-group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));

    gap: var(--dl-space-sm);

    width: 100%;
    min-width: 0;
}

.dl-radio-card {
    position: relative;

    display: block;

    min-width: 0;
    min-height: 74px;

    margin: 0;
    padding: 14px 16px;

    box-sizing: border-box;

    color: var(--dl-color-text);
    background-color: var(--dl-color-surface);

    border: 1px solid var(--dl-color-border);
    border-radius: var(--dl-radius-sm);

    cursor: pointer;

    transition:
        background-color var(--dl-transition),
        border-color var(--dl-transition),
        box-shadow var(--dl-transition);
}

.dl-radio-card:hover {
    border-color: var(--dl-color-text);
}

.dl-radio-card-content {
    display: flex;
    flex-direction: column;

    min-width: 0;

    gap: var(--dl-space-xs);
}

.dl-radio-card-title {
    color: var(--dl-color-heading);

    font-size: var(--dl-font-size-field-label);
    font-weight: var(--dl-font-semibold);
    line-height: 1.3;
}

.dl-radio-card-description,
.dl-radio-card-subtitle {
    color: var(--dl-color-text);

    font-size: var(--dl-font-size-field-help);
    font-weight: var(--dl-font-regular);
    line-height: 1.35;
}


/* Matala kortti ilman ohjetekstiä */

.dl-radio-card--compact {
    min-height: 48px;
    padding: 8px 12px;
}

.dl-radio-card--compact .dl-radio-card-content {
    justify-content: center;

    min-height: 30px;

    gap: 0;
}


/* Näkyvä radiobutton */

.dl-radio-card--radio-visible {
    display: flex;
    align-items: center;

    gap: var(--dl-space-sm);
}

.dl-radio-card--radio-visible input.dl-radio.dl-radio-card-input {
    position: static;

    flex: 0 0 16px;

    margin: 0;

    overflow: visible;

    clip-path: none;
    opacity: 1;
}

.dl-radio-card--radio-visible .dl-radio-card-content {
    flex: 0 1 auto;

    width: auto;
}


/* Piilotettu radiobutton */

.dl-radio-card--radio-hidden input.dl-radio.dl-radio-card-input {
    position: absolute;

    width: 1px;
    min-width: 1px;
    max-width: 1px;
    height: 1px;
    min-height: 1px;
    max-height: 1px;

    margin: 0;
    padding: 0;

    overflow: hidden;

    border: 0;

    clip-path: inset(50%);
    white-space: nowrap;
}


/* Sisällön tasaus */

.dl-radio-card-group--align-left .dl-radio-card-content {
    align-items: flex-start;
    text-align: left;
}

.dl-radio-card-group--align-center .dl-radio-card-content {
    align-items: center;
    text-align: center;
}

.dl-radio-card-group--align-right .dl-radio-card-content {
    align-items: flex-end;
    text-align: right;
}

.dl-radio-card-group--align-left .dl-radio-card--radio-visible {
    justify-content: flex-start;
}

.dl-radio-card-group--align-center .dl-radio-card--radio-visible {
    justify-content: center;
}

.dl-radio-card-group--align-right .dl-radio-card--radio-visible {
    justify-content: flex-end;
}


/* Valittu kortti */

.dl-radio-card:has(.dl-radio-card-input:checked) {
    background-color: var(--dl-color-hover);
    border-color: var(--dl-color-text);

    box-shadow: inset 0 0 0 1px var(--dl-color-text);
}


/* Näppäimistöfokus */

.dl-radio-card:has(.dl-radio-card-input:focus-visible) {
    outline: var(--dl-focus-outline);
    outline-offset: 2px;
}


/* Pois käytöstä */

.dl-radio-card--disabled {
    opacity: 0.6;
    cursor: not-allowed;
}


/* Sisällön mukaan horisontaalisesti tiivistetty */

.dl-radio-card-group--compact-horizontal {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: flex-start;
}

.dl-radio-card-group--compact-horizontal .dl-radio-card {
    flex: 0 1 auto;

    width: auto;
    min-width: 110px;
    max-width: 100%;
}


/* Mobiili */

@media (max-width: 760px) {
    .dl-radio-card-group,
    .dl-radio-card-group--compact-horizontal {
        display: grid;
        grid-template-columns: 1fr;
    }

    .dl-radio-card-group--compact-horizontal .dl-radio-card {
        width: 100%;
        min-width: 0;
    }
}




/* =========================================================
   DL LAYOUT GRID
   12-sarakkeinen Flexbox-grid sekä compact-kenttägrid
   ========================================================= */


/* ---------------------------------------------------------
   Tavallinen 12-sarakkeinen Flexbox-rivi
   --------------------------------------------------------- */

.dl-row {
    display: flex;
    flex-wrap: wrap;

    width: calc(100% + 16px);
    margin: 0 -8px 16px;
}


/* Vain rivin suorat dl-col-lapset */

.dl-row > [class^='dl-col-'],
.dl-row > [class*=' dl-col-'] {
    position: relative;

    min-width: 0;

    padding-right: 8px;
    padding-left: 8px;
}

.dl-row.dl-flow > [class^='dl-col-'],
.dl-row.dl-flow > [class*=' dl-col-'] {
    margin-bottom: 16px;
}

/* ---------------------------------------------------------
   12 sarakkeen leveydet
   --------------------------------------------------------- */

.dl-row > .dl-col-1  { flex: 0 0 8.333333%;  max-width: 8.333333%; }
.dl-row > .dl-col-2  { flex: 0 0 16.666667%; max-width: 16.666667%; }
.dl-row > .dl-col-3  { flex: 0 0 25%;        max-width: 25%; }
.dl-row > .dl-col-4  { flex: 0 0 33.333333%; max-width: 33.333333%; }
.dl-row > .dl-col-5  { flex: 0 0 41.666667%; max-width: 41.666667%; }
.dl-row > .dl-col-6  { flex: 0 0 50%;        max-width: 50%; }
.dl-row > .dl-col-7  { flex: 0 0 58.333333%; max-width: 58.333333%; }
.dl-row > .dl-col-8  { flex: 0 0 66.666667%; max-width: 66.666667%; }
.dl-row > .dl-col-9  { flex: 0 0 75%;        max-width: 75%; }
.dl-row > .dl-col-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
.dl-row > .dl-col-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
.dl-row > .dl-col-12 { flex: 0 0 100%;       max-width: 100%; }


/* ---------------------------------------------------------
   Offsetit
   --------------------------------------------------------- */

.dl-row > .dl-offset-1  { margin-left: 8.333333%; }
.dl-row > .dl-offset-2  { margin-left: 16.666667%; }
.dl-row > .dl-offset-3  { margin-left: 25%; }
.dl-row > .dl-offset-4  { margin-left: 33.333333%; }
.dl-row > .dl-offset-5  { margin-left: 41.666667%; }
.dl-row > .dl-offset-6  { margin-left: 50%; }
.dl-row > .dl-offset-7  { margin-left: 58.333333%; }
.dl-row > .dl-offset-8  { margin-left: 66.666667%; }
.dl-row > .dl-offset-9  { margin-left: 75%; }
.dl-row > .dl-offset-10 { margin-left: 83.333333%; }
.dl-row > .dl-offset-11 { margin-left: 91.666667%; }


/* ---------------------------------------------------------
   Compact-kenttägrid

   Suorat lapset muodostavat kaksi kenttäsolua.
   Solun sisällä voi olla tavallinen dl-row + dl-col-12.
   --------------------------------------------------------- */

.dl-row.compact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    column-gap: 28px;
    row-gap: 18px;

    width: 100%;
    margin: 0 0 18px;
}

.dl-row.compact:last-child {
    margin-bottom: 0;
}

.dl-row.compact > * {
    min-width: 0;
}


/* Compact-gridin suorille lapsille ei Flexbox-sarakemitoitusta */

.dl-row.compact > [class^='dl-col-'],
.dl-row.compact > [class*=' dl-col-'] {
    width: auto;
    max-width: none;

    padding: 0;
}


/* ---------------------------------------------------------
   Mobiili
   --------------------------------------------------------- */

@media (max-width: 700px) {

    .dl-row {
        width: 100%;

        margin-right: 0;
        margin-left: 0;
    }

    .dl-row > [class^='dl-col-'],
    .dl-row > [class*=' dl-col-'] {
        flex: 0 0 100%;

        width: 100%;
        max-width: 100%;

        margin-left: 0;
        margin-bottom: 16px;

        padding-right: 0;
        padding-left: 0;
    }

    .dl-row > :last-child {
        margin-bottom: 0;
    }
}


/* =========================================================
   MASTERIN SISÄLTÖLEVEYS
   ========================================================= */

.skr-master-container {
    width: 100%;
    max-width: var(--dl-content-width);

    margin-right: auto;
    margin-left: auto;

    padding-right: var(--dl-page-padding);
    padding-left: var(--dl-page-padding);
}

@media (max-width: 1000px) {
    :root {
        --dl-page-padding: 24px;
    }
}

@media (max-width: 650px) {
    :root {
        --dl-page-padding: 16px;
    }
}


/* =========================================================
   MASTER HEADER
   ========================================================= */

.skr-master-header {
    flex: 0 0 auto;

    background-color: var(--dl-color-surface);
    border-bottom:
        1px solid var(--dl-color-border-light);
}

.skr-master-header__inner {
    display: grid;
    grid-template-columns:
        minmax(180px, 1fr)
        auto
        minmax(330px, 1fr);

    align-items: center;
    gap: var(--dl-space-xl);

    padding-top: 12px;
    padding-bottom: 12px;
}

.skr-master-header__logo {
    display: flex;
    align-items: center;
    justify-content: flex-start;

    min-width: 0;
}

.skr-master-header__logo img,
.skr-logo-image {
    width: auto;
    max-width: 190px;
    max-height: 64px;

    object-fit: contain;
}

.skr-master-header__title {
    min-width: 0;

    text-align: center;
    white-space: nowrap;
}

.skr-master-header__title-main {
    display: block;

    color: var(--dl-color-heading);

    font-size: 22px;
    font-weight: var(--dl-font-semibold);
    line-height: 1.1;
}

.skr-master-header__title-sub{
    display:inline-block;
    margin-top:5px;
    padding:5px 10px;

    font-size:14px;
    font-weight:700;
    line-height:1.25;
}

.skr-master-header__title-sub:empty {
    display: none;
}

.skr-master-header__menu,
.skr-master-header__actions,
.skr-master-header__extra-menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.skr-master-header__menu {
    min-width: 0;
}

.skr-master-header__actions {
    gap: var(--dl-space-lg);
}

.skr-master-header__extra-menu {
    gap: var(--dl-space-md);
}

.skr-master-header__extra-menu:empty {
    display: none;
}

.skr-master-header__extra-menu a {
    font-size: var(--dl-font-size-button);
    font-weight: var(--dl-font-medium);

    text-decoration: none;
    white-space: nowrap;
}

.skr-master-header__extra-menu a:hover {
    text-decoration: underline;
}

/* Ohjeet-painike */


.skr-master-header__help {
    min-width: 88px;
}



/* Dropdownit */

.skr-master-header-dropdown {
    position: relative;

    display: flex;
    align-items: center;
}

.skr-master-header-dropdown__toggle {
    display: inline-grid;
    grid-template-columns: 28px auto 12px;
    grid-template-rows: auto auto;

    align-items: center;
    column-gap: 5px;

    margin: 0;
    padding: 0;

    color: var(--dl-color-text);
    background: transparent;
    border: 0;

    text-align: left;
    text-decoration: none;

    cursor: pointer;
}

.skr-master-header-icon {
    position: relative;

    grid-column: 1;
    grid-row: 1 / 3;

    display: block;

    width: 26px;
    height: 26px;
}

.skr-master-header-icon--profile,
.skr-master-header-icon--language {
    border: 2px solid var(--dl-color-text);
    border-radius: 50%;
}

/* Profiili-ikoni */

.skr-master-header-icon--profile::before {
    content: '';

    position: absolute;
    top: 4px;
    left: 50%;

    width: 7px;
    height: 7px;

    border: 1.5px solid var(--dl-color-text);
    border-radius: 50%;

    transform: translateX(-50%);
}

.skr-master-header-icon--profile::after {
    content: '';

    position: absolute;
    bottom: 3px;
    left: 50%;

    width: 14px;
    height: 7px;

    border: 1.5px solid var(--dl-color-text);
    border-radius: 10px 10px 5px 5px;

    transform: translateX(-50%);
}

/* Kieli-ikoni */

.skr-master-header-icon--language{
    border:0;
    border-radius:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23413723' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5c3 2.6 4.5 5.8 4.5 9.5S15 18.9 12 21.5C9 18.9 7.5 15.7 7.5 12S9 5.1 12 2.5M4.2 7.5h15.6M4.2 16.5h15.6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:center;
    background-size:100%;
}

.skr-master-header-icon--language::before,
.skr-master-header-icon--language::after{
    content:none;
}

.skr-master-header__profile-label {
    grid-column: 2;
    grid-row: 2;

    max-width: 120px;
    margin-top: 2px;

    overflow: hidden;

    font-size: 10px;
    font-weight: var(--dl-font-medium);
    line-height: 1;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.skr-master-header__language-code {
    grid-column: 2;
    grid-row: 1 / 3;

    font-size: var(--dl-font-size-field-label);
    font-weight: var(--dl-font-medium);
    line-height: 1;
}

.skr-master-header-dropdown__chevron {
    grid-column: 3;
    grid-row: 1 / 3;

    width: 8px;
    height: 8px;

    border-right: 2px solid var(--dl-color-text);
    border-bottom: 2px solid var(--dl-color-text);

    transform:
        translateY(-2px)
        rotate(45deg);

    transition:
        transform var(--dl-transition);
}

.skr-master-header-dropdown__toggle[aria-expanded='true']
.skr-master-header-dropdown__chevron {
    transform:
        translateY(2px)
        rotate(225deg);
}

.skr-master-header-dropdown__menu {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 1000;

    min-width: 180px;
    padding: var(--dl-space-sm) 0;

    color: var(--dl-color-text);
    background-color: var(--dl-color-surface);

    border: 1px solid var(--dl-color-border);
    border-radius: 2px;

    box-shadow:
        0 8px 24px rgba(65, 55, 35, 0.14);
}

.skr-master-header-dropdown__menu::before {
    content: '';

    position: absolute;
    top: -7px;
    right: 18px;

    width: 12px;
    height: 12px;

    background-color: var(--dl-color-surface);

    border-top: 1px solid var(--dl-color-border);
    border-left: 1px solid var(--dl-color-border);

    transform: rotate(45deg);
}

.skr-master-header-dropdown__item {
    position: relative;
    z-index: 1;

    display: block;
    width: 100%;

    padding: 10px var(--dl-space-md);

    color: var(--dl-color-text);
    background: transparent;
    border: 0;

    font-size: var(--dl-font-size-field-label);
    font-weight: var(--dl-font-regular);
    line-height: 1.3;

    text-align: left;
    text-decoration: none;

    cursor: pointer;
}

.skr-master-header-dropdown__item:hover,
.skr-master-header-dropdown__item:focus-visible {
    color: var(--dl-color-text);
    background-color: var(--dl-color-hover);

    text-decoration: none;
    outline: none;
}

.skr-master-header-dropdown__menu--language {
    min-width: 150px;
}

@media (max-width: 1000px) {
    .skr-master-header__inner {
        grid-template-columns: 1fr auto;
        gap: 20px;
    }

    .skr-master-header__logo {
        grid-column: 1;
        grid-row: 1;
    }

    .skr-master-header__title {
        grid-column: 1 / -1;
        grid-row: 2;

        text-align: left;
    }

    .skr-master-header__menu {
        grid-column: 2;
        grid-row: 1;
    }

    .skr-master-header__actions {
        gap: 18px;
    }

    .skr-master-header__extra-menu {
        display: none;
    }
}

@media (max-width: 650px) {
    .skr-master-header__inner {
        display: flex;
        align-items: stretch;
        flex-direction: column;
        gap: 18px;

        padding-top: 16px;
        padding-bottom: 16px;
    }

    .skr-master-header__logo {
        justify-content: center;
    }

    .skr-master-header__logo img,
    .skr-logo-image {
        max-width: 170px;
        max-height: 58px;
    }

    .skr-master-header__title {
        order: 2;

        text-align: center;
        white-space: normal;
    }

    .skr-master-header__menu {
        order: 3;
        justify-content: center;
    }

    .skr-master-header__actions {
        width: 100%;

        justify-content: center;
        flex-wrap: wrap;

        gap: 16px 22px;
    }

    .skr-master-header-dropdown__menu {
        right: 50%;

        transform: translateX(50%);
    }

    .skr-master-header-dropdown__menu::before {
        right: 50%;
        margin-right: -6px;
    }
}

@media (max-width: 420px) {
    .skr-master-header__help {
        width: 100%;
        max-width: 160px;
    }
}


/* =========================================================
   MASTER MAIN
   ========================================================= */

.skr-master-main {
    flex: 1 0 auto;

    width: 100%;
    padding-top: 30px;
    padding-bottom: 50px;

    background-color: var(--dl-color-background);
}

.skr-master-main__inner,
.skr-master-content {
    width: 100%;
}

.skr-master-page--narrow .skr-master-main__inner {
    max-width: 960px;
}

.skr-master-content {
    min-width: 0;
}

.skr-master-status {
    display: block;
    margin-bottom: 12px;

    color: var(--dl-color-error);

    font-size: var(--dl-font-size-field-label);
    font-weight: var(--dl-font-medium);
}

.skr-master-status:empty {
    display: none;
}

.skr-master-bottom-navigation {
    margin-top: 36px;

    text-align: right;
}

@media (max-width: 650px) {
    .skr-master-main {
        padding-top: 22px;
        padding-bottom: 36px;
    }

    .skr-master-bottom-navigation {
        text-align: left;
    }
}


/* =========================================================
   MASTER FOOTER
   ========================================================= */

.skr-master-footer {
    flex: 0 0 auto;

    display: flex;
    align-items: center;

    min-height: 108px;

    background-color: #bca68e;
}

.skr-master-footer__inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 24px;

    padding-top: 28px;
    padding-bottom: 28px;
}

.skr-master-footer__provider {
    flex: 0 0 auto;
}

.skr-master-footer__links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 24px;

    padding-left: 24px;

    border-left: 1px solid rgba(33, 28, 22, 0.3);
}

.skr-master-footer a {
    color: #211c16;

    font-size: 13px;
    font-weight: var(--dl-font-medium);

    text-decoration: none;
}

.skr-master-footer a:hover {
    text-decoration: underline;
}

.skr-master-scroll-to-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 100;

    display: none;

    min-width: 48px;
    min-height: 48px;
    padding-right: 12px;
    padding-left: 12px;
}

@media (max-width: 650px) {
    .skr-master-footer {
        min-height: 88px;
    }

    .skr-master-footer__inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;

        padding-right: 80px;
    }

    .skr-master-footer__links {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;

        padding-left: 0;

        border-left: 0;
    }

    .skr-master-scroll-to-top {
        right: 14px;
        bottom: 14px;
    }
}


/* =========================================================
   SAAVUTETTAVUUS
   ========================================================= */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: var(--dl-focus-outline);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;

        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}


/* =========================================================
   TULOSTUS
   ========================================================= */

@media print {
    body {
        display: none;
        visibility: hidden;
    }
}

