/* Shared frontend modernization overrides. Dynamic theme colors remain controlled by PHP variables. */
:root {
    --ui-surface: #ffffff;
    --ui-surface-soft: #f7f9fc;
    --ui-text: #334155;
    --ui-heading: #0b1324;
    --ui-border: #e5eaf1;
    --ui-shadow-sm: 0 8px 24px rgba(15,23,42,.06);
    --ui-shadow-md: 0 18px 46px rgba(15,23,42,.09);
}
html { scroll-behavior: smooth; }
body {
    color: var(--ui-text);
    background: #fff;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
.container { width: min(100% - 32px, 1180px); }
.header-top { border-bottom-color: rgba(148,163,184,.25) !important; }
.header-main {
    border-bottom: 1px solid rgba(148,163,184,.18);
    box-shadow: 0 9px 30px rgba(15,23,42,.055) !important;
    backdrop-filter: saturate(150%) blur(14px);
}
.navbar-brand img { width: auto; object-fit: contain; }
.nav-link {
    border-radius: 10px;
    letter-spacing: -.01em;
    transition: color .2s ease, background-color .2s ease, transform .2s ease !important;
}
.nav-link:hover { background: rgba(37,99,235,.055); }
.nav-link.active { font-weight: 700; }
.dropdown-menu {
    border: 1px solid var(--ui-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--ui-shadow-md) !important;
    padding: 9px !important;
}
.dropdown-item { border-radius: 10px; }
.btn { transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { box-shadow: 0 10px 24px rgba(37,99,235,.22); }
main#main-content { overflow: clip; }
footer {
    position: relative;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,.07);
}
footer::before {
    content: "";
    position: absolute;
    width: 520px;
    aspect-ratio: 1;
    right: -250px;
    top: -310px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37,99,235,.16), transparent 68%);
    pointer-events: none;
}
footer .container { position: relative; z-index: 1; }
@media (max-width: 991.98px) {
    .navbar-collapse { border: 1px solid var(--ui-border); margin-bottom: 12px; }
    .nav-link { padding: 11px 12px !important; }
}
@media (max-width: 575.98px) {
    .container { width: min(100% - 24px, 1180px); }
}

/* Theme: fixed/sticky header */
.site-header.sticky-header {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0;
    width: 100%;
    z-index: 1050;
}
.site-header.sticky-header.transparent-header {
    position: -webkit-sticky !important;
    position: sticky !important;
}
.site-header.sticky-header.scrolled .header-main {
    box-shadow: 0 8px 28px rgba(15, 23, 42, .12);
}
