:root {
    --color-primary: #0d6efd;
    --color-secondary: #6c757d;
    --color-bg: #f4f6f8;
    --font-family: system-ui, -apple-system, sans-serif;
    --max-width: 1200px;
}
body { background-color: var(--color-bg); font-family: var(--font-family); color: #333; margin: 0; padding: 0; }
.main-container, .header, .footer { max-width: var(--max-width); margin: 0 auto; padding: 0 20px; }
a { color: var(--color-primary); text-decoration: none; }
a:hover { color: var(--color-secondary); }

.header { display: flex; padding: 15px 20px; align-items: center; position: relative; background-color: #fff; box-shadow: 0 2px 4px rgba(0,0,0,0.05); border-radius: 0 0 8px 8px; }
.header-layout-inline { flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; gap: 25px; }
.header-layout-stacked { flex-direction: column; align-items: stretch; gap: 10px; }
.header-layout-stacked .main-navigation { width: 100%; background-color: var(--menu-bg-color, #222); border-radius: 4px; }

.site-logo { flex-shrink: 0; }
.site-logo a, .site-logo img { font-size: 1.8rem; font-weight: bold; color: var(--color-primary); max-height: 45px; display: inline-block; vertical-align: middle; }

.header-layout-inline .main-navigation { flex-grow: 1; background: transparent; }
.main-navigation ul, .main-navigation .mod-menu, .main-navigation ul.menu { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; list-style: none !important; margin: 0 !important; padding: 0 !important; align-items: center !important; }
.main-navigation li { display: block !important; position: relative !important; }
.main-navigation a { display: block; padding: 10px 14px; color: var(--menu-text-color, #333333); background-color: var(--menu-bg-color, transparent); font-size: var(--menu-font-size, 1rem); text-decoration: none; transition: background 0.2s, color 0.2s; }
.main-navigation a:hover { background-color: var(--menu-hover-bg, #0d6efd); color: var(--menu-hover-text, #ffffff); }

.menu-style-hover li ul, .menu-style-hover .mod-menu__sub, .menu-style-hover .nav-child { display: none !important; position: absolute !important; top: 100% !important; left: 0 !important; min-width: 220px !important; background: #222 !important; box-shadow: 0 8px 16px rgba(0,0,0,0.3) !important; z-index: 1000 !important; list-style: none !important; padding: 0 !important; margin: 0 !important; }
.menu-style-hover li:hover > ul, .menu-style-hover li:hover > .mod-menu__sub, .menu-style-hover li:hover > .nav-child { display: block !important; }
.menu-style-hover li ul li ul { top: 0 !important; left: 100% !important; }

.menu-style-expanded li ul, .menu-style-expanded .mod-menu__sub, .menu-style-expanded .nav-child { display: block !important; position: static !important; padding-left: 20px !important; border-left: 2px solid #444 !important; box-shadow: none !important; background: transparent !important; }

.header-search, .header-languages { display: flex; align-items: center; flex-shrink: 0; }
.header-search input[type="search"], .header-search input[type="text"] { padding: 6px 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; }

.site-slideshow { max-width: var(--max-width); margin: 20px auto 0 auto; padding: 0 20px; }
.grid-container { display: grid; gap: 30px; margin-top: 30px; grid-template-columns: 1fr; }
@media (min-width: 992px) {
    .layout-left-content-right { grid-template-columns: 250px 1fr 250px; }
    .layout-left-content { grid-template-columns: 250px 1fr; }
    .layout-content-right { grid-template-columns: 1fr 250px; }
}

.footer { margin-top: 40px; padding: 20px; border-top: 1px solid #ddd; text-align: center; }
.footer-copyright { margin-top: 15px; font-size: 0.9rem; color: var(--color-secondary); }