/* ==========================================================================
   peshare design system v2 (ps2) — shared layer
   Loaded AFTER w3.css. Provides tokens, base type, buttons, the new header /
   menus / mobile drawer, modals and footer. Page-specific styles live in
   their own file (e.g. ps2-home.css).
   Activate on a page with <body class="ps">.
   ========================================================================== */

:root {
    --ps-font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", "Segoe UI", system-ui, sans-serif;
    --ps-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;

    --ps-ink: #0b1324;
    --ps-ink-2: #3b4658;
    --ps-ink-3: #6b7686;
    --ps-line: #e6e9ee;
    --ps-line-strong: #d3d8e0;
    --ps-bg: #ffffff;
    --ps-bg-soft: #f5f7f9;

    --ps-brand: #0e8a43;
    --ps-brand-strong: #0a6b34;
    --ps-brand-bright: #22c55e;
    --ps-brand-soft: #e8f7ee;
    --ps-blue: #2563eb;
    --ps-amber: #f59e0b;
    --ps-mark: #ffe58a;
    --ps-red: #e5484d;
    --ps-night: #0b1324;

    --ps-radius-sm: 12px;
    --ps-radius: 18px;
    --ps-radius-lg: 28px;
    --ps-shadow-sm: 0 1px 2px rgba(11, 19, 36, .06), 0 1px 1px rgba(11, 19, 36, .04);
    --ps-shadow: 0 14px 32px -14px rgba(11, 19, 36, .18), 0 3px 8px rgba(11, 19, 36, .05);
    --ps-shadow-lg: 0 40px 80px -28px rgba(11, 19, 36, .30), 0 14px 28px -14px rgba(11, 19, 36, .14);

    --ps-container: 1200px;
    --ps-header-h: 68px;
    --ps-ease: cubic-bezier(.2, .8, .2, 1);
}

/* ---------- base ---------- */
html {
    font-size: 16px;
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}

html.ps-lock {
    overflow: hidden;
}

