/*
 * Praktikale.ee lehe stiilid.
 * Mõõdud on võetud monday.com lehelt: Poppins 400 pealkirjad negatiivse
 * tähevahega, 160px raadiusega nupud ilma varjuta, halli taustaga
 * sektsioonid ja tootevaated, mis räägivad ise.
 */

:root {
    --roheline: #00b779;
    --roheline-hover: #00a36c;
    --roheline-tume: #00855a;
    --roheline-tint: #d3f5e6;

    --must: #0f1115;
    --tekst: #1f2128;
    --hall: #535768;
    --hall-hele: #8a8d9c;
    --joon: #e6e7ea;
    --joon-tugev: #d0d4e4;
    --taust: #f3f4f5;
    --valge: #ffffff;

    /* Tahvli olekuvärvid */
    --oranz: #fdab3d;
    --sinine: #579bfc;
    --lilla: #a25ddc;
    --staatus-roheline: #00c875;
    --tyhi: #c4c4c4;

    --font: "Poppins", Arial, sans-serif;
    --laius: 1280px;
    --sektsioon: clamp(80px, 11vw, 144px);
    --vari: 0 2px 48px rgba(205, 208, 223, .55);
    --kiirendus: cubic-bezier(.2, .8, .2, 1);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.6;
    color: var(--tekst);
    background: var(--valge);
    -webkit-font-smoothing: antialiased;
}

img {
    display: block;
    max-width: 100%;
}

h1,
h2,
h3 {
    margin: 0;
    font-weight: 400;
    color: var(--must);
    text-wrap: balance;
}

p {
    margin: 0;
}

a {
    color: inherit;
}

:focus-visible {
    outline: 2px solid var(--roheline);
    outline-offset: 3px;
}

.konteiner {
    width: 100%;
    max-width: var(--laius);
    margin-inline: auto;
    padding-inline: clamp(20px, 4vw, 40px);
}

.konteiner.kitsas {
    max-width: 840px;
}

.vahele {
    position: absolute;
    left: 16px;
    top: -60px;
    z-index: 100;
    padding: 10px 16px;
    border-radius: 160px;
    background: var(--must);
    color: var(--valge);
    text-decoration: none;
}

.vahele:focus {
    top: 12px;
}

/* ---------- Nupud ---------- */

.nupp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 20px;
    border: 1px solid transparent;
    border-radius: 160px;
    font: 400 15px/1.25 var(--font);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.nupp-vaike {
    padding: 10px 16px;
    font-size: 14px;
}

.nupp-suur {
    padding: 14px 32px;
    font-size: 16px;
}

.nupp-pohi {
    background: var(--roheline);
    border-color: var(--roheline);
    color: var(--valge);
}

.nupp-pohi:hover {
    background: var(--roheline-hover);
    border-color: var(--roheline-hover);
}

.nupp-kontuur {
    border-color: var(--roheline);
    color: var(--roheline-tume);
    background: transparent;
}

.nupp-kontuur:hover {
    background: var(--roheline-tint);
}

.nool {
    flex-shrink: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .3s ease;
}

.nupp:hover .nool,
.nupp:focus-visible .nool {
    transform: translateX(3px);
}

/* ---------- Päis ---------- */

.paise {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, .78);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    backdrop-filter: saturate(180%) blur(16px);
    border-bottom: 1px solid transparent;
    transition: border-color .3s ease, background-color .3s ease;
}

.paise.on-keritud {
    background: rgba(255, 255, 255, .86);
    border-bottom-color: var(--joon);
}

/* Logo ja menüü vasakul, tegevused paremal */
.paise-sisu {
    display: flex;
    align-items: center;
    gap: 48px;
    min-height: 64px;
}

.brand {
    display: inline-flex;
    justify-self: start;
}

.brand-logo {
    width: auto;
    height: 28px;
}

.paise-nav {
    display: flex;
    gap: 32px;
}

.paise-link {
    position: relative;
    padding: 6px 0;
    font-size: 14.5px;
    font-weight: 500;
    color: var(--tekst);
    text-decoration: none;
    transition: color .2s ease;
}

.paise-link:hover {
    color: var(--roheline-tume);
}

.paise-link.on-aktiivne {
    color: var(--must);
}

/* Aktiivse sektsiooni täpp lingi all */
.paise-nav .paise-link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -6px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--roheline);
    opacity: 0;
    transform: translate(-50%, 4px);
    transition: opacity .25s ease, transform .25s ease;
}

.paise-nav .paise-link.on-aktiivne::after {
    opacity: 1;
    transform: translate(-50%, 0);
}

.paise-nupud {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-left: auto;
}

/* ---------- Kangelasosa ---------- */

.kangelane {
    padding-block: clamp(40px, 7vw, 88px) clamp(64px, 9vw, 120px);
}

.kangelane-sisu {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
    gap: clamp(40px, 5vw, 72px);
    align-items: center;
}

.kangelane-tekstid {
    display: grid;
    justify-items: start;
    min-width: 0;
}

.kangelane-silt {
    margin-bottom: 20px;
    font-size: 13px;
    color: var(--hall);
}

.kangelane-silt span {
    color: var(--roheline-tume);
}

.kangelane-pealkiri {
    font-size: clamp(40px, 5.2vw, 64px);
    line-height: 1.15;
    letter-spacing: -.04em;
    max-width: 12ch;
}

.kangelane-tekst {
    max-width: 30em;
    min-height: 3.2em;
    margin-top: 24px;
    font-size: 17px;
    line-height: 1.6;
    color: var(--must);
}

.rollid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 28px;
}

.roll {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border: 1px solid var(--taust);
    border-radius: 32px;
    background: var(--taust);
    color: #323338;
    font: 400 14px/20px var(--font);
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}

.roll:hover {
    background: #e9eaec;
}

.roll-ikoon {
    display: none;
    width: 16px;
    height: 16px;
    fill: var(--roheline);
}

.roll-ikoon path {
    fill: none;
    stroke: var(--valge);
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.roll[aria-pressed="true"] {
    background: var(--roheline-tint);
    border-color: var(--roheline-tint);
    color: var(--roheline-tume);
    padding-left: 10px;
}

.roll[aria-pressed="true"] .roll-ikoon {
    display: block;
}

#kangelane-nupp {
    margin-top: 32px;
}

