@font-face {
    font-family: 'Schibsted Grotesk';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/fonts/schibsted-grotesk-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Schibsted Grotesk';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/fonts/schibsted-grotesk-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('/fonts/jetbrains-mono-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('/fonts/jetbrains-mono-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: #fbfbfc;
    font-family: 'Schibsted Grotesk', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    color: #17181a;
}

a { color: #17181a; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: #5a5f66; }

:focus-visible { outline: 2px solid #17181a; outline-offset: 3px; border-radius: 4px; }

.mono { font-family: 'JetBrains Mono', monospace; }

.lockup { display: flex; align-items: center; gap: 12px; }
.lockup__mark { display: block; width: 36px; height: 36px; flex: none; color: #17181a; }
.lockup--small { gap: 10px; }
.lockup--small .lockup__mark { width: 28px; height: 28px; }

.page { width: 100%; background: #fbfbfc; overflow-x: hidden; }

.shell { max-width: 1000px; margin: 0 auto; }

.header {
    position: sticky;
    top: 0;
    z-index: 10;
    background: rgba(251, 251, 252, .94);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid #e3e5e8;
}

.header__inner {
    padding: 14px clamp(20px, 4vw, 36px);
    min-height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}

.wordmark {
    font-family: 'JetBrains Mono', monospace;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    white-space: nowrap;
}

.header__actions {
    display: flex;
    align-items: center;
    gap: clamp(12px, 2vw, 22px);
    flex-wrap: wrap;
}

.langs { display: flex; border: 1px solid #d6d9dd; border-radius: 9px; overflow: hidden; }

.langs__button {
    min-height: 40px;
    padding: 0 13px;
    border: none;
    cursor: pointer;
    font-size: 13.5px;
    font-weight: 600;
    font-family: inherit;
    background: #fff;
    color: #5a5f66;
}

.langs__button[aria-pressed="true"] { background: #17181a; color: #fff; }

.signin {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 8px 0 18px;
    border-radius: 12px;
    background: #17181a;
    color: #fff;
    text-decoration: none;
    font-size: 14.5px;
    font-weight: 600;
    white-space: nowrap;
}

.signin:hover { color: #fff; }

.signin__badge {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: rgba(255, 255, 255, .16);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
}

.hero {
    padding: clamp(60px, 8vw, 104px) clamp(20px, 4vw, 36px) clamp(56px, 7vw, 96px);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: clamp(40px, 5vw, 64px);
    align-items: center;
}

.hero__copy { display: flex; flex-direction: column; gap: clamp(20px, 2.4vw, 26px); }

.hero__title {
    margin: 0;
    font-size: clamp(34px, 5.6vw, 56px);
    line-height: 1.08;
    font-weight: 700;
    letter-spacing: -.035em;
    text-wrap: balance;
}

.hero__body {
    margin: 0;
    font-size: clamp(16px, 1.9vw, 19px);
    line-height: 1.6;
    color: #3d4045;
    max-width: 520px;
    text-wrap: pretty;
}

.hero__cta { padding-top: 8px; }

.button-dark {
    min-height: 56px;
    padding: 0 26px;
    border-radius: 14px;
    background: #17181a;
    color: #fff;
    text-decoration: none;
    font-size: 16.5px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 11px;
}

.button-dark:hover { color: #fff; }

.button-dark__arrow { font-family: 'JetBrains Mono', monospace; opacity: .6; }

.day {
    border: 1px solid #dfe2e6;
    border-radius: 20px;
    background: #fff;
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    max-width: 400px;
    justify-self: end;
}

.day__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.day__date { font-size: 15px; font-weight: 700; }
.day__free { font-size: 12.5px; color: #8b9096; }
.day__slots { display: flex; flex-direction: column; gap: 8px; }

.slot { border-radius: 13px; padding: 12px 14px; display: flex; align-items: center; gap: 12px; }

.slot__icon {
    width: 24px;
    height: 24px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    flex: none;
}

.slot__body { display: flex; flex-direction: column; gap: 2px; }
.slot__time { font-family: 'JetBrains Mono', monospace; font-size: 16.5px; font-weight: 600; }
.slot__label { font-size: 13px; font-weight: 600; }

.slot--free { border: 1.5px solid #17181a; }
.slot--free .slot__icon { border: 1.5px solid #17181a; }
.slot--free .slot__body { flex: 1; min-width: 0; }
.slot--free .slot__arrow { font-family: 'JetBrains Mono', monospace; font-size: 15px; flex: none; }

.slot--taken { border: 1px solid #e3e5e8; background: #f4f5f7; }
.slot--taken .slot__icon { background: #c9ced3; color: #5a5f66; }
.slot--taken .slot__label { color: #5a5f66; }

.slot--mine { border: 1.5px solid #17181a; background: #17181a; color: #fff; }
.slot--mine .slot__icon { background: #fff; color: #17181a; }
.slot--mine .slot__label { opacity: .85; }

.slot--blocked {
    border: 1px dashed #dfe2e6;
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
}

.slot--blocked .slot__row { display: flex; align-items: center; gap: 12px; }
.slot--blocked .slot__icon { border: 1.5px dashed #cdd1d6; color: #a4a9ae; }
.slot--blocked .slot__label { color: #5a5f66; }

.slot__why {
    font-size: 12.5px;
    line-height: 1.5;
    color: #5a5f66;
    padding-left: 36px;
    text-wrap: pretty;
}

.how {
    padding: 0 clamp(20px, 4vw, 36px) clamp(56px, 7vw, 96px);
    display: flex;
    flex-direction: column;
    gap: clamp(26px, 3.4vw, 40px);
}

.section-title {
    margin: 0;
    font-size: clamp(26px, 3.6vw, 34px);
    line-height: 1.18;
    font-weight: 700;
    letter-spacing: -.03em;
    text-wrap: balance;
}

.how .section-title { max-width: 560px; }

.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(24px, 3vw, 40px); }
.step { display: flex; flex-direction: column; gap: 11px; }
.step__number { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; color: #a4a9ae; }
.step__title { font-size: 18px; font-weight: 700; letter-spacing: -.015em; }
.step__body { margin: 0; font-size: 14.5px; line-height: 1.65; color: #5a5f66; text-wrap: pretty; }

.band { border-top: 1px solid #e3e5e8; }
.band--white { background: #fff; }

.band__inner {
    padding: clamp(56px, 7vw, 88px) clamp(20px, 4vw, 36px);
    display: flex;
    flex-direction: column;
    gap: clamp(26px, 3.4vw, 40px);
}

.band__head { display: flex; flex-direction: column; gap: 11px; max-width: 560px; }
.band--instructors .band__head { max-width: 600px; }

.eyebrow {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #8b9096;
}

.band__lead {
    margin: 0;
    font-size: clamp(15px, 1.7vw, 16.5px);
    line-height: 1.65;
    color: #5a5f66;
    max-width: 560px;
    text-wrap: pretty;
}

.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: clamp(24px, 3vw, 40px); }
.band--instructors .features { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

.feature { display: flex; flex-direction: column; gap: 10px; }
.feature__title { font-size: 16.5px; font-weight: 700; letter-spacing: -.01em; }
.feature__body { margin: 0; font-size: 14px; line-height: 1.65; color: #5a5f66; text-wrap: pretty; }
.band--instructors .feature__body { font-size: 14.5px; }

.rules {
    border-top: 1px solid #eceef0;
    padding-top: clamp(26px, 3.4vw, 36px);
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 620px;
}

.rules__title { font-size: clamp(19px, 2.2vw, 22px); font-weight: 700; letter-spacing: -.02em; text-wrap: balance; }
.rules__body { margin: 0; font-size: 15px; line-height: 1.7; color: #3d4045; text-wrap: pretty; }

.closing { padding: clamp(56px, 7vw, 88px) clamp(20px, 4vw, 36px); }

.closing__card {
    border-radius: 22px;
    background: #17181a;
    color: #fff;
    padding: clamp(32px, 5vw, 56px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(24px, 4vw, 48px);
    flex-wrap: wrap;
}

.closing__copy { display: flex; flex-direction: column; gap: 13px; max-width: 520px; }
.closing__title { font-size: clamp(25px, 3.4vw, 32px); font-weight: 700; letter-spacing: -.03em; line-height: 1.18; text-wrap: balance; }
.closing__body { margin: 0; font-size: clamp(15px, 1.7vw, 16.5px); line-height: 1.6; opacity: .72; text-wrap: pretty; }

.button-light {
    flex: none;
    min-height: 58px;
    padding: 0 28px;
    border-radius: 15px;
    background: #fff;
    color: #17181a;
    text-decoration: none;
    font-size: 16.5px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 12px;
}

.button-light:hover { color: #17181a; }
.button-light__arrow { font-family: 'JetBrains Mono', monospace; color: #8b9096; }

.footer { border-top: 1px solid #e3e5e8; background: #fff; }

.footer__inner {
    padding: 36px clamp(20px, 4vw, 36px) 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.footer__left { display: flex; align-items: center; gap: clamp(16px, 2.4vw, 28px); flex-wrap: wrap; }

.footer__wordmark {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.footer__link { font-size: 13.5px; text-decoration: none; color: #5a5f66; }
.footer__copyright { font-size: 13px; color: #a4a9ae; }
.consent {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 20;
    display: flex;
    justify-content: center;
    padding: 0 clamp(12px, 3vw, 24px) clamp(12px, 3vw, 24px);
}

.consent[hidden] { display: none; }

.consent__card {
    width: 100%;
    max-width: 1000px;
    background: #fff;
    border: 1px solid #d6d9dd;
    border-radius: 16px;
    box-shadow: 0 14px 40px rgba(23, 24, 26, .14);
    padding: clamp(18px, 2.6vw, 24px) clamp(18px, 3vw, 28px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(16px, 3vw, 32px);
    flex-wrap: wrap;
}

.consent__copy { flex: 1 1 340px; display: flex; flex-direction: column; gap: 7px; }
.consent__title { font-size: 16.5px; font-weight: 700; letter-spacing: -.01em; }
.consent__body { margin: 0; font-size: 14px; line-height: 1.6; color: #5a5f66; text-wrap: pretty; }
.consent__link { font-size: 13.5px; color: #5a5f66; align-self: flex-start; }

.consent__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.consent__button {
    min-height: 46px;
    padding: 0 22px;
    border-radius: 12px;
    border: 1px solid #d6d9dd;
    background: #fff;
    color: #17181a;
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.consent__button:hover { border-color: #a4a9ae; }
.consent__button--accept { background: #17181a; border-color: #17181a; color: #fff; }
.consent__button--accept:hover { background: #2a2c30; border-color: #2a2c30; }

.footer__link--button {
    font-family: inherit;
    font-size: 13.5px;
    color: #5a5f66;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}
.lockup--link { text-decoration: none; color: inherit; }

.legal { padding: clamp(48px, 7vw, 84px) clamp(20px, 4vw, 36px) clamp(56px, 8vw, 96px); }

.legal__head {
    max-width: 720px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: clamp(36px, 5vw, 56px);
}

.legal__meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #8b9096;
}

.legal__title {
    margin: 0;
    font-size: clamp(30px, 4.6vw, 44px);
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: -.035em;
    text-wrap: balance;
}

.legal__lead { margin: 0; font-size: clamp(16px, 1.9vw, 18px); line-height: 1.6; color: #3d4045; text-wrap: pretty; }

.legal__body { max-width: 720px; display: flex; flex-direction: column; gap: clamp(34px, 4vw, 46px); }
.legal__section { display: flex; flex-direction: column; gap: 12px; }

.legal__number {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .12em;
    color: #a4a9ae;
}

.legal__heading { margin: 0; font-size: clamp(19px, 2.2vw, 23px); font-weight: 700; letter-spacing: -.02em; text-wrap: balance; }
.legal__text { margin: 0; font-size: 15px; line-height: 1.72; color: #3d4045; text-wrap: pretty; }
.legal__more { font-size: 14.5px; align-self: flex-start; }

.legal__list {
    margin: 0;
    padding-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    font-size: 15px;
    line-height: 1.7;
    color: #3d4045;
}

.legal__facts {
    margin: 0;
    display: grid;
    grid-template-columns: minmax(140px, auto) 1fr;
    gap: 10px 24px;
    font-size: 15px;
    line-height: 1.6;
}

.legal__facts dt { color: #8b9096; }
.legal__facts dd { margin: 0; color: #17181a; }

.legal__scroll { overflow-x: auto; }
.legal__table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 520px; }

.legal__table th,
.legal__table td {
    text-align: left;
    padding: 11px 18px 11px 0;
    border-bottom: 1px solid #e3e5e8;
    vertical-align: top;
    line-height: 1.55;
    color: #3d4045;
}

.legal__table th {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #8b9096;
}

.legal__table td:first-child { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: #17181a; }

@media (max-width: 560px) {
    .legal__facts { grid-template-columns: 1fr; gap: 4px; }
    .legal__facts dd { margin-bottom: 10px; }
}
