/* Self-hosted variable font: keep existing Korean faces and weight rules. */
@font-face {
    font-family: 'Google Sans Flex';
    font-style: normal;
    font-weight: 100 1000;
    font-display: swap;
    src: url('/assets/fonts/google-sans-flex/google-sans-flex-latin-wght.woff2') format('woff2');
    unicode-range: U+0030-0039, U+0041-005A, U+0061-007A;
}

:where(html, button, input, select, textarea) {
    font-family: 'Google Sans Flex', 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
}

/* Keep a consistent native pointer across a control's text and icons. */
:where(a[href], button, summary, [role="button"], label[for],
    input[type="button"], input[type="submit"], input[type="reset"],
    input[type="checkbox"], input[type="radio"]) { cursor: pointer; }
:where(a[href], button, summary, [role="button"], label[for])
    :where(span, svg, path, img, i, b, strong, small) { cursor: inherit; }
.theme-switch .slider::before { pointer-events: none; }

/* Moving the hit area on hover makes a stationary pointer leave the control.
   Retain color/shadow/image transitions without moving that hit area. */
html body :is(.btn-primary, .btn-outline, .local-nav-item, .rnd-img-wrapper,
    .partners-card, .service-card, .process-flow span):hover,
html body.single-page #page-project-web .works-card.visible:hover,
html body #page-project-web .works-card:hover,
html body #page-quote :is(.quote-opt-row, .quote-plan, .quote-btn):hover,
html body :is(.sample-form, .sample-quick) :is(input, select, textarea):hover {
    transform: none !important;
}