.mikro {
    margin-top: 16px;
    font-size: 12px;
    font-weight: 300;
    color: var(--hall);
}

.mikro span {
    margin-inline: 8px;
}

/* ---------- Kangelasvideo ---------- */

.video {
    position: relative;
    width: 100%;
    aspect-ratio: 600 / 470;
    max-width: 100%;
    min-width: 0;
    border-radius: 24px;
    background: var(--taust);
    overflow: hidden;
}

.stseen {
    position: absolute;
    top: 0;
    left: 0;
    width: 600px;
    height: 470px;
    transform: scale(var(--s, 1));
    transform-origin: 0 0;
    font-size: 13px;
    color: var(--tekst);
}

.logod {
    position: absolute;
    width: 0;
    height: 0;
}

.kaader {
    position: absolute;
    inset: 0;
    display: grid;
    align-content: center;
    opacity: 0;
    visibility: hidden;
    transform: scale(.98);
    transition: opacity .7s ease, transform .9s var(--kiirendus), visibility .7s;
}

.kaader.on-aktiivne {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.stseen.ilma-yleminekuta .kaader,
.stseen.ilma-yleminekuta .tulemus,
.stseen.ilma-yleminekuta .t-uus,
.stseen.ilma-yleminekuta .pill,
.stseen.ilma-yleminekuta .kursor {
    transition: none !important;
}

/* Otsing */

.kaader-otsing {
    padding: 0 56px;
}

.otsing-sisu {
    display: grid;
    gap: 14px;
}

.otsinguriba {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 56px;
    padding: 0 20px;
    border-radius: 16px;
    background: var(--valge);
    box-shadow: var(--vari);
    font-size: 16px;
    color: var(--must);
}

.otsinguriba svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    fill: none;
    stroke: var(--hall-hele);
    stroke-width: 1.8;
    stroke-linecap: round;
}

.kursor-joon {
    width: 1.5px;
    height: 20px;
    margin-left: -10px;
    background: var(--must);
    animation: vilgub 1s steps(1) infinite;
}

.tulemused {
    display: grid;
    gap: 10px;
}

.tulemus {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 13px 16px;
    border-radius: 14px;
    background: var(--valge);
    box-shadow: var(--vari);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .5s ease, transform .6s var(--kiirendus);
}

.tulemus.on-nahtav {
    opacity: 1;
    transform: none;
}

/* Ettevõtte logo valgel plaadil peene äärisega, nagu päris rakendustes */
.logo-plaat {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border: 1px solid var(--joon);
    border-radius: 10px;
    background: var(--valge);
}

.logo-plaat svg {
    width: 26px;
    height: 26px;
}

.tulemus strong {
    display: block;
    font-weight: 500;
    font-size: 14px;
    color: var(--must);
    white-space: nowrap;
}

.tulemus span {
    font-size: 12px;
    color: var(--hall);
    white-space: nowrap;
}

.v-nupp {
    padding: 7px 14px;
    border-radius: 160px;
    background: var(--roheline);
    color: var(--valge) !important;
    font-size: 12px !important;
    transition: background-color .25s ease, color .25s ease, transform .12s ease;
}

.v-nupp-hall {
    background: var(--taust);
    color: var(--hall) !important;
}

.v-nupp.on-vajutatud {
    transform: scale(.94);
}

.v-nupp.on-saadetud {
    background: var(--roheline-tint);
    color: var(--roheline-tume) !important;
}

/* Tahvel */

.kaader-tahvel {
    padding: 0 28px;
}

.tahvel-pais {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 0 6px 14px;
}

.tahvel-pais strong {
    font-size: 19px;
    font-weight: 400;
    letter-spacing: -.02em;
    color: var(--must);
}

.tahvel-vaated {
    display: flex;
    gap: 14px;
    font-size: 12px;
    color: var(--hall-hele);
}

.tahvel-vaated i {
    font-style: normal;
    padding-bottom: 4px;
}

.tahvel-vaated i.on {
    color: var(--must);
    box-shadow: inset 0 -2px 0 var(--must);
}

.tahvel {
    display: grid;
    border-radius: 16px;
    background: var(--valge);
    box-shadow: var(--vari);
    overflow: hidden;
}

.t-rida {
    display: grid;
    grid-template-columns: 1.05fr 1.1fr 1.1fr 1.15fr .9fr;
    align-items: center;
    height: 48px;
    border-top: 1px solid var(--joon);
    font-size: 12.5px;
}

.t-rida > span {
    padding: 0 10px;
    white-space: nowrap;
    min-width: 0;
}

.t-pais {
    height: 36px;
    border-top: 0;
    font-size: 11.5px;
    color: var(--hall);
}

/* Uus rida libiseb tabelisse; ruum on ette jäetud, et sisu ei hüppaks */
.t-uus {
    opacity: 0;
    transform: translateY(14px);
    background: #f4fbf7;
    transition: opacity .5s ease, transform .6s var(--kiirendus), background-color 1.6s ease;
}

.t-uus.on-nahtav {
    opacity: 1;
    transform: none;
}

.t-uus.on-rahulik {
    background: var(--valge);
}

.t-nimi {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.t-koht {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.t-koht .logo-plaat {
    width: 22px;
    height: 22px;
    border-radius: 6px;
}

.t-koht .logo-plaat svg {
    width: 16px;
    height: 16px;
}

.avatar {
    object-fit: cover;
    flex-shrink: 0;
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--v);
    color: var(--valge);
    font-size: 11px;
    font-style: normal;
    font-weight: 500;
}

/* Teiste sektsioonide olekusildid (muutmata) */
.staatus {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    background: var(--tyhi);
    color: var(--valge);
    font-size: 12px;
    text-align: center;
    white-space: nowrap;
    transition: background-color .4s ease;
}

.t-rida > .staatus {
    align-self: stretch;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 0 6px;
    border-radius: 0;
    border-left: 1px solid var(--valge);
}

.staatus[data-v="oranz"] { background: var(--oranz); }
.staatus[data-v="sinine"] { background: var(--sinine); }
.staatus[data-v="roheline"] { background: var(--staatus-roheline); }
.staatus[data-v="lilla"] { background: var(--lilla); }
.staatus[data-v="tyhi"] { background: var(--tyhi); }

.staatus.on-muutus {
    animation: muutus .45s ease;
}

.t-juhendaja {
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--tekst);
}

