/* ==========================================================================
   HIGGINS CMS — Clean Minimalistic CSS Template
   Replaces custom.css / custom_wide.css.

   All visibility and behavior contracts required by the CMS JavaScript are
   preserved. See SPECIFICATION.md -> CSS Architecture for the full contract.

   Customize via CSS custom properties in :root — no need to edit rules.
   ========================================================================== */


/* ==========================================================================
   0. OPEN SANS — Default font for public content and admin interface
   ========================================================================== */

@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 300; src: url('fonts/open-sans-v17-latin-300.eot'); src: local('Open Sans Light'), local('OpenSans-Light'), url('fonts/open-sans-v17-latin-300.eot?#iefix') format('embedded-opentype'), url('fonts/open-sans-v17-latin-300.woff2') format('woff2'), url('fonts/open-sans-v17-latin-300.woff') format('woff'), url('fonts/open-sans-v17-latin-300.ttf') format('truetype'), url('fonts/open-sans-v17-latin-300.svg#OpenSans') format('svg'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; src: url('fonts/open-sans-v17-latin-regular.eot'); src: local('Open Sans Regular'), local('OpenSans-Regular'), url('fonts/open-sans-v17-latin-regular.eot?#iefix') format('embedded-opentype'), url('fonts/open-sans-v17-latin-regular.woff2') format('woff2'), url('fonts/open-sans-v17-latin-regular.woff') format('woff'), url('fonts/open-sans-v17-latin-regular.ttf') format('truetype'), url('fonts/open-sans-v17-latin-regular.svg#OpenSans') format('svg'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 700; src: url('fonts/open-sans-v17-latin-700.eot'); src: local('Open Sans Bold'), local('OpenSans-Bold'), url('fonts/open-sans-v17-latin-700.eot?#iefix') format('embedded-opentype'), url('fonts/open-sans-v17-latin-700.woff2') format('woff2'), url('fonts/open-sans-v17-latin-700.woff') format('woff'), url('fonts/open-sans-v17-latin-700.ttf') format('truetype'), url('fonts/open-sans-v17-latin-700.svg#OpenSans') format('svg'); }


/* ==========================================================================
   1. CUSTOM PROPERTIES
   ========================================================================== */

:root {
    /* Layout */
    --top-height: 80px;
    --content-max-width: 1200px;
    --content-padding: 20px;

    /* Colors */
    --color-primary: #1a1a1a;
    --color-accent: #2563eb;
    --color-accent-hover: #1d4ed8;
    --color-text: #222;
    --color-text-secondary: #555;
    --color-text-inverse: #fff;
    --color-bg: #fff;
    --color-bg-alt: #f5f5f5;
    --color-border: #e0e0e0;
    --color-overlay-bg: rgba(0, 0, 0, 0.6);

    /* Navigation */
    --nav-bg: #fff;
    --nav-link-color: #222;
    --nav-link-hover-bg: #f0f0f0;
    --nav-font-size: 2rem;
    --nav-link-height: 5rem;

    /* Footer */
    --footer-bg: #fafafa;
    --footer-text: #666;
}


/* ==========================================================================
   2. BASE TYPOGRAPHY
   ========================================================================== */

body {
    color: var(--color-text);
    background-color: var(--color-bg);
    line-height: 1.6;
}

/* Typography & elements (scoped to #content to avoid overriding admin UI) */
#content a { color: var(--color-accent); text-decoration: none; }
#content a:hover { text-decoration: underline; }
#content a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

#content h1 { font-size: 3.2rem; line-height: 1.2; margin-bottom: 1.6rem; font-weight: 700; }
#content h2 { font-size: 2.4rem; line-height: 1.3; margin-bottom: 1.2rem; font-weight: 700; }
#content h3 { font-size: 2rem; line-height: 1.4; margin-bottom: 1rem; font-weight: 600; }
#content h4 { font-size: 1.8rem; line-height: 1.4; margin-bottom: 0.8rem; font-weight: 600; }
#content p { margin-bottom: 1.2rem; }
#content ul, #content ol { margin-bottom: 1.2rem; padding-left: 2.4rem; }
#content li { margin-bottom: 0.4rem; }
#content img { max-width: 100%; height: auto; display: block; }
#content blockquote { margin: 0 0 1.6rem 0; padding: 1.2rem 2rem; border-left: 3px solid var(--color-border); color: var(--color-text-secondary); }
#content hr { border: none; border-top: 1px solid var(--color-border); margin: 2.4rem 0; }
#content table { border-collapse: collapse; width: 100%; margin-bottom: 1.6rem; }
#content th, #content td { padding: 0.8rem 1.2rem; border: 1px solid var(--color-border); text-align: left; }
#content th { background-color: var(--color-bg-alt); font-weight: 600; }

/* Basic form elements (scoped to #content to avoid overriding admin UI) */
#content input[type="text"], #content input[type="email"], #content input[type="password"], #content textarea, #content select {
    width: 100%; max-width: 100%; box-sizing: border-box; padding: 0.8rem 1rem;
    border: 1px solid var(--color-border); border-radius: 4px; font-size: 1.6rem;
    line-height: 1.5; outline: none; background: var(--color-bg);
}
#content input:focus, #content textarea:focus, #content select:focus { border-color: var(--color-accent); }
#content button, #content .btn {
    display: inline-block; padding: 0.8rem 1.6rem; border: none; border-radius: 4px;
    font-size: 1.5rem; line-height: 1.5; cursor: pointer; text-align: center;
    background-color: var(--color-primary); color: var(--color-text-inverse);
}
#content button:hover, #content .btn:hover { opacity: 0.9; }


