:root {
    --site-ink: #10202d;
    --site-ink-soft: #41515e;
    --site-navy: #0b1c29;
    --site-navy-light: #173447;
    --site-accent: #9f2434;
    --site-accent-dark: #741927;
    --site-paper: #f4f1eb;
    --site-line: #dde3e6;
    --site-white: #ffffff;
    --site-radius: 1.1rem;
    --site-shadow: 0 22px 55px rgba(13, 31, 43, .11);
}

html { scroll-behavior: smooth; }

.site-body {
    background: #fff;
    color: var(--site-ink);
    display: flex;
    flex-direction: column;
    font-family: "Source Sans 3", sans-serif;
    margin: 0;
    min-height: 100vh;
}

.site-body h1,
.site-body h2,
.site-body h3,
.site-body h4,
.site-body h5,
.site-body h6 {
    background: transparent;
    color: inherit !important;
    font-family: "Manrope", sans-serif;
    text-align: inherit;
}

.site-body .modal-header h4 { color: #fff !important; }
.site-main { flex: 1 0 auto; }
.site-main-inner { padding: 2.5rem 0 4rem; }
.site-main-home { overflow: hidden; }
.site-content-container { min-height: 40vh; }

.site-header {
    background: #fff;
    box-shadow: 0 8px 28px rgba(11, 28, 41, .08);
    position: sticky;
    top: 0;
    z-index: 1030;
}

.site-topbar {
    background: var(--site-navy);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .76);
    font-size: .82rem;
    padding: .52rem 0;
}

