/* Cismar styling on Cassiopeia / Bootstrap 5. No legacy Bootstrap stylesheet. */
:root {
    --cassiopeia-color-primary: #567448;
    --cassiopeia-color-link: #3a4e30;
    --cassiopeia-color-hover: #487471;
    --link-color: #3a4e30;
    --link-color-rgb: 58, 78, 48;
    --link-hover-color: #487471;
    --link-hover-color-rgb: 72, 116, 113;
    --body-color: #0a1829;
    --body-font-size: 1.25rem;
    --body-line-height: 1.5;
    --cassiopeia-font-family-body: 'Alegreya Sans', Arial, sans-serif;
    --cassiopeia-font-family-headings: 'Alegreya Sans', Arial, sans-serif;
}
body.site {
    background: radial-gradient(circle farthest-corner at 40% 34%, #f5f2e2, #ac8660 80%) fixed;
    color: #0a1829;
}
.container-header {
    margin: 40px auto 0;
    max-width: 1200px;
    background: transparent;
    background-image: none;
    box-shadow: none;
}
.container-header > .grid-child { width: 100%; padding: 0; }
.container-header .cismar-brand {
    display: flex;
    align-items: flex-end;
    width: 100%;
    height: 400px;
    padding: 0 0 14px;
    margin: 0;
    background-position: center top;
    background-size: cover;
    border-radius: 4px;
}
.container-header .cismar-brand .brand-logo {
    display: block;
    width: 100%;
    padding: 6px 2.5%;
    color: #3a4e30;
    background: rgba(255,255,255,.8);
    font-size: 25px;
    line-height: 1.2;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: anywhere;
}
.container-header .brand-logo img { max-height: 60px; width: auto; }
.container-header .container-nav {
    display: block;
    margin-top: 20px;
    padding: 4px;
    background: rgba(86,116,72,.3);
    border-radius: 4px;
}
.cismar-navigation { width: 100%; padding: 0; }
.cismar-navigation .navbar-toggler { margin: 6px; background: #fffdf7; }
.cismar-navigation .navbar-collapse { flex-wrap: wrap; }
.cismar-navigation .mod-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
    color: #3a4e30;
}
.container-header .cismar-navigation .mod-menu > li {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    background: rgba(255,255,255,.9);
    margin: 0;
}
.container-header .mod-menu a,
.container-header .mod-menu li > span {
    display: block;
    padding: 7px 15px;
    color: #3a4e30;
    text-decoration: none;
    white-space: normal;
}
.container-header .mod-menu a:hover,
.container-header .mod-menu a:focus-visible,
.cismar-navigation .mod-menu__toggle-sub:hover { color: white; background: #567448; }
.cismar-navigation .mod-menu__toggle-sub {
    padding: 7px 12px;
    color: #3a4e30;
    border: 0;
    background: transparent;
    font: inherit;
    cursor: pointer;
}
.cismar-navigation .mod-menu__toggle-sub .icon-chevron-down { display: none; }
.cismar-navigation .mod-menu__toggle-sub::after { content: "▾"; }
.cismar-navigation .mod-menu__toggle-sub[aria-expanded="true"]::after { content: "▴"; }
.container-header .mod-menu .mod-menu__sub a,
.container-header .mod-menu .mod-menu__sub span { color: #3a4e30; }
.cismar-navigation .mod-menu__sub {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    min-width: 260px;
    max-width: min(360px, 90vw);
    width: max-content;
    padding: 0;
    margin: 0;
    list-style: none;
    font-size: 1.25rem;
    background: #fffdf7;
    box-shadow: 0 5px 10px #0003;
}
.cismar-navigation .mod-menu__sub[aria-hidden="true"] { display: none; }
.cismar-navigation .mod-menu__sub[aria-hidden="false"] { display: block; }
.site-grid { max-width: 1200px; margin: 0 auto; }
/* Cassiopeia's outer spacer columns otherwise add a gutter inside this wrapper. */
body.site .site-grid {
    grid-template-columns: [full-start main-start] repeat(4, minmax(0, 1fr)) [main-end full-end];
    grid-template-areas:
        "banner banner banner banner"
        "top-a top-a top-a top-a"
        "top-b top-b top-b top-b"
        "side-l comp comp side-r"
        "bot-a bot-a bot-a bot-a"
        "bot-b bot-b bot-b bot-b";
}
.container-component { min-width: 0; }
.mod-breadcrumbs { padding: 6px 20px; background: #ffffff99; border-radius: 4px; }
.mod-breadcrumbs__divider { display: none; }
.mod-breadcrumbs a { color: #3a4e30; }
.com-content-article,
.com-content-category-blog,
.com-content-featured,
.com-content-category { padding: 20px 40px 60px; background: #ffffffcc; border-radius: 4px; }
h1 { font-size: 2.2rem; }
h2 { font-size: 1.7rem; }
h3 { font-size: 1.25rem; }
.container-sidebar-right .card,
.container-sidebar-left .card { background: #ffffffcc; border: 0; }
.container-footer { background: transparent; color: #0a1829; }
.container-footer > .grid-child { flex-wrap: wrap; gap: 1rem; }
.container-footer a { color: #3a4e30; }
.cismar-copyright { margin: 0; }
.back-to-top-link { background: #567448; color: white; }
@media (min-width: 992px) and (hover: hover) and (pointer: fine) {
    .cismar-navigation .mod-menu > li:hover > .mod-menu__sub { display: block; }
}
@media (max-width: 991.98px) {
    body.site .site-grid {
        grid-template-areas:
            "banner banner banner banner"
            "top-a top-a top-a top-a"
            "top-b top-b top-b top-b"
            "comp comp comp comp"
            "side-r side-r side-r side-r"
            "side-l side-l side-l side-l"
            "bot-a bot-a bot-a bot-a"
            "bot-b bot-b bot-b bot-b";
    }
    .container-header { margin-top: 20px; }
    .container-header, .site-grid { width: calc(100% - 32px); }
    .container-header .cismar-brand { height: 340px; }
    .container-header .cismar-brand .brand-logo { font-size: 22px; }
    .cismar-navigation .mod-menu { display: block; width: 100%; }
    .cismar-navigation .mod-menu > li { margin-top: 2px; }
    .cismar-navigation .mod-menu > li > a { flex: 1; }
    .cismar-navigation .mod-menu__sub {
        position: static;
        min-width: 0;
        max-width: none;
        width: 100%;
        padding-left: 16px;
        box-shadow: none;
    }
    .com-content-article, .com-content-category-blog,
    .com-content-featured, .com-content-category { padding: 20px; }
}