/* ==========================================================================
   3. LAYOUT STRUCTURE
   ========================================================================== */

#top {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--top-height);
    background-color: var(--color-primary);
    z-index: 100;
    box-sizing: border-box;
}

#content {
    position: relative;
    width: 100%;
    max-width: var(--content-max-width);
    margin: var(--top-height) auto 0;
    padding: 0 var(--content-padding);
    box-sizing: border-box;
    background: var(--color-bg);
    z-index: 1;
    min-height: 50vh;
}

#footer {
    position: relative;
    width: 100%;
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding: 3rem var(--content-padding);
    box-sizing: border-box;
    background-color: var(--footer-bg);
    color: var(--footer-text);
    font-size: 1.4rem;
    z-index: 0;
    border-top: 1px solid var(--color-border);
}


/* ==========================================================================
   4. TOP BAR
   ========================================================================== */

#top_content {
    position: relative;
    max-width: var(--content-max-width);
    height: 100%;
    margin: 0 auto;
    padding: 0 var(--content-padding);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Logo (image or text) */
#logo {
    position: relative;
    display: flex;
    align-items: center;
    text-decoration: none;
    z-index: 1;
}
#logo img { height: 40px; width: auto; }

.logo_text, .slogan {
    color: var(--color-text-inverse);
    font-size: 2rem;
    font-weight: 700;
    text-decoration: none;
    line-height: var(--top-height);
}

/* Language switch in top bar */
.hig_static_language_switch { display: flex; align-items: center; gap: 0.5rem; }
.hig_static_language_switch a { color: var(--color-text-inverse); opacity: 0.6; font-size: 1.4rem; text-decoration: none; }
.hig_static_language_switch a.selected { opacity: 1; }
.hig_static_language_switch span { color: var(--color-text-inverse); opacity: 0.4; }

/* Search / archive button */
#static_btn_search {
    position: absolute;
    top: 50%;
    right: 70px;
    transform: translateY(-50%);
    color: var(--color-text-inverse);
    font-size: 1.4rem;
    text-decoration: none;
    opacity: 0.8;
}
#static_btn_search:hover { opacity: 1; }

/* Loading spinner (hidden by default, shown by JS) */
#static_icon_loading { display: none; position: absolute; top: 5px; right: 5px; }

/* Navigation toggle button — CSS-drawn burger icon */
#static_btn_nav {
    position: absolute;
    top: 50%;
    right: var(--content-padding);
    transform: translateY(-50%);
    width: 30px;
    height: 24px;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    z-index: 1;
}
#static_btn_nav::before,
#static_btn_nav::after {
    content: "";
    display: block;
    width: 30px;
    height: 2px;
    background-color: var(--color-text-inverse);
    position: absolute;
    left: 0;
    transition: none;
}
#static_btn_nav::before { top: 4px; box-shadow: 0 9px 0 var(--color-text-inverse); }
#static_btn_nav::after { bottom: 4px; }