.site-topbar-link { color: rgba(255, 255, 255, .82); text-decoration: none; }
.site-topbar-link:hover { color: #fff; }
.site-topbar-icon { color: #d79982; margin-right: .4rem; }
.site-topbar-message { letter-spacing: .04em; }

.site-navbar { background: rgba(255, 255, 255, .97); min-height: 82px; padding: .7rem 0; }
.site-brand { align-items: center; display: flex; gap: .8rem; max-width: 310px; }
.site-brand-logo { height: 48px; max-width: 112px; object-fit: contain; width: auto; }
.site-brand-copy { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.site-brand-copy strong { color: var(--site-navy); font-family: "Manrope", sans-serif; font-size: .92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-brand-copy small { color: #71808b; font-size: .68rem; margin-top: .28rem; }

.site-navbar .navbar-nav { gap: .15rem; }
.site-navbar .nav-link { border-radius: .55rem; color: #293c49; font-size: .91rem; font-weight: 600; padding: .7rem .72rem !important; transition: background-color .2s ease, color .2s ease; }
.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus { background: #edf1f3; color: var(--site-accent); }
.site-navbar .navbar-nav .nav-item:hover > .nav-link { background: #edf1f3 !important; color: var(--site-accent) !important; }
.site-nav-dropdown { align-items: center; display: flex; position: relative; }
.site-navbar .site-dropdown-main-link { padding-right: .45rem !important; }
.site-navbar .site-dropdown-toggle { background: transparent; border: 0; flex: 0 0 auto; margin-left: 0; padding-left: .35rem !important; padding-right: .55rem !important; }
.site-navbar .site-dropdown-toggle::after { margin-left: 0; }
.site-nav-dropdown > .site-dropdown { left: 0 !important; right: auto !important; top: 100% !important; transform: none !important; }
.site-dropdown { border: 0; border-radius: .85rem; box-shadow: 0 20px 45px rgba(11, 28, 41, .16); margin-top: 0; min-width: 220px; padding: .55rem; }
.site-dropdown .dropdown-item { border-radius: .55rem; color: #324651; font-size: .9rem; padding: .62rem .75rem; }
.site-dropdown .dropdown-item:hover { background: #eef2f4; color: var(--site-accent); }
.site-navbar .nav-item.dropdown .dropdown-menu .dropdown-item:hover { background: #eef2f4; color: var(--site-accent) !important; }

.site-nav-actions { align-items: center; display: flex; gap: .55rem; margin-left: 1rem; }
.site-nav-actions form { margin: 0; }
.site-nav-actions .btn { border-radius: .65rem; font-size: .84rem; font-weight: 700; padding: .66rem .88rem; white-space: nowrap; }
.site-btn-primary { background: var(--site-accent); border-color: var(--site-accent); color: #fff; }
.site-btn-primary:hover { background: var(--site-accent-dark); border-color: var(--site-accent-dark); color: #fff; }
.site-btn-outline { border-color: #c9d1d6; color: var(--site-navy); }
.site-btn-outline:hover { background: var(--site-navy); border-color: var(--site-navy); color: #fff; }
.site-navbar-toggler { border: 1px solid #d7dee2; border-radius: .7rem; padding: .5rem .65rem; }

@media (min-width: 992px) {
    .site-navbar .nav-item.dropdown::after {
        content: "";
        height: .7rem;
        left: 0;
        position: absolute;
        right: 0;
        top: calc(100% - .15rem);
    }

    .site-navbar .nav-item.dropdown:hover > .dropdown-menu {
        display: block;
        margin-top: .45rem;
    }
}

.site-footer { background: var(--site-navy); color: rgba(255, 255, 255, .67); flex-shrink: 0; }
.site-footer-accent { background: linear-gradient(90deg, var(--site-accent) 0 18%, #c0a06b 18% 31%, #31536a 31% 100%); height: 5px; }
.site-footer-brand { align-items: center; display: flex; gap: 1rem; }
.site-footer-brand img { background: #fff; border-radius: .7rem; height: 54px; max-width: 120px; object-fit: contain; padding: .35rem; }
.site-footer-brand div { display: flex; flex-direction: column; }
.site-footer-brand strong { color: #fff; font-family: "Manrope", sans-serif; font-size: 1.05rem; }
.site-footer-brand span { color: rgba(255, 255, 255, .52); font-size: .78rem; margin-top: .2rem; }
.site-footer-summary { font-size: .96rem; line-height: 1.7; margin: 1.4rem 0 0; max-width: 500px; }
.site-footer-title { color: #fff !important; font-size: .86rem; font-weight: 800; letter-spacing: .08em; margin: .3rem 0 1.15rem; text-transform: uppercase; }
.site-footer-links,
.site-footer-contact { list-style: none; margin: 0; padding: 0; }
.site-footer-links li + li { margin-top: .6rem; }
.site-footer-links a { color: rgba(255, 255, 255, .66); font-size: .92rem; text-decoration: none; }
.site-footer-links a:hover { color: #fff; }
.site-footer-contact li { display: flex; flex-direction: column; margin-bottom: .8rem; }
.site-footer-contact span { color: rgba(255, 255, 255, .4); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.site-footer-contact a,
.site-footer-contact p { color: rgba(255, 255, 255, .78); font-size: .9rem; margin: .18rem 0 0; text-decoration: none; }
.site-footer-bottom { background: #07151f; border-top: 1px solid rgba(255, 255, 255, .07); font-size: .78rem; padding: 1rem 0; }
.site-footer-signature { align-items: flex-end; display: flex; flex-direction: column; gap: .2rem; text-align: right; }
.site-footer-developer { color: rgba(255, 255, 255, .42); font-size: .7rem; letter-spacing: .01em; }

@media (max-width: 767.98px) {
    .site-footer-signature { align-items: center; text-align: center; }
}

@media (max-width: 991.98px) {
    .site-navbar .nav-item.dropdown:hover > .dropdown-menu:not(.show) { display: none; }
    .site-navbar { min-height: 72px; }
    .site-brand-copy small { display: none; }
    .site-navbar .navbar-collapse { border-top: 1px solid #e7ecef; margin-top: .8rem; padding: .8rem 0 .4rem; }
    .site-navbar .navbar-nav { align-items: stretch !important; }
    .site-nav-dropdown { display: grid; grid-template-columns: minmax(0, 1fr) 42px; }
    .site-nav-dropdown .site-dropdown-main-link { grid-column: 1; }
    .site-nav-dropdown .site-dropdown-toggle { grid-column: 2; margin: 0; width: 42px; }
    .site-nav-dropdown .site-dropdown { grid-column: 1 / -1; }
    .site-navbar .nav-link { padding: .72rem .5rem !important; }
    .site-nav-actions { align-items: stretch; border-top: 1px solid #e7ecef; flex-direction: column; margin: .7rem 0 0; padding-top: .8rem; }
    .site-nav-actions .btn,
    .site-nav-actions form { width: 100%; }
    .site-nav-actions form .btn { width: 100%; }
}

@media (max-width: 575.98px) {
    .site-brand { max-width: 230px; }
    .site-brand-logo { height: 40px; max-width: 82px; }
    .site-brand-copy strong { font-size: .78rem; }
    .site-main-inner { padding-top: 1.5rem; }
    #cookieConsentdiv { border-radius: 1rem 1rem 0 0; max-width: calc(100% - 1rem); width: 100%; }
}

/* Public content listing and breadcrumb */
.site-breadcrumb { margin: 0 0 1.5rem; overflow: hidden; }
.site-breadcrumb ol { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; margin: 0; padding: 0; }
.site-breadcrumb li { align-items: center; color: #77858e; display: flex; font-size: .78rem; font-weight: 600; min-width: 0; }
.site-breadcrumb li + li::before { color: #a9b3b9; content: "/"; margin-right: .45rem; }
.site-breadcrumb a { color: #526672; text-decoration: none; }
.site-breadcrumb a:hover { color: var(--site-accent); }
.site-breadcrumb li[aria-current="page"] { color: var(--site-accent); }

.posts-page-header,
.post-detail-header { border-bottom: 1px solid var(--site-line); margin-bottom: 2rem; padding: .5rem 0 1.6rem; }
.posts-page-eyebrow { color: var(--site-accent); display: block; font-family: "Manrope", sans-serif; font-size: .72rem; font-weight: 800; letter-spacing: .11em; margin-bottom: .7rem; text-transform: uppercase; }
.posts-page-header h1,
.post-detail-header h1 { color: var(--site-navy) !important; font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.035em; margin: 0; }
.posts-page-header p { color: var(--site-ink-soft); font-size: 1.05rem; line-height: 1.7; margin: .85rem 0 0; max-width: 780px; }
.post-detail-header time,
.post-list-copy time { color: #84919a; display: block; font-size: .78rem; margin-top: .65rem; }

.posts-list { display: grid; gap: 1.4rem; }
.post-list-item { align-items: stretch; background: #fff; border: 1px solid #e2e7e9; border-radius: var(--site-radius); box-shadow: 0 14px 38px rgba(13,31,43,.07); display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 34%); overflow: hidden; }
.post-list-copy { padding: 2rem; }
.post-list-copy h2 { font-size: 1.35rem; font-weight: 800; margin: 0; }
.post-list-copy h2 a { color: var(--site-navy); text-decoration: none; }
.post-list-copy h2 a:hover { color: var(--site-accent); }
.post-list-content { color: var(--site-ink-soft); display: -webkit-box; font-size: .98rem; line-height: 1.7; margin-top: 1rem; max-height: 5.1em; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.post-list-content > :last-child { margin-bottom: 0; }
.post-read-more { color: var(--site-accent); display: inline-flex; font-size: .85rem; font-weight: 800; gap: .45rem; margin-top: 1.2rem; text-decoration: none; }
.post-list-image { background: #e9eef0; display: block; min-height: 235px; overflow: hidden; }
.post-list-image img { height: 100%; object-fit: cover; transition: transform .35s ease; width: 100%; }
.post-list-item:hover .post-list-image img { transform: scale(1.035); }
.posts-empty-state { background: var(--site-paper); border: 1px dashed #cbd3d7; border-radius: var(--site-radius); padding: 3rem 1.5rem; text-align: center; }
.posts-empty-state strong { color: var(--site-navy); display: block; font-family: "Manrope", sans-serif; font-size: 1.15rem; }
.posts-empty-state p { color: var(--site-ink-soft); margin: .5rem 0 0; }

.post-detail-page { margin: 0 auto; max-width: 980px; }
.post-detail-image { background: #edf1f3; border-radius: var(--site-radius); margin: 0 0 2rem; max-height: 520px; overflow: hidden; }
.post-detail-image img { height: auto; max-height: 520px; object-fit: cover; width: 100%; }
.post-detail-content { color: var(--site-ink-soft); font-size: 1.05rem; line-height: 1.85; }
.post-detail-content img { border-radius: .8rem; height: auto; max-width: 100%; }
.post-detail-actions { border-top: 1px solid var(--site-line); display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.25rem; padding-top: 1.5rem; }

@media (max-width: 767.98px) {
    .post-list-item { grid-template-columns: 1fr; }
    .post-list-image { grid-row: 1; min-height: 210px; }
    .post-list-copy { padding: 1.4rem; }
    .site-breadcrumb ol { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .35rem; scrollbar-width: thin; }
    .site-breadcrumb li { flex: 0 0 auto; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
