/* Shared UI for the Olerex recruitment pages: the front page (tmpl/mainPage.html + main.css) and
   the vacancies page (tmpl/vacancies.html + vacancies.css). Class prefix .ol-.
   Also carries the footer (.footer) styles that used to live in landing.css (deleted in 2026-09
   together with the old campaign landing pages). */

@font-face {
    font-family: 'BebasNeueProSemiExpandedExtraBold';
    src: url('../font/BebasNeuePro/BebasNeueProSemiExpandedExtraBold.otf') format('opentype');
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'BebasNeueProExpandedBold';
    src: url('../font/BebasNeuePro/BebasNeueProExpandedBold.otf') format('opentype');
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'BebasNeueProExpandedRegular';
    src: url('../font/BebasNeuePro/BebasNeueProExpandedRegular.otf') format('opentype');
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Karla';
    src: url('../font/Karla/Karla.ttf') format('truetype');
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}

:root {
    --ol-yellow: #FFCD03;
    --ol-yellow-photo: #FFCD00; /* exact background tone of the studio photos shot on yellow */
    --ol-yellow-hover: #FFD52B;
    --ol-ink: #141414;
    --ol-ink-2: #3b3b38;
    --ol-paper: #ffffff;
    --ol-ground: #F4F3EE;
    --ol-ground-2: #ECEBE4;
    --ol-line: #E2E0D8;
    --ol-muted: #6b6a64;
    --ol-display: 'BebasNeueProSemiExpandedExtraBold', 'Bebas Neue', Impact, 'Arial Narrow', sans-serif;
    --ol-label: 'BebasNeueProExpandedBold', 'Bebas Neue', Impact, 'Arial Narrow', sans-serif;
    --ol-body: 'Karla', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* ---------- Page base ---------- */
.ol-page {
    font-family: var(--ol-body);
    font-size: 16px;
    line-height: 1.5;
    color: var(--ol-ink);
    -webkit-font-smoothing: antialiased;
    overflow: hidden;
}

.ol-inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 40px;
}

/* ---------- Buttons ---------- */
.ol-btn {
    font-family: var(--ol-label);
    font-size: 18px;
    letter-spacing: .03em;
    line-height: 1;
    padding: 13px 18px 12px;
    border-radius: 8px;
    border: 1.5px solid transparent;
    background: transparent;
    color: var(--ol-ink);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    transition: background-color .12s ease-out, color .12s ease-out;
}

.ol-btn:hover,
.ol-btn:focus {
    text-decoration: none;
    color: var(--ol-ink);
}

.ol-btn svg {
    width: 18px;
    height: 18px;
    flex: none;
}

.ol-btn-primary {
    background: var(--ol-yellow);
}

.ol-btn-primary:hover {
    background: var(--ol-yellow-hover);
}

.ol-btn-ghost {
    border-color: var(--ol-ink);
}

.ol-btn-ghost:hover {
    background: var(--ol-ink);
    color: #fff;
}

.ol-btn-dark {
    background: var(--ol-ink);
    color: #fff;
}

.ol-btn-dark:hover {
    background: #2a2a2a;
    color: #fff;
}

.ol-btn:focus-visible,
.ol-logo:focus-visible,
a.ol-pill:focus-visible {
    outline: 3px solid var(--ol-ink);
    outline-offset: 2px;
}

/* ---------- Logo and hero text ---------- */
.ol-logo {
    display: inline-block;
}

.ol-logo img {
    height: 56px;
    width: auto;
    display: block;
}

.ol-eyebrow {
    margin: 0;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ol-h1 {
    font-family: var(--ol-display);
    font-weight: normal;
    font-size: clamp(52px, 7.5vw, 84px);
    line-height: .92;
    letter-spacing: .005em;
    margin: 0;
}

.ol-lead {
    font-size: 18px;
    line-height: 1.5;
    max-width: 36ch;
    margin: 0;
}

.ol-section-title {
    font-family: var(--ol-display);
    font-weight: normal;
    font-size: 46px;
    line-height: .95;
    margin: 0;
    text-wrap: balance;
}

/* Black pill "N avatud pakkumist" (a link on the front page, plain text on the vacancies page) */
.ol-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: max-content;
    margin: 0;
    background: var(--ol-ink);
    color: var(--ol-yellow);
    font-family: var(--ol-label);
    font-size: 20px;
    letter-spacing: .03em;
    line-height: 1;
    padding: 10px 18px 9px;
    border-radius: 999px;
    text-decoration: none;
}

a.ol-pill:hover {
    background: #2a2a2a;
    color: var(--ol-yellow);
    text-decoration: none;
}

.ol-pill-text {
    white-space: nowrap;
}

.ol-pill-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: currentColor;
    flex: none;
}

/* ---------- Yellow call-to-action band ---------- */
.ol-band {
    background: var(--ol-yellow);
    padding: 44px 0;
}

.ol-band-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.ol-band-inner > * {
    min-width: 0;
}

.ol-band-inner > div {
    flex: 1 1 320px;
}

.ol-band-title {
    font-family: var(--ol-display);
    font-weight: normal;
    font-size: 44px;
    line-height: .95;
    margin: 0;
}

.ol-band-text {
    margin: 8px 0 0;
    font-size: 17px;
    max-width: 46ch;
}

/* ---------- Footer (same markup and look as the old landing pages) ---------- */
.footer {
    background-color: rgb(20, 20, 20);
    color: #fefefe;
    padding: 2rem 1rem 3rem 1rem;
    font-size: 18px;
    font-family: 'BebasNeueProExpandedRegular', sans-serif;
}

.section-fit {
    max-width: 1024px;
}

.section-relative {
    position: relative;
    margin: 0 auto;
}

.section-inner {
    height: 100%;
}

a.nostyle:link,
a.nostyle:visited {
    text-decoration: inherit;
    color: inherit;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .ol-inner {
        padding: 0 20px;
    }

    .ol-section-title {
        font-size: 38px;
    }

    .ol-band-title {
        font-size: 36px;
    }

    .footer {
        font-size: 14px;
        padding: 2rem 2rem 3rem 2rem;
    }
}

@media (max-width: 600px) {
    .ol-logo img {
        height: 48px;
    }

    .ol-h1 {
        font-size: 52px;
    }

    .ol-lead {
        font-size: 17px;
    }

    .footer .row {
        flex-direction: column;
        gap: 12px;
    }

    .footer .col {
        flex: 0 0 auto;
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ol-btn {
        transition: none;
    }
}