/* Nav button — close state (X icon) when nav is open */
html.overlay #static_btn_nav::before { top: 11px; transform: rotate(45deg); box-shadow: none; }
html.overlay #static_btn_nav::after { bottom: 11px; transform: rotate(-45deg); }


/* ==========================================================================
   5. NAVIGATION SYSTEM
   ========================================================================== */

/* BEHAVIORAL CONTRACT: Navigation is hidden by default, shown by .overlay class */
#navigation {
    display: none;
    position: fixed;
    left: 0;
    top: var(--top-height);
    width: 100%;
    height: calc(100% - var(--top-height));
    overflow-y: auto;
    scrollbar-width: none;
    background-color: var(--nav-bg);
    box-sizing: border-box;
    padding: 0;
    z-index: 99;
}

/* BEHAVIORAL CONTRACT: Shown when html.overlay class is set by JS */
body #navigation.overlay { display: block; }

#navigation_links {
    list-style: none;
    margin: 0;
    padding: 1rem 0;
    max-width: var(--content-max-width);
    margin-left: auto;
    margin-right: auto;
}

#navigation_links li { list-style: none; }

#navigation_links > li > a,
#navigation_links > li > .link,
#navigation .link_collection_wrapper > a {
    display: block;
    padding: 0 var(--content-padding);
    color: var(--nav-link-color);
    font-size: var(--nav-font-size);
    font-weight: 600;
    line-height: var(--nav-link-height);
    height: var(--nav-link-height);
    text-decoration: none;
    box-sizing: border-box;
}

#navigation_links > li > a:hover,
#navigation_links > li > .link:hover,
#navigation .link_collection_wrapper > a:hover {
    background-color: var(--nav-link-hover-bg);
}

#navigation_links > li > a:focus-visible,
#navigation .link_collection_wrapper > a:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
}

/* Active navigation link */
#navigation_links a.active { color: var(--color-accent); }

/* Session-dependent link visibility */
#navigation_links a.session_required { display: none; }
body.logged_in #navigation_links a.session_required { display: block; }
body.logged_in #navigation_links a.hide_if_logged_in { display: none; }

/* Link collection wrapper (parent with submenu) */
.link_collection_wrapper { position: relative; }

/* Submenu toggle button — CSS-drawn chevron */
#navigation .link_collection_wrapper .btn_toggle {
    position: absolute;
    right: var(--content-padding);
    top: 0;
    width: 50px;
    height: var(--nav-link-height);
    border: none;
    background: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
#navigation .link_collection_wrapper .btn_toggle::after {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--nav-link-color);
    border-bottom: 2px solid var(--nav-link-color);
    transform: rotate(45deg);
    margin-top: -4px;
}

/* Rotated chevron when submenu is visible */
#navigation .link_collection_wrapper .btn_toggle[aria-expanded="true"]::after,
#navigation .link_collection.visible + .btn_toggle::after {
    transform: rotate(-135deg);
    margin-top: 4px;
}

/* BEHAVIORAL CONTRACT: Submenus hidden by default, shown by .visible class */
#navigation .link_collection { display: none; list-style: none; margin: 0; padding: 0; }
#navigation .link_collection.visible { display: block; border-top: 1px solid var(--color-border); }

#navigation .link_collection a {
    display: block;
    padding: 0 var(--content-padding) 0 calc(var(--content-padding) + 2rem);
    color: var(--nav-link-color);
    font-size: calc(var(--nav-font-size) - 0.2rem);
    font-weight: 400;
    line-height: calc(var(--nav-link-height) - 0.8rem);
    text-decoration: none;
}
#navigation .link_collection a:hover { background-color: var(--nav-link-hover-bg); }

/* Close menu button */
#static_btn_close_menu {
    cursor: pointer;
    text-align: center;
    padding: 1.5rem;
    font-size: 1.4rem;
    color: var(--color-text-secondary);
    border-top: 1px solid var(--color-border);
    margin-top: 1rem;
}
#static_btn_close_menu:hover { background-color: var(--nav-link-hover-bg); }