.t-juhendaja .t-tyhi {
    font-weight: 400;
    color: var(--hall-hele);
}

.t-juhendaja.on-muutus {
    animation: pill-muutus .5s ease;
}

/* Pehmed olekusildid: hele taust, sama tooni tume tekst, kolm tooni */
.pill {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 160px;
    font-size: 11.5px;
    font-weight: 500;
    white-space: nowrap;
    transition: background-color .35s ease, color .35s ease;
}

.pill[data-v="ootel"] { background: #fff3dc; color: #8a5a00; }
.pill[data-v="toos"] { background: #e7efff; color: #2f5bb5; }
.pill[data-v="valmis"] { background: #dcf5e8; color: #0d7346; }

.pill[data-v="tyhi"] {
    padding-inline: 2px;
    background: none;
    color: var(--hall-hele);
    font-weight: 400;
}

.pill.on-muutus {
    animation: pill-muutus .5s ease;
}

.t-paevik {
    display: flex;
    align-items: center;
    gap: 8px;
}

.t-paevik b {
    flex: 1;
    height: 6px;
    border-radius: 6px;
    background: var(--joon);
    overflow: hidden;
}

.t-paevik b i {
    display: block;
    width: 0;
    height: 100%;
    border-radius: 6px;
    background: #3fbf86;
}

#st-paevik {
    transition: width 2.6s cubic-bezier(.3, .1, .3, 1);
}

.t-paevik em {
    font-style: normal;
    font-size: 11.5px;
    color: var(--hall);
    font-variant-numeric: tabular-nums;
}

/* Kursorid: asukoha ja vajutuse liigutab JS */

.kursor {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity .3s ease;
    pointer-events: none;
    will-change: transform;
}

.kursor.on-nahtav {
    opacity: 1;
}

.kursor > svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: var(--v);
    stroke: var(--valge);
    stroke-width: 1.2;
    stroke-linejoin: round;
    transform-origin: 2px 2px;
    transition: transform .12s ease;
}

.kursor.on-vajutus > svg {
    transform: scale(.82);
}

.kursor > span {
    position: absolute;
    left: 14px;
    top: 20px;
    width: max-content;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border-radius: 6px;
    background: var(--v);
    color: var(--valge);
    font-size: 11.5px;
    white-space: nowrap;
}

/* Paremas servas klõpsava kursori silt on noolest vasakul, et see ei jookseks stseenist välja */
.kursor.silt-vasakul > span {
    left: auto;
    right: 2px;
}

.kursor > span img {
    width: 16px;
    height: 16px;
    margin-left: -5px;
    border-radius: 50%;
    object-fit: cover;
    border: 1.5px solid rgba(255, 255, 255, .85);
}

.kool-ikoon {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linejoin: round;
}

/* Praktikapäevik */

.kaader-paevik,
.kaader-aruanne {
    padding: 0 40px;
}

.paevik-sisu,
.aruanne-sisu {
    display: grid;
    gap: 12px;
}

.pv-pais,
.ar-pais {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 4px 4px;
}

.pv-pais strong,
.ar-pais strong {
    display: block;
    font-size: 19px;
    font-weight: 400;
    letter-spacing: -.02em;
    color: var(--must);
}

.pv-pais div > span,
.ar-pais div > span {
    font-size: 12px;
    color: var(--hall);
}

.pv-edenemine {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 180px;
}

.pv-edenemine .t-paevik {
    flex: 1;
}

#pv-riba {
    width: 55%;
    transition: width .5s ease;
}

.pv-lopp {
    display: none;
}

.pv-lopp.on-nahtav {
    display: inline-block;
    animation: pill-muutus .5s ease;
}

.pv-vorm {
    display: grid;
    gap: 10px;
    padding: 16px 18px;
    border-radius: 16px;
    background: var(--valge);
    box-shadow: var(--vari);
    transition: opacity .4s ease;
}

.pv-vorm.on-tuhm {
    opacity: .45;
}

.pv-kuupaev {
    font-size: 12px;
    font-weight: 500;
    color: var(--hall);
}

.pv-vali {
    display: flex;
    align-items: flex-start;
    min-height: 58px;
    padding: 10px 12px;
    border: 1px solid var(--joon-tugev);
    border-radius: 10px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--must);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.pv-vali .kursor-joon {
    display: none;
    height: 18px;
    margin: 1px 0 0 1px;
}

.pv-vali.on-fookus {
    border-color: var(--roheline);
    box-shadow: 0 0 0 3px rgba(0, 183, 121, .15);
}

.pv-vali.on-fookus .kursor-joon {
    display: block;
}

.pv-jalus {
    display: flex;
    justify-content: flex-end;
}

/* Kanded: uus kanne libiseb ülevalt sisse, alumine jääb kasti alt välja */
.pv-kanded {
    display: grid;
    gap: 8px;
    height: 156px;
    overflow: hidden;
}

.pv-kanne {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 46px;
    padding: 0 16px;
    border-radius: 12px;
    background: var(--valge);
    font-size: 13px;
}

.pv-kanne strong {
    flex-shrink: 0;
    width: 54px;
    font-size: 12px;
    font-weight: 500;
    color: var(--must);
}

.pv-kanne span {
    color: var(--hall);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pv-uus {
    margin-top: -54px;
    background: #f4fbf7;
    transition: margin-top .6s var(--kiirendus), background-color 1.6s ease .6s;
}

.pv-kanded.on-lisatud .pv-uus {
    margin-top: 0;
    background: var(--valge);
}

/* Aruanne */

.ar-dokument {
    display: grid;
    gap: 14px;
    padding: 20px 22px;
    border-radius: 16px;
    background: var(--valge);
    box-shadow: var(--vari);
}

.ar-olek {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12.5px;
    color: var(--hall);
}

.ar-ring {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border: 2px solid var(--joon);
    border-top-color: var(--roheline);
    border-radius: 50%;
}

.ar-dokument.on-koostamisel .ar-ring {
    animation: keerle .8s linear infinite;
}

.ar-dokument.on-valmis .ar-ring {
    border-color: var(--roheline);
    background: var(--roheline) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='m4.5 8.2 2.3 2.3 4.7-4.8'/%3e%3c/svg%3e") center / 12px no-repeat;
}

.ar-dokument.on-valmis .ar-olek {
    color: var(--roheline-tume);
    font-weight: 500;
}

.ar-osa {
    display: grid;
    gap: 6px;
    opacity: .25;
    transition: opacity .4s ease;
}

.ar-osa.on-nahtav {
    opacity: 1;
}

.ar-osa b {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--must);
}