body.ps {
    margin: 0;
    font-family: var(--ps-font);
    font-size: 1rem;
    line-height: 1.6;
    color: var(--ps-ink);
    background: var(--ps-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    word-break: keep-all;
    overflow-wrap: break-word;
}

:where(.ps) h1, :where(.ps) h2, :where(.ps) h3, :where(.ps) h4 {
    font-family: inherit;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.02em;
    margin: 0;
}

:where(.ps) p { margin: 0; }
:where(.ps) a { color: inherit; text-decoration: none; }
:where(.ps) img { margin-bottom: 0; max-width: 100%; }
:where(.ps) button { font-family: inherit; }

/* the shared chrome also sits on pages whose <body> has no .ps class (legacy content pages) */
:where(.ps-header, .ps-drawer, .ps-footer, .ps-modal, .ps-notice) a { color: inherit; text-decoration: none; }
:where(.ps-header, .ps-drawer, .ps-footer, .ps-modal) img { margin-bottom: 0; }
:where(.ps-header, .ps-drawer, .ps-footer, .ps-modal) button { font-family: inherit; }
:where(.ps-header, .ps-drawer, .ps-footer, .ps-modal) :where(h2, h3) { font-family: inherit; margin: 0; }
:where(.ps-header, .ps-drawer, .ps-footer, .ps-modal) p { margin: 0; }

.ps ::selection { background: #bdf0cf; color: var(--ps-ink); }

.ps :focus-visible {
    outline: 2px solid var(--ps-brand);
    outline-offset: 3px;
    border-radius: 6px;
}

.ps-container {
    width: 100%;
    max-width: var(--ps-container);
    margin: 0 auto;
    padding: 0 24px;
}

.ps-i {
    width: 1.15em;
    height: 1.15em;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    vertical-align: -0.18em;
}

.ps-skip {
    position: absolute;
    left: 16px;
    top: -60px;
    z-index: 400;
    padding: 10px 16px;
    border-radius: 10px;
    background: var(--ps-ink);
    color: #fff !important;
    font-weight: 600;
    transition: top .2s;
}

.ps-skip:focus { top: 12px; }

/* ---------- buttons ---------- */
.ps-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 48px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: inherit;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.01em;
    white-space: nowrap;
    cursor: pointer;
    transition: transform .15s var(--ps-ease), box-shadow .2s, background-color .2s, color .2s, border-color .2s;
}

.ps-btn:active { transform: scale(.97); }
.ps-btn .ps-i { transition: transform .2s var(--ps-ease); }
.ps-btn:hover .ps-i--move { transform: translateX(3px); }

.ps-btn--primary {
    background: var(--ps-brand);
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 10px 22px -10px rgba(14, 138, 67, .7);
}

.ps-btn--primary:hover { background: var(--ps-brand-strong); color: #fff; }

.ps-btn--dark { background: var(--ps-ink); color: #fff; }
.ps-btn--dark:hover { background: #1c2740; color: #fff; }

.ps-btn--outline { background: #fff; color: var(--ps-ink); border-color: var(--ps-line-strong); }
.ps-btn--outline:hover { border-color: var(--ps-ink); color: var(--ps-ink); }

.ps-btn--ghost { background: transparent; color: var(--ps-ink-2); }
.ps-btn--ghost:hover { background: rgba(11, 19, 36, .06); color: var(--ps-ink); }

.ps-btn--light { background: #fff; color: var(--ps-ink); }
.ps-btn--light:hover { background: #eef2f6; color: var(--ps-ink); }

.ps-btn--glass { background: rgba(255, 255, 255, .08); color: #fff; border-color: rgba(255, 255, 255, .22); }
.ps-btn--glass:hover { background: rgba(255, 255, 255, .16); color: #fff; }

.ps-btn--sm { height: 38px; padding: 0 16px; font-size: 14.5px; }
.ps-btn--lg { height: 56px; padding: 0 28px; font-size: 17px; }
.ps-btn--block { display: flex; width: 100%; }

.ps-badge {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 9px;
    border-radius: 999px;
    background: var(--ps-brand);
    color: #fff;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .04em;
}

/* ---------- header ---------- */
.ps-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 255, 255, .84);
    -webkit-backdrop-filter: saturate(180%) blur(18px);
    backdrop-filter: saturate(180%) blur(18px);
    border-bottom: 1px solid transparent;
    transition: border-color .25s, box-shadow .25s;
}

.ps-header.is-scrolled {
    border-bottom-color: var(--ps-line);
    box-shadow: 0 10px 30px -22px rgba(11, 19, 36, .35);
}

.ps-header__inner {
    display: flex;
    align-items: center;
    gap: 24px;
    height: var(--ps-header-h);
}

.ps-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: none;
}

/* pesharePS.png has a wide white margin: crop to the frame and drop the white */
.ps-logo__mark {
    position: relative;
    flex: none;
    width: 38px;
    height: 34px;
    overflow: hidden;
}

.ps-logo__mark img {
    position: absolute;
    left: -9px;
    top: -11px;
    width: 56px;
    height: 56px;
    max-width: none;
    mix-blend-mode: multiply;
}

.ps-logo__text {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.035em;
    color: var(--ps-ink);
    line-height: 1;
}

.ps-logo__text span { color: var(--ps-brand); }

.ps-logo--invert .ps-logo__mark img { filter: invert(1); mix-blend-mode: screen; }
.ps-logo--invert .ps-logo__text { color: #fff; }
.ps-logo--invert .ps-logo__text span { color: var(--ps-brand-bright); }

.ps-nav {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-right: auto;
}

.ps-nav__item { position: relative; }

.ps-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 40px;
    padding: 0 12px;
    border: 0;
    border-radius: 10px;
    background: none;
    color: var(--ps-ink-2);
    font-size: 15.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .15s, color .15s;
}

.ps-nav__link:hover,
.ps-nav__item.is-open > .ps-nav__link {
    background: rgba(11, 19, 36, .055);
    color: var(--ps-ink);
}

.ps-nav__link .ps-i {
    width: 14px;
    height: 14px;
    opacity: .5;
    transition: transform .2s var(--ps-ease);
}

.ps-nav__item.is-open > .ps-nav__link .ps-i { transform: rotate(180deg); }

.ps-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    z-index: 10;
    min-width: 250px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--ps-line);
    border-radius: var(--ps-radius);
    box-shadow: var(--ps-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px) scale(.985);
    transform-origin: top left;
    transition: opacity .18s, transform .18s var(--ps-ease), visibility 0s .18s;
}

/* invisible bridge so the pointer can travel from the link to the panel */
.ps-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -12px;
    height: 12px;
}

.is-open > .ps-menu {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity .18s, transform .18s var(--ps-ease), visibility 0s;
}

.ps-menu--right { left: auto; right: 0; transform-origin: top right; }
.ps-menu--2col { display: grid; grid-template-columns: 1fr 1fr; width: 460px; }

.ps-menu__link {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    border-radius: 10px;
    background: none;
    text-align: left;
    cursor: pointer;
    transition: background-color .15s;
}

.ps-menu__link:hover { background: var(--ps-bg-soft); }

.ps-menu__title {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: var(--ps-ink);
}

.ps-menu__desc {
    display: block;
    margin-top: 1px;
    font-size: 13px;
    font-weight: 400;
    color: var(--ps-ink-3);
}

.ps-menu__label {
    margin: 0;
    padding: 8px 12px 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--ps-ink-3);
}

.ps-menu__sep {
    height: 1px;
    margin: 6px 4px;
    background: var(--ps-line);
}

/* mega menu (수능) */
.ps-menu--mega {
    display: grid;
    grid-template-columns: 236px minmax(0, 1fr) 176px;
    gap: 4px;
    width: 740px;
    padding: 10px;
}

.ps-mega__hero {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 150px;
    margin-bottom: 4px;
    padding: 18px;
    border-radius: 14px;
    background:
        radial-gradient(220px 140px at 100% 0%, rgba(34, 197, 94, .38), transparent 70%),
        var(--ps-night);
    color: #fff;
    transition: transform .2s var(--ps-ease);
}

.ps-mega__hero:hover { transform: translateY(-2px); color: #fff; }
.ps-mega__hero strong { margin-top: auto; font-size: 18px; letter-spacing: -0.02em; }
.ps-mega__hero span:last-child { font-size: 13px; color: #b8c2d3; line-height: 1.5; }
.ps-mega__hero .ps-badge { align-self: flex-start; }

.ps-years {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    padding: 0 8px 6px;
}

.ps-years a {
    display: grid;
    place-items: center;
    height: 36px;
    border-radius: 9px;
    font-size: 14.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--ps-ink-2);
    transition: background-color .15s, color .15s;
}

.ps-years a:hover { background: var(--ps-brand-soft); color: var(--ps-brand-strong); }
.ps-years a.is-latest { background: var(--ps-brand-soft); color: var(--ps-brand-strong); }

.ps-mega__col { border-left: 1px solid var(--ps-line); padding-left: 4px; }
.ps-mega__col .ps-menu__link { padding: 8px 12px; }
.ps-mega__col .ps-menu__title { font-size: 14px; font-weight: 500; color: var(--ps-ink-2); }

.ps-header__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.ps-usermenu { position: relative; }

.ps-usermenu__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 40px;
    padding: 0 10px 0 4px;
    border: 1px solid var(--ps-line);
    border-radius: 999px;
    background: #fff;
    color: var(--ps-ink-2);
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.ps-usermenu__btn:hover { border-color: var(--ps-line-strong); box-shadow: var(--ps-shadow-sm); }

.ps-usermenu__avatar {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--ps-brand), #14b8a6);
    color: #fff;
}

.ps-usermenu__avatar .ps-i { width: 16px; height: 16px; }
.ps-usermenu__btn > .ps-i { width: 14px; height: 14px; opacity: .55; }

.ps-burger {
    display: none;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--ps-line);
    border-radius: 12px;
    background: #fff;
    color: var(--ps-ink);
    cursor: pointer;
}

.ps-burger .ps-i { width: 20px; height: 20px; }

/* ---------- mobile drawer ---------- */
.ps-drawer {
    position: fixed;
    inset: 0;
    z-index: 200;
    visibility: hidden;
    transition: visibility 0s .3s;
}

.ps-drawer.is-open { visibility: visible; transition: visibility 0s; }

.ps-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(11, 19, 36, .5);
    opacity: 0;
    transition: opacity .3s;
}