/* Legal links at bottom of navigation */
#navigation_links_legal {
    list-style: none;
    margin: 0;
    padding: 1.5rem var(--content-padding);
    border-top: 1px solid var(--color-border);
    background-color: var(--nav-bg);
}
#navigation_links_legal a {
    display: inline-block;
    margin-right: 2rem;
    font-size: 1.3rem;
    color: var(--color-text-secondary);
    text-decoration: none;
}
#navigation_links_legal a:hover { text-decoration: underline; }

/* BEHAVIORAL CONTRACT: Hide top bar action buttons when nav is open */
html.overlay #top_content > .link.hig_static_language_switch { display: none; }
html.overlay #static_btn_search { display: none; }


/* ==========================================================================
   6. CONTENT BLOCKS
   ========================================================================== */

.content_block {
    position: relative;
    width: 100%;
    margin: 0 auto;
    padding: 2rem 0;
    box-sizing: border-box;
}

/* BEHAVIORAL CONTRACT: Hidden content blocks — JS controls visibility */
.content_block.fade_in { display: none; }
.content_block.slide_down { display: none; }
body.initial_page_request .content_block.fade_in { display: block; }

/* Content sections (from XML <text> elements rendered as <section>) */
.content_block section { margin-bottom: 2rem; }
.content_block section h3 { font-size: 2rem; margin-bottom: 0.8rem; }
.content_block section p { margin-bottom: 1rem; line-height: 1.7; }

/* Default link styling within content */
.content_block a.default_link { color: var(--color-accent); }
.content_block a.default_link:hover { text-decoration: underline; }

/* Image items */
.content_block img { margin-bottom: 1.6rem; border-radius: 2px; }
.content_block .image_meta { font-size: 1.3rem; color: var(--color-text-secondary); margin-top: -1rem; margin-bottom: 1.6rem; }


/* ==========================================================================
   7. FOOTER
   ========================================================================== */

#footer a { color: var(--footer-text); }
#footer a:hover { color: var(--color-text); text-decoration: underline; }

.default_footer_info_list { margin-bottom: 2rem; }
.default_footer_info_list h3 { font-size: 1.5rem; font-weight: 600; color: var(--color-text); margin-bottom: 0.8rem; }
.default_footer_info_list .title { font-weight: 600; margin-bottom: 0.3rem; }
.default_footer_info_list .email,
.default_footer_info_list .phone { display: block; margin-bottom: 0.3rem; }

.default_footer_link_list { margin-bottom: 2rem; }
.default_footer_link_list h3 { font-size: 1.5rem; font-weight: 600; color: var(--color-text); margin-bottom: 0.8rem; }
.default_footer_link_list ul { list-style: none; padding: 0; margin: 0; }
.default_footer_link_list li { margin-bottom: 0.4rem; }

.footer_info_text { margin-bottom: 2rem; }
.footer_info_text h4 { font-size: 1.4rem; font-weight: 600; margin-bottom: 0.4rem; }
.footer_info_text p { font-size: 1.3rem; line-height: 1.5; }

.social_links { margin-top: 1.5rem; }
.social_links a {
    display: inline-block;
    width: 3.2rem;
    height: 3.2rem;
    margin-right: 0.8rem;
    border-radius: 50%;
    background-color: var(--color-border);
    text-indent: -9999px;
    overflow: hidden;
}
.social_links a:hover { background-color: var(--color-text-secondary); }


/* ==========================================================================
   8. SCROLL-TO-TOP BUTTON
   ========================================================================== */

/* BEHAVIORAL CONTRACT: Hidden by default, shown by JS on scroll */
#hig_static_btn_scroll_top {
    display: none;
    position: fixed;
    bottom: 40px;
    right: 20px;
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    background-color: var(--color-bg);
    cursor: pointer;
    z-index: 110;
    padding: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
/* CSS-drawn up arrow */
#hig_static_btn_scroll_top::after {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--color-text);
    border-left: 2px solid var(--color-text);
    transform: rotate(45deg);
    margin: 16px auto 0;
}
#hig_static_btn_scroll_top:hover { background-color: var(--color-bg-alt); }


/* ==========================================================================
   9. GALLERY OVERLAY
   ========================================================================== */

/* BEHAVIORAL CONTRACT: Hidden by default, shown by JS */
#default_static_overlay_gallery_simple {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 1%;
    box-sizing: border-box;
    background-color: var(--color-overlay-bg);
    z-index: 200;
}