.ar-osa i {
    display: block;
    height: 7px;
    width: 0;
    border-radius: 4px;
    background: var(--joon-tugev);
    transition: width .7s var(--kiirendus);
}

.ar-osa.on-nahtav i {
    width: 100%;
}

.ar-osa.on-nahtav i.lyh {
    width: 62%;
}

.ar-osa i:nth-of-type(2) { transition-delay: .12s; }
.ar-osa i:nth-of-type(3) { transition-delay: .24s; }

.ar-arvud {
    display: flex;
    gap: 24px;
    padding-top: 10px;
    border-top: 1px solid var(--joon);
    font-size: 12.5px;
    color: var(--hall);
}

.ar-arvud b {
    font-size: 15px;
    color: var(--must);
}

#ar-nupp.on-ootel {
    background: var(--taust);
    color: var(--hall) !important;
}

@keyframes keerle {
    to { transform: rotate(360deg); }
}

.stseen.ilma-yleminekuta .pv-uus,
.stseen.ilma-yleminekuta .ar-osa,
.stseen.ilma-yleminekuta .ar-osa i,
.stseen.ilma-yleminekuta #pv-riba {
    transition: none !important;
}

/* Kitsas stseen telefonidele */
.video.on-kitsas {
    aspect-ratio: 440 / 470;
}

.video.on-kitsas .stseen {
    width: 440px;
}

.video.on-kitsas .kaader-otsing {
    padding: 0 22px;
}

.video.on-kitsas .kaader-tahvel {
    padding: 0 14px;
}

.video.on-kitsas .kaader-paevik,
.video.on-kitsas .kaader-aruanne {
    padding: 0 20px;
}

.video.on-kitsas .pv-edenemine {
    width: 130px;
}

.video.on-kitsas .t-rida {
    grid-template-columns: 1fr 1.15fr 1.2fr .85fr;
}

.video.on-kitsas .t-rida > :nth-child(2) {
    display: none;
}

.video.on-kitsas .tahvel-vaated {
    display: none;
}

/* ---------- Sektsioonid ---------- */

.sektsioon {
    padding-block: var(--sektsioon);
    scroll-margin-top: 48px;
}

.sektsiooni-pealkiri {
    font-size: clamp(34px, 4.6vw, 56px);
    line-height: 1.2;
    letter-spacing: -.03em;
}

.suur-pealkiri {
    font-size: clamp(44px, 7.4vw, 96px);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.04em;
}

.keskel {
    text-align: center;
    margin-inline: auto;
}

/* Vahekaardid */

.sakid {
    display: flex;
    justify-content: center;
    gap: 4px;
    width: max-content;
    max-width: 100%;
    margin: 32px auto 0;
    padding: 4px;
    border: 1px solid var(--joon-tugev);
    border-radius: 160px;
}

.sakk {
    padding: 8px 20px;
    border: 0;
    border-radius: 160px;
    background: transparent;
    color: var(--hall);
    font: 400 14px/20px var(--font);
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}

.sakk:hover {
    color: var(--must);
}

.sakk[aria-selected="true"] {
    background: var(--roheline-tint);
    color: var(--roheline-tume);
}

.paneelid {
    margin-top: 48px;
}

.paneel {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(32px, 5vw, 80px);
    align-items: center;
}

.paneel[hidden] {
    display: none;
}

.paneel.on-sisenemas .paneel-tekst,
.paneel.on-sisenemas .ekraan {
    animation: sisenemine .5s var(--kiirendus) both;
}

.paneel.on-sisenemas .ekraan {
    animation-delay: .06s;
}

.paneel-tekst {
    display: grid;
    justify-items: start;
    gap: 20px;
}

.paneel-tekst h3 {
    font-size: clamp(26px, 2.6vw, 32px);
    line-height: 1.25;
    letter-spacing: -.02em;
}

.paneel-tekst h3 span {
    color: var(--roheline-tume);
}

.paneel-tekst p {
    color: var(--hall);
    max-width: 38ch;
}

.paneel-tekst .nupp {
    margin-top: 8px;
}

.paneel-pilt {
    display: grid;
    place-items: center;
    padding: clamp(24px, 5vw, 64px);
    border-radius: 24px;
    background: var(--taust);
    min-width: 0;
}

.ekraan {
    display: grid;
    gap: 10px;
    width: 100%;
    max-width: 460px;
    padding: 24px;
    border-radius: 16px;
    background: var(--valge);
    box-shadow: var(--vari);
    font-size: 14px;
}

.e-silt {
    font-size: 17px;
    color: var(--must);
    margin-bottom: 6px;
}

.e-kaart {
    display: grid;
    padding: 14px 16px;
    border-radius: 12px;
    background: var(--roheline-tint);
}

.e-kaart strong {
    font-weight: 500;
    color: var(--must);
}

.e-kaart span {
    font-size: 13px;
    color: var(--hall);
}

.e-rida {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    padding: 8px 4px;
    border-top: 1px solid var(--joon);
}

.e-rida em {
    font-style: normal;
    font-size: 12.5px;
    color: var(--hall);
    font-variant-numeric: tabular-nums;
}

.e-edenemine {
    flex: 1;
    max-width: 140px;
    height: 6px;
    margin-left: auto;
    border-radius: 6px;
    background: var(--joon);
    overflow: hidden;
}

.e-edenemine i {
    display: block;
    height: 100%;
    background: var(--staatus-roheline);
}

.e-arv {
    font-size: 13px;
    color: var(--hall);
}

.e-lisa {
    padding: 12px 4px 0;
    border-top: 1px solid var(--joon);
    color: var(--roheline-tume);
    font-size: 13.5px;
}

/* ---------- Teekond ---------- */

.teekond {
    position: relative;
    height: 300vh;
}

.teekond-kinnitus {
    position: sticky;
    top: 0;
    display: flex;
    align-items: center;
    height: 100vh;
    height: 100svh;
    padding-top: 72px;
    overflow: hidden;
}