.ps-drawer.is-open .ps-drawer__backdrop { opacity: 1; }

.ps-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    width: min(380px, 90vw);
    background: #fff;
    box-shadow: var(--ps-shadow-lg);
    transform: translateX(104%);
    transition: transform .34s var(--ps-ease);
}

.ps-drawer.is-open .ps-drawer__panel { transform: none; }

.ps-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--ps-header-h);
    padding: 0 16px 0 20px;
    border-bottom: 1px solid var(--ps-line);
}

.ps-drawer__body {
    flex: 1;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 6px 16px 20px;
}

.ps-drawer details { border-bottom: 1px solid var(--ps-line); }

.ps-drawer summary,
.ps-drawer__direct {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 6px;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.02em;
    list-style: none;
    cursor: pointer;
}

.ps-drawer__direct { border-bottom: 1px solid var(--ps-line); }
.ps-drawer summary::-webkit-details-marker { display: none; }
.ps-drawer summary .ps-i { opacity: .45; transition: transform .2s var(--ps-ease); }
.ps-drawer details[open] summary .ps-i { transform: rotate(180deg); }

.ps-drawer__links {
    display: grid;
    gap: 2px;
    padding: 0 0 14px;
}

.ps-drawer__links a,
.ps-drawer__links button {
    padding: 10px 12px;
    border: 0;
    border-radius: 10px;
    background: none;
    color: var(--ps-ink-2);
    font-size: 15.5px;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}

