@charset "UTF-8";

/* Site-only global rules. Load on site/kr screens only so mngr and error screens keep their existing cascade. */
:where(a, button, input, select, textarea, summary, [role="button"], [tabindex], [contenteditable="true"]):focus-visible {
    outline: 0.125rem solid #0874c5;
    outline-offset: 0.1875rem;
}

@media (prefers-reduced-motion: reduce) {
    html:focus-within { scroll-behavior: auto; }
}

/* Keep the scrollbar's space reserved so locking scroll (mega menu, modal, mobile menu) doesn't shift the layout. */
html { scrollbar-gutter: stable; }

/* Fluid containers and media do not depend on an image's intrinsic pixel dimensions. */
:root {
    --pub-content-max: 100rem;
    --pub-gutter: clamp(1rem, 3vw, 2.5rem);
    --pub-section-gap: clamp(2rem, 5vw, 5rem);
}

:where(img, video) {
    max-inline-size: 100%;
    block-size: auto;
}

/* Preserve browser font preferences. UI zoom changes the rem basis, not individual components. */
html[data-font-scale="90"] { font-size: 90%; }
html[data-font-scale="95"] { font-size: 95%; }
html[data-font-scale="105"] { font-size: 105%; }
html[data-font-scale="110"] { font-size: 110%; }
html[data-font-scale="115"] { font-size: 115%; }
html[data-font-scale="120"] { font-size: 120%; }

.main-page .main-inner {
    width: min(var(--pub-content-max), calc(100% - 2 * var(--pub-gutter)));
}
.main-page #contents { gap: var(--pub-section-gap); }
.main-page .company-promo .thumb img {
    display: block;
    inline-size: 100%;
    block-size: auto;
}

/* Search inputs use a single indicator on their enclosing field, not a second box
   inside it. Action buttons retain their own keyboard focus indicator. */
:is(.header-search-form, .main-search):has(input:focus) {
    outline: .125rem solid #0874c5;
    outline-offset: .1875rem;
}
:is(.header-search-form, .main-search, .search-area--basic, .search-area--filters) input:focus {
    outline: none;
}
/* Froala owns its selection handles; only normalize the editable field focus. */
.fr-box .fr-element[contenteditable="true"]:focus { outline: none; }
.fr-box .fr-wrapper:focus-within {
    box-shadow: inset 0 0 0 .125rem #0874c5;
}
/* Filter choices already indicate keyboard focus on the enclosing label. */
.search-choices label:has(input:focus-visible) input { outline: none; }