.teekond-sisu {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(32px, 6vw, 96px);
    align-items: center;
}

.teekond-tekstid {
    display: grid;
    gap: 48px;
    min-width: 0;
}

.teekond .suur-pealkiri {
    font-size: clamp(40px, 4.4vw, 60px);
    letter-spacing: -.035em;
}

.sammud {
    position: relative;
    display: grid;
    gap: 28px;
    margin: 0;
    padding: 0 0 0 24px;
    list-style: none;
    border-left: 2px solid var(--joon);
}

.sammud::before {
    content: "";
    position: absolute;
    left: -2px;
    top: 0;
    width: 2px;
    height: calc(var(--edenemine, 0) * 100%);
    background: var(--roheline);
}

.samm {
    display: grid;
    gap: 6px;
    opacity: .32;
    cursor: pointer;
    transition: opacity .4s ease;
}

.samm.on-aktiivne {
    opacity: 1;
}

.samm h3 {
    font-size: 24px;
    letter-spacing: -.02em;
}

.samm p {
    font-size: 15px;
    color: var(--hall);
    max-width: 36ch;
}

.aken {
    display: grid;
    padding: clamp(24px, 4vw, 56px);
    border-radius: 24px;
    background: var(--taust);
    min-width: 0;
}

.vaade {
    grid-area: 1 / 1;
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 24px;
    border-radius: 16px;
    background: var(--valge);
    box-shadow: var(--vari);
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    transition: opacity .5s ease, transform .6s var(--kiirendus), visibility .5s;
}

.vaade.on-aktiivne {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.kuulutus {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--joon);
    border-radius: 12px;
    font-size: 14px;
}

.kuulutus strong {
    display: block;
    font-weight: 500;
    color: var(--must);
}

.kuulutus span:not(.staatus) {
    font-size: 13px;
    color: var(--hall);
}

.kuulutus.valitud {
    border-color: transparent;
    background: var(--roheline-tint);
}

.leping {
    display: grid;
    gap: 10px;
    padding: 20px;
    border-radius: 12px;
    background: var(--taust);
}

.joon {
    height: 8px;
    border-radius: 8px;
    background: var(--joon-tugev);
}

.joon.lyhike {
    width: 60%;
}

.allkiri {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 4px;
    border-top: 1px solid var(--joon);
    font-size: 14px;
}

.allkiri .staatus {
    transform: scale(.6);
    opacity: 0;
    transition: transform .4s cubic-bezier(.3, 1.5, .5, 1), opacity .3s ease;
}

.vaade.on-aktiivne .allkiri .staatus {
    transform: none;
    opacity: 1;
}

.vaade.on-aktiivne .allkiri:nth-of-type(3) .staatus { transition-delay: .25s; }
.vaade.on-aktiivne .allkiri:nth-of-type(4) .staatus { transition-delay: .5s; }

.paev {
    display: grid;
    padding: 12px 16px;
    border-radius: 12px;
    background: var(--taust);
}

.paev strong {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--must);
}

.paev span {
    font-size: 14px;
    color: var(--hall);
}

/* ---------- Kõik ühes kohas (tegelane) ---------- */

.kontekst {
    padding-top: var(--sektsioon);
}

.kontekst-pea {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 26rem);
    gap: 24px 64px;
    align-items: end;
}

.kontekst-tekst {
    display: grid;
    justify-items: start;
    gap: 20px;
    padding-bottom: 8px;
}

.kontekst-tekst p {
    color: var(--hall);
}

.kontekst-kinnitus {
    position: relative;
    height: 260vh;
}

.kontekst-kinnitus-sisu {
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100svh;
    padding-top: 72px;
    overflow: hidden;
}

.lava {
    position: relative;
    width: min(1180px, calc(100% - 40px));
    height: 100%;
    margin-inline: auto;
}

.tegelane {
    position: absolute;
    left: 50%;
    bottom: 0;
    height: min(88%, 720px);
    aspect-ratio: 2 / 3;
    transform: translateX(-50%);
    --maali: 1;
}