.ps-drawer__links a:hover,
.ps-drawer__links button:hover { background: var(--ps-bg-soft); color: var(--ps-ink); }

.ps-drawer .ps-years { grid-template-columns: repeat(4, 1fr); padding: 0 4px 12px; }
.ps-drawer .ps-years a { background: var(--ps-bg-soft); }

.ps-drawer__foot {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 16px 20px calc(16px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--ps-line);
}

/* ---------- modal ---------- */
.ps-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 300;
    overflow-y: auto;
    padding: 24px 16px;
}

.ps-modal__backdrop {
    position: fixed;
    inset: 0;
    background: rgba(11, 19, 36, .55);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    animation: psFade .22s both;
}

.ps-modal__panel {
    position: relative;
    width: 100%;
    max-width: 420px;
    margin: max(16px, 7vh) auto 24px;
    padding: 36px 32px 28px;
    border-radius: var(--ps-radius-lg);
    background: #fff;
    box-shadow: var(--ps-shadow-lg);
    animation: psPop .32s var(--ps-ease) both;
}

.ps-modal__panel--wide { max-width: 520px; }

.ps-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: var(--ps-bg-soft);
    color: var(--ps-ink-2);
    cursor: pointer;
    transition: background-color .15s, transform .2s var(--ps-ease);
}

.ps-modal__close:hover { background: #e6eaef; transform: rotate(90deg); }

.ps-modal__title {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.ps-modal__sub {
    margin-top: 6px;
    color: var(--ps-ink-3);
    font-size: 15px;
}

.ps-field { display: block; margin-top: 16px; }

.ps-field > span {
    display: block;
    margin-bottom: 6px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ps-ink-2);
}

.ps-input {
    display: block;
    width: 100%;
    height: 50px;
    padding: 0 16px;
    border: 1.5px solid var(--ps-line-strong);
    border-radius: 14px;
    background: #fff;
    color: var(--ps-ink);
    font-family: inherit;
    font-size: 16px;
    outline: 0;
    transition: border-color .15s, box-shadow .15s;
}

.ps-input::placeholder { color: #9aa4b2; }

.ps-input:focus {
    border-color: var(--ps-brand);
    box-shadow: 0 0 0 4px rgba(14, 138, 67, .14);
}

.ps-login__mark { margin-bottom: 18px; }
.ps-login form .ps-btn { margin-top: 22px; }

.ps-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 24px 0 16px;
    color: var(--ps-ink-3);
    font-size: 13px;
}

.ps-divider::before,
.ps-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--ps-line);
}

.ps-social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 44px;
}

.ps-social__btn {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    transition: transform .15s var(--ps-ease), box-shadow .2s;
}