#default_static_overlay_gallery_simple .inner {
    position: relative;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding: 60px 10px 10px;
    background-color: var(--color-bg);
    border-radius: 4px;
}

#default_static_overlay_gallery_simple .image_container {
    width: 100%;
    height: calc(100% - 60px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

#default_static_overlay_gallery_simple .image_container img {
    max-width: 100%;
    max-height: calc(100% - 50px);
    object-fit: contain;
}

#default_static_overlay_gallery_simple .copyright_note {
    font-size: 1.2rem;
    color: var(--color-text-secondary);
    text-align: center;
    margin-top: 0.5rem;
}

#default_static_overlay_gallery_simple .image_meta {
    text-align: center;
    padding: 0.5rem 0;
}
#default_static_overlay_gallery_simple .image_meta .caption {
    font-size: 1.5rem;
    font-weight: 600;
}
#default_static_overlay_gallery_simple .image_meta .description {
    font-size: 1.3rem;
    color: var(--color-text-secondary);
}

/* Gallery controls */
#default_static_overlay_gallery_simple .btn_close,
#default_static_overlay_gallery_simple .btn_previous,
#default_static_overlay_gallery_simple .btn_next {
    position: absolute;
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    background-color: var(--color-bg);
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
#default_static_overlay_gallery_simple .btn_close:hover,
#default_static_overlay_gallery_simple .btn_previous:hover,
#default_static_overlay_gallery_simple .btn_next:hover {
    background-color: var(--color-bg-alt);
}

#default_static_overlay_gallery_simple .btn_close { top: 10px; right: 10px; }
/* CSS-drawn X for close */
#default_static_overlay_gallery_simple .btn_close::before,
#default_static_overlay_gallery_simple .btn_close::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 2px;
    background-color: var(--color-text);
}
#default_static_overlay_gallery_simple .btn_close::before { transform: rotate(45deg); }
#default_static_overlay_gallery_simple .btn_close::after { transform: rotate(-45deg); }

#default_static_overlay_gallery_simple .btn_previous { left: 10px; top: 50%; margin-top: -20px; }
#default_static_overlay_gallery_simple .btn_next { right: 10px; top: 50%; margin-top: -20px; }

/* CSS-drawn arrows for prev/next */
#default_static_overlay_gallery_simple .btn_previous::after,
#default_static_overlay_gallery_simple .btn_next::after {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--color-text);
    border-left: 2px solid var(--color-text);
}
#default_static_overlay_gallery_simple .btn_previous::after { transform: rotate(-45deg); margin-left: 4px; }
#default_static_overlay_gallery_simple .btn_next::after { transform: rotate(135deg); margin-right: 4px; }

#default_static_overlay_gallery_simple .loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.4rem;
    color: var(--color-text-secondary);
}


/* ==========================================================================
   10. CUSTOM SELECT
   ========================================================================== */

.hig_select {
    position: relative;
    display: inline-block;
    cursor: pointer;
    font-size: 1.5rem;
    user-select: none;
}

.hig_select .selected_option {
    position: relative;
    z-index: 0;
    padding: 0.6rem 3rem 0.6rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background-color: var(--color-bg);
    white-space: nowrap;
}
/* CSS-drawn chevron for select */
.hig_select .selected_option::after {
    content: "";
    position: absolute;
    right: 1rem;
    top: 50%;
    width: 7px;
    height: 7px;
    border-right: 2px solid var(--color-text-secondary);
    border-bottom: 2px solid var(--color-text-secondary);
    transform: translateY(-70%) rotate(45deg);
}

/* BEHAVIORAL CONTRACT: Options hidden by default, toggled by JS */
.hig_select .options {
    display: none;
    position: absolute;
    z-index: 1;
    top: 100%;
    left: 0;
    min-width: 100%;
    margin-top: 2px;
    padding: 0.4rem 0;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background-color: var(--color-bg);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    max-height: 300px;
    overflow-y: auto;
}

.hig_select .options .option {
    padding: 0.6rem 1rem;
    white-space: nowrap;
}
.hig_select .options .option:hover { background-color: var(--color-bg-alt); }
.hig_select .options .option.selected { font-weight: 600; color: var(--color-accent); }

.hig_select.disabled { opacity: 0.5; pointer-events: none; }


/* ==========================================================================
   11. BODY / HTML CLASS MODIFIERS (Behavioral Contracts)
   ========================================================================== */