.tegelane img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Värviline pilt paistab läbi maski, mille serv tõuseb alt üles pehme üleminekuga */
.t-varv {
    --serv: calc(var(--maali) * 116% - 8%);
    -webkit-mask-image: linear-gradient(to top, #000 calc(var(--serv) - 8%), transparent var(--serv));
    mask-image: linear-gradient(to top, #000 calc(var(--serv) - 8%), transparent var(--serv));
}

/* Hõljuvad kaardid */

.h-kaart {
    position: absolute;
    display: grid;
    gap: 8px;
    width: 240px;
    padding: 14px 16px;
    border-radius: 14px;
    background: var(--valge);
    box-shadow: var(--vari);
    border: 1px solid var(--joon);
    font-size: 12.5px;
    color: var(--tekst);
    opacity: 0;
    will-change: transform, opacity;
}

.hk-silt {
    font-size: 13.5px;
    color: var(--must);
}

.hk-failid { left: 4%; top: 6%; }
.hk-kuulutus-kaart { left: 25%; top: 0; width: 250px; }
.hk-kandid { left: 0; top: 46%; width: 260px; }
.hk-paevik { right: 22%; top: 2%; width: 200px; }
.hk-kool { right: 0; top: 30%; width: 220px; }
.hk-juhendaja { right: 6%; top: 66%; width: 250px; }

.hk-fail {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 0;
    border-top: 1px solid var(--joon);
}

.hk-fail i {
    padding: 2px 5px;
    border-radius: 4px;
    background: var(--v);
    color: var(--valge);
    font-size: 9px;
    font-style: normal;
    font-weight: 500;
}

.hk-hinne {
    display: flex;
    align-items: center;
    gap: 10px;
}

.hk-hinne strong {
    font-size: 28px;
    font-weight: 400;
    letter-spacing: -.03em;
    color: var(--must);
}

.hk-tahed {
    display: flex;
    gap: 3px;
}

.hk-tahed i {
    width: 14px;
    height: 14px;
    background: var(--oranz);
    clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.hk-tahed i.pool {
    background: linear-gradient(90deg, var(--oranz) 80%, var(--joon) 80%);
}

.hk-rida {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 32px;
    border-top: 1px solid var(--joon);
    padding-top: 6px;
}

.hk-rida .staatus {
    padding: 3px 8px;
    font-size: 11px;
}

.hk-rida .avatar {
    width: 22px;
    height: 22px;
    font-size: 10px;
}

.hk-kuulutus {
    display: flex;
    align-items: center;
    gap: 10px;
}

.hk-kuulutus .logo-plaat {
    width: 34px;
    height: 34px;
    border-radius: 9px;
}

.hk-kuulutus .logo-plaat svg {
    width: 22px;
    height: 22px;
}

.hk-kuulutus strong {
    display: block;
    font-weight: 500;
    color: var(--must);
}

.hk-kuulutus span:not(.logo-plaat) {
    font-size: 11.5px;
    color: var(--hall);
}

.hk-rida b {
    font-weight: 500;
    color: var(--must);
    font-variant-numeric: tabular-nums;
}

.hk-kalender {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}

.hk-kalender i {
    aspect-ratio: 1;
    border-radius: 4px;
    background: var(--joon);
}

.hk-kalender i.on {
    background: var(--staatus-roheline);
}

.hk-alam {
    font-size: 11.5px;
    color: var(--hall);
}

.hk-sonum {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.hk-sonum p {
    padding: 8px 10px;
    border-radius: 4px 12px 12px 12px;
    background: var(--taust);
    font-size: 12px;
    line-height: 1.45;
}

.valmis-silt {
    position: absolute;
    left: 80%;
    top: 23%;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px 10px 12px;
    border-radius: 160px;
    background: var(--valge);
    box-shadow: var(--vari);
    font-size: 15px;
    color: var(--must);
    white-space: nowrap;
    opacity: 0;
    transform: translateY(12px) scale(.94);
    transition: opacity .4s ease, transform .5s var(--kiirendus);
}

.valmis-silt svg {
    width: 22px;
    height: 22px;
    padding: 3px;
    border-radius: 50%;
    background: var(--roheline);
    fill: none;
    stroke: var(--valge);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.valmis-silt.on-nahtav {
    opacity: 1;
    transform: none;
}

/* Ilma JavaScriptita ja liikumise vähendamisel on kaardid lihtsalt paigal */
html:not(.js) .h-kaart,
.kontekst.on-staatiline .h-kaart {
    opacity: 1;
}

/* ---------- Vorm ---------- */

.vormi-pea {
    display: grid;
    gap: 12px;
    justify-items: center;
    text-align: center;
    margin-bottom: 32px;
}

.vormi-pea p {
    color: var(--hall);
}

.teade {
    margin-bottom: 24px;
    padding: 16px 20px;
    border-radius: 12px;
    font-size: 15px;
}

.teade-korras {
    background: var(--roheline-tint);
    color: #04543a;
}

.teade-viga {
    background: #fdecec;
    color: #8a1c14;
}

.tyybi-valik {
    display: flex;
    gap: 4px;
    width: max-content;
    max-width: 100%;
    margin: 0 auto 24px;
    padding: 4px;
    border: 1px solid var(--joon-tugev);
    border-radius: 160px;
}

.tyybi-nupp {
    padding: 8px 20px;
    border: 0;
    border-radius: 160px;
    background: transparent;
    font-family: var(--font);
    cursor: pointer;
    transition: background-color .2s ease;
}

.tyybi-nimi {
    font-size: 14px;
    color: var(--hall);
}

.tyybi-selgitus {
    display: none;
}

.tyybi-nupp.on-aktiivne {
    background: var(--roheline-tint);
}

.tyybi-nupp.on-aktiivne .tyybi-nimi {
    color: var(--roheline-tume);
}

.vormi-kaart {
    padding: clamp(24px, 4vw, 48px);
    border: 1px solid var(--joon);
    border-radius: 24px;
    background: var(--valge);
}

.vorm.on-peidetud {
    display: none;
}

.vali-ruudustik {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px 16px;
}

.vali-tais {
    grid-column: 1 / -1;
}

.vali-pool,
.vali-tais {
    min-width: 0;
}

.form-label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    color: var(--must);
}

fieldset {
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
}

legend.form-label {
    padding: 0;
}

.form-control,
.form-select {
    display: block;
    width: 100%;
    height: 48px;
    padding: 0 16px;
    border: 1px solid var(--joon-tugev);
    border-radius: 8px;
    background: var(--valge);
    color: var(--must);
    font: 400 15px/1.4 var(--font);
    transition: border-color .2s ease, box-shadow .2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.form-select {
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23535768' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4 6 4 4 4-4'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 16px;
}

.form-control::placeholder {
    color: var(--hall-hele);
    font-weight: 300;
}

.form-control:hover,
.form-select:hover {
    border-color: var(--hall-hele);
}

.form-control:focus,
.form-select:focus {
    outline: 0;
    border-color: var(--roheline);
    box-shadow: 0 0 0 3px rgba(0, 183, 121, .15);
}

.form-control.is-invalid,
.form-select.is-invalid {
    border-color: #d92d20;
}

.invalid-feedback {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #d92d20;
}

.form-text {
    margin-top: 8px;
    font-size: 12.5px;
    font-weight: 300;
    color: var(--hall);
}

.vormi-jalus {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 24px;
    margin-top: 36px;
}

.vormi-jalus .mikro {
    margin: 0;
}

.peibutus {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.perioodid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

.periood {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border: 1px solid var(--joon-tugev);
    border-radius: 32px;
    font-size: 14px;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}

.periood:hover {
    border-color: var(--hall-hele);
}

.periood input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--roheline);
    cursor: pointer;
}

.periood:has(input:checked) {
    border-color: var(--roheline-tint);
    background: var(--roheline-tint);
    color: var(--roheline-tume);
}

.periood:has(input:focus-visible) {
    outline: 2px solid var(--roheline);
    outline-offset: 2px;
}

.otsing {
    position: relative;
}

.otsing-loend {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 17rem;
    margin: 0;
    padding: 6px;
    overflow-y: auto;
    list-style: none;
    border: 1px solid var(--joon);
    border-radius: 12px;
    background: var(--valge);
    box-shadow: var(--vari);
}

.otsing-loend[hidden] {
    display: none;
}

.otsing-vaste {
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 14.5px;
    line-height: 1.35;
    cursor: pointer;
}

.otsing-vaste:hover,
.otsing-vaste.on-esile {
    background: var(--taust);
}

.otsing-vaste mark {
    padding: 0;
    background: transparent;
    color: var(--roheline-tume);
    font-weight: 500;
}

.otsing-lisa {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    color: var(--hall);
}

.otsing-tyhi {
    padding: 10px 12px;
    font-size: 14px;
    color: var(--hall);
}

/* ---------- KKK ---------- */

.lisainfo-sektsioon {
    border-top: 1px solid var(--joon);
}

.kkk-sisu {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr);
    gap: 48px;
    align-items: start;
}

.kkk-rida {
    border-bottom: 1px solid var(--joon);
}

.kkk-rida:first-child {
    border-top: 1px solid var(--joon);
}

.kkk-rida summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 0;
    font-size: 18px;
    color: var(--must);
    cursor: pointer;
    list-style: none;
}

.kkk-rida summary::-webkit-details-marker {
    display: none;
}

.kkk-ikoon {
    position: relative;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
}

.kkk-ikoon::before,
.kkk-ikoon::after {
    content: "";
    position: absolute;
    top: 6px;
    left: 0;
    width: 14px;
    height: 1.5px;
    border-radius: 2px;
    background: var(--must);
    transition: transform .3s ease;
}

.kkk-ikoon::after {
    transform: rotate(90deg);
}

.kkk-rida[open] .kkk-ikoon::after {
    transform: rotate(0deg);
}

.kkk-vastus {
    padding: 0 40px 28px 0;
    color: var(--hall);
    line-height: 1.7;
}

/* ---------- Lõpp: liikuv suur tekst ---------- */

.lopp {
    background: var(--taust);
    overflow: hidden;
}

.peidetud {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.lint {
    overflow: hidden;
}

.lint-rada {
    display: flex;
    width: max-content;
    will-change: transform;
}

.lint-osa {
    display: flex;
    align-items: center;
    gap: .32em;
    padding-right: .32em;
    font-size: clamp(22px, 2.8vw, 52px);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -.045em;
    color: var(--must);
    white-space: nowrap;
}

.mullid {
    display: inline-flex;
    align-items: center;
}

.mullid i,
.mullid img {
    display: grid;
    place-items: center;
    width: .66em;
    height: .66em;
    margin-left: -.14em;
    border: .045em solid var(--taust);
    border-radius: 50%;
    background: var(--v);
    color: var(--valge);
    font-size: 1em;
    font-style: normal;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1;
}

.mullid > :first-child {
    margin-left: 0;
}

.mullid img {
    object-fit: cover;
    background: var(--joon);
}

.mullid:not(.mullid-ikoonid) img {
    font-size: .3em;
    width: 2.2em;
    height: 2.2em;
    margin-left: -.46em;
    border-width: .15em;
}

.mullid:not(.mullid-ikoonid) img:first-child {
    margin-left: 0;
}

.mullid-ikoonid i {
    border-radius: .2em;
    margin-left: .06em;
}

.mullid-ikoonid svg {
    width: 55%;
    height: 55%;
    fill: none;
    stroke: var(--valge);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lopp-sisu {
    display: grid;
    justify-items: center;
    gap: 24px;
    margin-top: clamp(24px, 4vw, 48px);
    text-align: center;
}

.lopp-sisu p {
    font-size: 19px;
    color: var(--hall);
}

/* ---------- Jalus ---------- */

.jalus {
    border-top: 1px solid var(--joon);
    font-size: 14px;
    color: var(--hall);
}

.jalus-ylemine {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(0, .7fr));
    gap: 40px 64px;
    padding-block: 64px 48px;
}

.jalus-brand {
    display: grid;
    align-content: start;
    gap: 20px;
}

.jalus-logo {
    width: auto;
    height: 26px;
}

.jalus-kirjeldus {
    max-width: 44ch;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.7;
}

.jalus-veerg {
    display: grid;
    align-content: start;
    gap: 12px;
}

.jalus-pealkiri {
    margin-bottom: 4px;
    font-size: 14px;
    font-weight: 500;
    color: var(--must);
}

.jalus a {
    width: max-content;
    font-weight: 300;
    text-decoration: none;
    transition: color .2s ease;
}

.jalus a:hover {
    color: var(--must);
}

/* Sotsiaalmeedia ikoonid ümmargustel nuppudel */
.jalus-sotsiaal {
    display: flex;
    gap: 8px;
    margin-block: 4px;
}

.jalus .jalus-sotsiaal a {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--joon-tugev);
    border-radius: 50%;
    color: var(--tekst);
    transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

.jalus .jalus-sotsiaal a:hover {
    border-color: var(--roheline);
    background: var(--roheline-tint);
    color: var(--roheline-tume);
}

.jalus-sotsiaal svg {
    width: 16px;
    height: 16px;
}

.jalus-markus {
    font-size: 13px;
    font-weight: 300;
    color: var(--hall-hele);
}

.jalus-alumine {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px 24px;
    padding-block: 24px 32px;
    border-top: 1px solid var(--joon);
    font-size: 13px;
    font-weight: 300;
}

.jalus-yles {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.jalus-yles svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .25s ease;
}

.jalus-yles:hover svg {
    transform: translateY(-2px);
}

/* ---------- Kitsamad ekraanid ---------- */

@media (max-width: 1080px) {
    .paise-nav {
        display: none;
    }
}

@media (max-width: 760px) {
    .jalus-ylemine {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-block: 48px 32px;
    }

    .jalus-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 960px) {
    .kangelane-sisu,
    .paneel,
    .teekond-sisu,
    .kkk-sisu {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Telefonis on kinnitatud vaates ruumi vähe */
    .teekond-kinnitus {
        align-items: flex-start;
        padding-top: 96px;
    }

    .teekond-sisu {
        gap: 28px;
    }

    .teekond-tekstid {
        gap: 24px;
    }

    .teekond .suur-pealkiri {
        font-size: 36px;
    }

    .sammud {
        gap: 14px;
    }

    .samm h3 {
        font-size: 19px;
    }

    .samm p {
        display: none;
    }

    .samm.on-aktiivne p {
        display: block;
    }

    .aken {
        padding: 16px;
    }

    .vaade {
        padding: 18px;
    }
}

@media (max-width: 600px) {
    .peida-mobiilis {
        display: none;
    }

    .paise-sisu {
        min-height: 64px;
    }

    .brand-logo {
        height: 28px;
    }

    .vali-ruudustik {
        grid-template-columns: minmax(0, 1fr);
    }

    .kuulutus:nth-of-type(n + 3),
    .paev:nth-of-type(n + 3) {
        display: none;
    }

    .kkk-vastus {
        padding-right: 0;
    }
}

@media (max-height: 720px) and (max-width: 960px) {
    .samm.on-aktiivne p {
        display: none;
    }
}

/* ---------- Liikumine ---------- */

@media (prefers-reduced-motion: no-preference) {
    .js .sektsioon .ilmu {
        opacity: 0;
        transform: translateY(16px);
        transition: opacity .7s ease, transform .7s var(--kiirendus);
    }

    .js .sektsioon .ilmu.on-nahtav {
        opacity: 1;
        transform: none;
    }


    .js .kangelane-tekstid > * {
        animation: sisenemine .8s var(--kiirendus) both;
    }

    .js .kangelane-tekstid > :nth-child(2) { animation-delay: .06s; }
    .js .kangelane-tekstid > :nth-child(3) { animation-delay: .12s; }
    .js .kangelane-tekstid > :nth-child(4) { animation-delay: .18s; }
    .js .kangelane-tekstid > :nth-child(5) { animation-delay: .24s; }

    .kangelane-tekst.vahetub {
        animation: vahetus .35s ease;
    }
}

@keyframes sisenemine {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: none; }
}

@keyframes vahetus {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

@keyframes vilgub {
    50% { opacity: 0; }
}

@keyframes muutus {
    40% { filter: brightness(1.12); transform: scale(1.04); }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@keyframes pill-muutus {
    40% { transform: scale(1.06); }
}

/* ---------- Lõpupaneel ---------- */

.lopp {
    background: var(--valge);
    padding-top: 0;
}

.lopp-paneel {
    position: relative;
    display: grid;
    align-items: center;
    min-height: 420px;
    padding: clamp(32px, 6vw, 88px);
    border-radius: 24px;
    background: var(--roheline-tint);
    overflow: hidden;
}

.lopp-tekst {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: start;
    gap: 20px;
    max-width: 60%;
}

.lopp-tekst p {
    max-width: 34ch;
    font-size: 17px;
    color: var(--tekst);
}

.lopp-tekst .nupp {
    margin-top: 8px;
}

/* Tegelane piilub paneeli alt servast: näha on pea ja käsi */
.lopp-tegelane {
    position: absolute;
    right: clamp(16px, 7%, 96px);
    top: 8%;
    width: auto;
    height: 165%;
    max-width: none;
}

/* ---------- Kitsaste ekraanide parandused ---------- */

/* Ruudustiku lapsed ei tohi sisu tõttu oma veerust laiemaks minna */
.aken {
    grid-template-columns: minmax(0, 1fr);
}

.vaade {
    min-width: 0;
}

@media (max-width: 960px) {
    .kontekst-pea {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Kinnitatud teekond peab mahtuma ühele telefoniekraanile */
    .teekond-kinnitus {
        padding-top: 84px;
    }

    .teekond-sisu {
        gap: 20px;
    }

    .teekond-tekstid {
        gap: 18px;
    }

    .teekond .suur-pealkiri {
        font-size: 30px;
    }

    .sammud {
        gap: 10px;
    }

    .samm h3 {
        font-size: 18px;
    }

    .samm p {
        font-size: 14px;
    }

    .aken {
        padding: 12px;
        border-radius: 20px;
    }

    .vaade {
        gap: 8px;
        padding: 16px;
    }

    .vaade .e-silt {
        margin-bottom: 2px;
        font-size: 15px;
    }

    .kuulutus {
        padding: 10px 14px;
    }

    .allkiri {
        padding: 8px 4px;
    }

    /* Kaardid kahes veerus tegelase kohal, igast kaardist pealkiri ja esimene rida */
    .lava {
        width: min(560px, calc(100% - 32px));
    }

    .tegelane {
        height: 50%;
    }

    .h-kaart {
        gap: 6px;
        width: calc(50% - 6px);
        padding: 10px 12px;
        border-radius: 12px;
        font-size: 11.5px;
    }

    .h-kaart > :nth-child(n + 3) {
        display: none;
    }

    .h-kaart .hk-silt {
        font-size: 12.5px;
    }

    .h-kaart .hk-rida .staatus {
        padding: 2px 6px;
        font-size: 10px;
    }

    .hk-paevik .hk-kalender,
    .hk-kuulutus .logo-plaat {
        display: none;
    }

    .h-kaart.hk-paevik > .hk-alam {
        display: block;
    }

    .hk-failid { left: 0; right: auto; top: 0; width: calc(50% - 6px); }
    .hk-paevik { left: auto; right: 0; top: 0; width: calc(50% - 6px); }
    .hk-kandid { left: 0; right: auto; top: 15%; width: calc(50% - 6px); }
    .hk-kool { left: auto; right: 0; top: 15%; width: calc(50% - 6px); }
    .hk-kuulutus-kaart { left: 0; right: auto; top: 30%; width: calc(50% - 6px); }
    .hk-juhendaja { left: auto; right: 0; top: 30%; width: calc(50% - 6px); }

    /* Silt tegelase pea kohal keskel, mitte paremal ekraanist väljas */
    .valmis-silt {
        left: 50%;
        top: -52px;
        translate: -50% 0;
        padding: 8px 16px 8px 10px;
        font-size: 14px;
    }
}

@media (max-width: 760px) {
    .lopp-paneel {
        min-height: 0;
        padding-bottom: 210px;
    }

    .lopp-tekst {
        max-width: none;
    }

    .lopp-tegelane {
        top: auto;
        right: 50%;
        bottom: -250px;
        height: 440px;
        translate: 50% 0;
    }
}

@media (max-width: 960px) {
    .h-kaart .t-nimi {
        white-space: nowrap;
    }
}

/* Telefonis on kaart nii kitsas, et nimi ja olek mahuvad ritta ainult ilma pildita */
@media (max-width: 480px) {
    .h-kaart .avatar {
        display: none;
    }
}