.ps-social__btn:hover { transform: translateY(-2px); box-shadow: var(--ps-shadow); }
.ps-social__btn--naver { background: #03c75a; }
.ps-social__btn--kakao { background: #fee500; }
.ps-social__btn svg { display: block; }
.ps-social #g_id_onload { display: none; }
.ps-social .g_id_signin { height: 40px; }

.ps-login__foot {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--ps-line);
    font-size: 14.5px;
    color: var(--ps-ink-3);
}

.ps-login__foot a { font-weight: 600; color: var(--ps-ink); }
.ps-login__foot a:hover { color: var(--ps-brand); }

/* legacy form (msg/send_msg_public_main.jsp) inside the new modal */
.ps-ask h3 {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.03em;
    margin-bottom: 8px;
}

.ps-ask p { margin: 14px 0 0; font-size: 0; }
.ps-ask p b { display: block; margin-bottom: 6px; font-size: 13.5px; font-weight: 600; color: var(--ps-ink-2); }

.ps-ask .w3-input {
    display: block;
    width: 100%;
    padding: 13px 16px;
    border: 1.5px solid var(--ps-line-strong) !important;
    border-radius: 14px;
    background: #fff !important;
    color: var(--ps-ink) !important;
    font-family: inherit;
    font-size: 16px;
    outline: 0;
    transition: border-color .15s, box-shadow .15s;
}

.ps-ask textarea.w3-input { min-height: 132px; resize: vertical; line-height: 1.6; }

.ps-ask .w3-input:focus {
    border-color: var(--ps-brand) !important;
    box-shadow: 0 0 0 4px rgba(14, 138, 67, .14);
}

.ps-ask .w3-btn {
    float: none;
    display: block;
    width: 100%;
    height: 50px;
    margin-top: 8px;
    padding: 0 22px !important;
    border-radius: 999px !important;
    background: var(--ps-brand) !important;
    color: #fff !important;
    font-size: 16px;
    font-weight: 600;
    box-shadow: none;
}

.ps-ask .w3-btn:hover { background: var(--ps-brand-strong) !important; }

/* ---------- footer ---------- */
.ps-footer {
    padding: 72px 0 36px;
    background: var(--ps-night);
    color: #c5cedb;
}

.ps-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) repeat(4, minmax(0, 1fr));
    gap: 40px;
}

.ps-footer__brand p {
    max-width: 300px;
    margin-top: 16px;
    color: #8d99ab;
    font-size: 14.5px;
    line-height: 1.7;
}

.ps-footer h3 {
    margin-bottom: 16px;
    color: #7b8799;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
}

.ps-footer ul {
    display: grid;
    gap: 11px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 14.5px;
}

.ps-footer a { transition: color .15s; }
.ps-footer a:hover { color: #fff; }

.ps-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px 28px;
    margin-top: 56px;
    padding-top: 24px;
    border-top: 1px solid rgba(148, 163, 184, .16);
    color: #7b8799;
    font-size: 13px;
}

.ps-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.ps-footer__legal a { color: #c5cedb; font-weight: 600; }

/* ---------- motion ---------- */
@keyframes psFade { from { opacity: 0; } }
@keyframes psPop { from { opacity: 0; transform: translateY(14px) scale(.97); } }
@keyframes psRise { from { opacity: 0; transform: translateY(22px); } }
@keyframes psShimmer { to { background-position: -200% 0; } }

.ps-js [data-reveal] {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .7s var(--ps-ease), transform .7s var(--ps-ease);
    transition-delay: var(--ps-delay, 0s);
}

.ps-js [data-reveal].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .ps *, .ps *::before, .ps *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .ps-js [data-reveal] { opacity: 1; transform: none; }
}

/* ---------- responsive ---------- */
@media (max-width: 1199px) {
    .ps-header__ask { display: none; }
}

@media (max-width: 1023px) {
    .ps-nav { display: none; }
    .ps-burger { display: grid; }
    .ps-usermenu { display: none; }
    .ps-footer__top { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .ps-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 639px) {
    :root { --ps-header-h: 60px; }
    .ps-container { padding: 0 20px; }
    .ps-logo__text { font-size: 20px; }
    .ps-header__login { display: none; }
    .ps-modal__panel { padding: 32px 22px 24px; border-radius: 24px; }
    .ps-footer { padding: 56px 0 28px; }
    .ps-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
    .ps-footer__bottom { margin-top: 40px; }
}