/* --- Admin logged in: Displace content below admin bar (50px) + top bar --- */
body.hig_admin_logged_in #content {
    margin-top: calc(var(--top-height) + 50px);
}
body.hig_admin_logged_in #navigation {
    top: 50px;
}
body.hig_admin_logged_in #navigation.overlay {
    top: calc(var(--top-height) + 50px);
    height: calc(100% - var(--top-height) - 50px);
}

/* --- DC overlay mode: Content becomes absolute full-viewport --- */
body.dc_overlay #content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    margin: 0 auto;
    padding-top: 0;
    max-width: none;
    z-index: 101;
}

/* --- Overlay padding for chapter content blocks --- */
body.hig_overlay_padding .content_block[class*="chapter"] {
    padding-top: 226px;
}

/* --- Mobile device: Show mobile-only elements --- */
body.hig_is_mobile .share_buttons a.telegram { display: block; }
body.hig_is_mobile .share_buttons a.whatsapp { display: block; }

/* --- Disable user selection (during drag operations) --- */
body.disable_user_select #top,
body.disable_user_select #content,
body.disable_user_select #footer {
    user-select: none;
}

/* --- Canvas intro page --- */
body.canvas_intro { position: fixed; width: 100%; height: 100vh; overflow: hidden; }
body.canvas_intro #footer { display: none; }

/* --- Share buttons: Hidden by default on non-mobile --- */
.share_buttons a.telegram { display: none; }
.share_buttons a.whatsapp { display: none; }


/* ==========================================================================
   12. COOKIE NOTICE
   ========================================================================== */

#default_cookie_info {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: var(--color-primary);
    color: var(--color-text-inverse);
    z-index: 110;
    box-sizing: border-box;
    padding: 1.5rem var(--content-padding);
    text-align: center;
    font-size: 1.4rem;
    line-height: 1.5;
}
#default_cookie_info .info { max-width: var(--content-max-width); margin: 0 auto; }
#default_cookie_info .info p { margin-bottom: 0.8rem; }
#default_cookie_info .info_links { margin-bottom: 0.8rem; }
#default_cookie_info .info_links a { color: var(--color-text-inverse); text-decoration: underline; margin: 0 0.5rem; }
#default_cookie_info_btn_accept {
    display: inline-block;
    padding: 0.5rem 2rem;
    border: 1px solid var(--color-text-inverse);
    border-radius: 4px;
    cursor: pointer;
    color: var(--color-text-inverse);
}
#default_cookie_info_btn_accept:hover { background-color: rgba(255, 255, 255, 0.1); }


/* ==========================================================================
   13. FILTER & DATA API LIST BASICS
   ========================================================================== */

.default_filter_wrapper {
    margin-bottom: 2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.default_filter_wrapper .btn_remove_filter { display: none; cursor: pointer; font-size: 1.3rem; color: var(--color-accent); }


/* ==========================================================================
   14. RESPONSIVE BREAKPOINTS
   ========================================================================== */

@media (max-width: 800px) {

    h1 { font-size: 2.6rem; }
    h2 { font-size: 2.1rem; }
    h3 { font-size: 1.8rem; }
    h4 { font-size: 1.6rem; }

    #content { padding: 0 1.5rem; }
    #footer { padding: 2.5rem 1.5rem; }

    body.hig_overlay_padding .content_block[class*="chapter"] {
        padding-top: 216px;
    }
}

@media (max-width: 600px) {

    :root {
        --nav-font-size: 1.8rem;
        --nav-link-height: 4.4rem;
    }

    #default_static_overlay_gallery_simple { padding: 0; }
    #default_static_overlay_gallery_simple .inner { border-radius: 0; padding: 50px 5px 5px; }
}

@media (max-width: 480px) {

    :root {
        --nav-font-size: 1.6rem;
        --nav-link-height: 4rem;
    }

    h1 { font-size: 2.2rem; }
    h2 { font-size: 1.9rem; }

    #footer {
        text-align: center;
    }
    .default_footer_link_list ul { padding: 0; }
    .social_links { text-align: center; }
    .social_links a { margin: 0 0.4rem; }

    #navigation_links_legal { text-align: center; }
    #navigation_links_legal a { margin: 0 1rem; }
}
