/*
 * Public UI refinement loaded after Tailwind.
 * Card and heading hover rules intentionally remain in their original files.
 */
:root {
    --pkm-refine-primary: #26786e;
    --pkm-refine-primary-dark: #1f625a;
    --pkm-refine-ink: #173d39;
    --pkm-refine-accent: #ffbd59;
    --pkm-refine-line: rgba(38, 120, 110, .18);
    --pkm-refine-shadow: 0 18px 48px rgba(23, 61, 57, .12);
}

.pkm-public-body {
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
}

.pkm-public-body.pkm-mobile-menu-open {
    overflow: hidden;
}

.pkm-skip-link {
    position: fixed;
    top: .75rem;
    left: .75rem;
    z-index: 9999;
    transform: translateY(-180%);
    border: 1px solid var(--pkm-refine-line);
    border-radius: .8rem;
    background: #fff;
    padding: .75rem 1rem;
    color: var(--pkm-refine-ink);
    font-size: .82rem;
    font-weight: 800;
    box-shadow: var(--pkm-refine-shadow);
    transition: transform .18s ease;
}

.pkm-skip-link:focus {
    transform: translateY(0);
}

.pkm-public-topbar {
    position: relative;
    z-index: 52;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    box-shadow: inset 0 -1px rgba(13, 79, 70, .2);
}

.pkm-top-contact {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .9rem;
}

.pkm-top-contact__separator {
    width: 1px;
    height: 1rem;
    flex: 0 0 1px;
    background: rgba(255, 255, 255, .3);
}

.pkm-public-header {
    border-bottom-color: var(--pkm-refine-line) !important;
    box-shadow: 0 12px 36px rgba(23, 61, 57, .09) !important;
}

.pkm-public-nav > div:first-child {
    min-height: 5.2rem;
}

.pkm-public-nav a,
.pkm-public-nav button {
    -webkit-tap-highlight-color: transparent;
}

.pkm-public-nav [aria-current="page"] {
    font-weight: 800;
}

.pkm-public-nav .theme-dropdown {
    scrollbar-width: thin;
    scrollbar-color: rgba(38, 120, 110, .35) transparent;
}

.pkm-public-nav .theme-dropdown::-webkit-scrollbar {
    width: .45rem;
}

.pkm-public-nav .theme-dropdown::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(38, 120, 110, .35);
}

.pkm-mobile-menu {
    position: relative;
    z-index: 61;
    margin: 0 -.25rem;
    max-height: calc(100dvh - 6.25rem);
    border: 1px solid var(--pkm-refine-line) !important;
    border-radius: 0 0 1.25rem 1.25rem;
    background: rgba(255, 255, 255, .985);
    padding: .9rem !important;
    box-shadow: 0 22px 48px rgba(15, 52, 48, .18);
    backdrop-filter: blur(18px);
}

.pkm-mobile-menu > div {
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(38, 120, 110, .35) transparent;
}

.pkm-mobile-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 45;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(10, 34, 31, .48);
    backdrop-filter: blur(3px);
    cursor: default;
}

#main-content:focus {
    outline: none;
}

.pkm-site-main {
    isolation: isolate;
}

.pkm-public-footer {
    border-top: 5px solid var(--pkm-refine-accent);
    box-shadow: 0 -18px 48px rgba(23, 61, 57, .08);
}

.pkm-public-footer h3 {
    position: relative;
    padding-bottom: .8rem;
}

.pkm-public-footer h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 2.6rem;
    height: 2px;
    border-radius: 999px;
    background: var(--pkm-refine-accent);
}

.pkm-public-footer #footer-admin-entry:focus-visible {
    border-radius: .35rem;
}

#back-to-top {
    backdrop-filter: blur(8px);
}

@media (max-width: 767px) {
    .pkm-public-nav > div:first-child {
        min-height: 4.75rem;
    }

    .pkm-mobile-menu {
        max-height: calc(100dvh - 5.75rem);
    }

    .pkm-public-footer {
        border-top-width: 4px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pkm-skip-link,
    .pkm-mobile-menu-backdrop,
    #back-to-top {
        transition: none !important;
    }
}

@media print {
    .pkm-public-topbar,
    .pkm-public-header,
    .pkm-mobile-menu-backdrop,
    .pkm-public-footer,
    #back-to-top,
    .pkm-skip-link {
        display: none !important;
    }

    .pkm-site-main {
        min-height: auto !important;
        overflow: visible !important;
    }
}
