:root {
    --color-primary: #0b4da1;
    --color-primary-strong: #073a79;
    --color-secondary: #2f86de;
    --color-accent: #ffbf3f;
    --color-green: #13946a;
    --color-coral: #ef6a4c;
    --color-bg: #f4f7fb;
    --color-bg-soft: #edf3fb;
    --color-surface: #ffffff;
    --color-surface-strong: #f8fbff;
    --color-text: #172436;
    --color-muted: #5f6f84;
    --par-dark: #313B50;
    --color-border: #d9e3ef;
    --color-white: #ffffff;
    --shadow-lg: 0 28px 70px rgba(11, 53, 114, 0.14);
    --shadow-md: 0 18px 38px rgba(10, 45, 95, 0.1);
    --shadow-sm: 0 12px 24px rgba(12, 42, 86, 0.08);
    --radius-xl: 28px;
    --radius-lg: 22px;
    --radius-md: 18px;
    --radius-sm: 14px;
    --container-width: 1320px;
    --par-blue: #3ea3ff;
    --par-yellow: #ffb829;
    --par-green: #0f8452;
    --par-red: #ea4242;
    --par-brown: #b86a2b;
    --menu-purple: #1b3fa6;
    --menu-purple-dark: #162f7d;
    --portal-spectrum: #ea4242;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: 'Manrope', sans-serif;
    background:
        radial-gradient(circle at top left, rgba(47, 134, 222, 0.09), transparent 30%),
        radial-gradient(circle at right, rgba(255, 191, 63, 0.08), transparent 26%),
        var(--color-bg);
    color: var(--color-text);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

main,
header,
footer,
section,
article,
nav {
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
}

.container {
    max-width: var(--container-width);
}

.container-galery {
    background: var(--color-muted);
}

:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 4px rgba(47, 134, 222, 0.2);
}

.skip-link {
    position: absolute;
    left: 1rem;
    top: -4rem;
    z-index: 1200;
    background: var(--color-white);
    color: var(--color-primary-strong);
    padding: 0.85rem 1rem;
    border-radius: 999px;
    font-weight: 800;
    box-shadow: var(--shadow-sm);
    transition: top 0.2s ease;
}

.skip-link:focus {
    top: 1rem;
}

.section-shell {
    padding: 3rem 0;
}

.section-shell--compact {
    padding-top: 2rem;
}

.section-shell--muted {
    background: linear-gradient(180deg, rgba(237, 243, 251, 0.7) 0%, rgba(244, 247, 251, 0.95) 100%);
}

.section-shell--dark {
    position: relative;
    overflow: hidden;
    color: var(--color-white);
    background:
        linear-gradient(135deg, rgba(7, 36, 76, 0.98), rgba(8, 57, 116, 0.96)),
        url('../images/pmp-hero-pattern.svg') center/cover no-repeat;
}

.section-shell--hero {
    position: relative;
    overflow: hidden;
    padding: 4.5rem 0 8rem;
    background:
        linear-gradient(135deg, rgba(8, 40, 86, 0.97) 0%, rgba(11, 77, 161, 0.94) 48%, rgba(47, 134, 222, 0.9) 100%),
        url('../images/pmp-hero-pattern.svg') center/cover no-repeat;
    color: var(--color-white);
}

.section-shell--hero::before,
.section-shell--dark::before {
    content: '';
    position: absolute;
    inset: auto auto -12rem -10rem;
    width: 24rem;
    height: 24rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0));
    pointer-events: none;
}

.hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #173a98 0%, #2047b0 38%, #2f6fd3 72%, #3ea3ff 100%);
    border-bottom: 6px solid var(--par-yellow);
}

.hero::before,
.hero::after {
    content: '';
    position: absolute;
    inset: auto;
    pointer-events: none;
    z-index: 0;
}

.hero::before {
    top: -220px;
    right: -180px;
    width: 620px;
    height: 620px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 184, 41, 0.2) 0%, rgba(255, 184, 41, 0.08) 32%, rgba(255, 184, 41, 0) 68%);
}

.hero::after {
    left: -170px;
    bottom: -220px;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.04) 35%, rgba(255, 255, 255, 0) 72%);
}

.hero .carousel-item {
    height: 460px;
}

.hero-slide {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    height: 460px;
    padding: 56px 0;
}

.hero-slide--blue {
    background: linear-gradient(135deg, #173a98 0%, #2047b0 38%, #2f6fd3 72%, #3ea3ff 100%);
}

.hero-slide--yellow {
    background: linear-gradient(135deg, #ffd978 0%, #ffcb4c 40%, #ffb829 100%);
}

.hero-slide--red {
    background: linear-gradient(135deg, #c93838 0%, #ea4242 56%, #ef6a4c 100%);
}

.hero h1,
.hero h2,
.hero h3,
.hero p,
.hero li,
.hero span,
.hero div {
    color: #fff;
}

.hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 10px 18px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-weight: 700;
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(7, 23, 74, 0.18);
}

.hero-title {
    margin-bottom: 18px;
    font-family: 'Sora', sans-serif;
    font-size: clamp(2.5rem, 5vw, 4.9rem);
    font-weight: 800;
    line-height: 0.95;
    letter-spacing: -0.03em;
}

.hero-title .mark-green {
    color: #58ef72;
    text-shadow: 0 4px 16px rgba(10, 20, 60, 0.18);
}

.hero-title .mark-yellow {
    color: #ffd24c;
    text-shadow: 0 4px 16px rgba(10, 20, 60, 0.18);
}

.hero-text {
    max-width: 620px;
    margin-bottom: 24px;
    font-size: 1.18rem;
    line-height: 1.45;
    opacity: 0.98;
}

.hero-panel {
    padding: 26px 28px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 28px;
    background: rgba(10, 30, 97, 0.34);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.16);
    backdrop-filter: blur(10px);
}

.hero-panel strong {
    display: block;
    margin-bottom: 10px;
    font-size: 1.1rem;
}

.hero-panel ul {
    margin: 0;
    padding-left: 18px;
}

.hero-panel li {
    margin-bottom: 8px;
}

.hero-slide--yellow h1,
.hero-slide--yellow h2,
.hero-slide--yellow h3,
.hero-slide--yellow p,
.hero-slide--yellow li,
.hero-slide--yellow span,
.hero-slide--yellow div {
    color: #364860;
}

.hero-slide--yellow .hero-kicker {
    border-color: rgba(54, 72, 96, 0.14);
    background: rgba(255, 255, 255, 0.34);
    color: #364860;
    box-shadow: 0 10px 26px rgba(173, 118, 23, 0.12);
}

.hero-slide--yellow .hero-panel {
    border-color: rgba(54, 72, 96, 0.1);
    background: rgba(255, 255, 255, 0.52);
    box-shadow: 0 18px 42px rgba(173, 118, 23, 0.14);
}

.hero-slide--yellow .hero-text,
.hero-slide--yellow .hero-panel p,
.hero-slide--yellow .hero-panel li {
    color: rgba(54, 72, 96, 0.94);
}

.hero-slide--red .hero-panel {
    background: rgba(104, 20, 20, 0.24);
}

.tag-big {
    display: inline-block;
    margin-bottom: 18px;
    padding: 14px 20px;
    border-radius: 999px;
    background: linear-gradient(90deg, #43e85c 0%, #69f26b 100%);
    color: #073312 !important;
    font-size: 1.05rem;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(24, 182, 76, 0.24);
}

.prize-box {
    display: inline-block;
    padding: 20px 26px;
    border-top: 4px solid var(--par-yellow);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.98);
    color: var(--menu-purple) !important;
    font-weight: 800;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.14);
}

.prize-box span {
    display: block;
    color: var(--menu-purple) !important;
    font-size: 1rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.prize-box strong {
    display: block;
    color: #173a98 !important;
    font-size: clamp(2.8rem, 5vw, 4.4rem);
    line-height: 0.95;
}

.section-label {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 1rem;
    padding: 0.55rem 0.85rem;
    border-radius: 999px;
    border: 1px solid rgba(11, 77, 161, 0.12);
    background: rgba(255, 255, 255, 0.78);
    color: var(--color-primary-strong);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.section-label--hero {
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
    color: var(--color-white);
}

.section-heading {
    max-width: 52rem;
    margin-bottom: 2.25rem;
}

.section-heading--compact {
    margin-bottom: 1.5rem;
}

.section-heading h2,
.hero__content h1,
.transparency-copy h2,
.site-footer__brand h2 {
    margin: 0;
    font-family: 'Sora', sans-serif;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.section-heading h2 {
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.section-heading p,
.hero__lead,
.transparency-copy p,
.site-footer__brand p {
    margin: 1rem 0 0;
    color: var(--color-muted);
    font-size: 1.06rem;
    line-height: 1.7;
}

.section-shell--dark .section-heading p,
.section-shell--dark .section-heading h2,
.section-shell--dark .section-label,
.transparency-copy p {
    color: rgba(255, 255, 255, 0.9);
}

.site-header {
    position: relative;
    z-index: 10;
}

.topbar {
    background: #f8f8f8;
    border-bottom: 1px solid #e4e4e4;
    font-size: 14px; padding: 10px 0;
}

.topbar__inner {
    gap: 0.9rem;
}

.masthead__inner,
.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.masthead__badges,
.hero__actions,
.hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.topbar a {
    display: inline-block;
    margin-right: 18px;
    padding: 10px 0;
    color: #666;
}

.topbar__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.topbar__social {
    gap: 0.45rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.topbar .social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    margin-right: 0;
    border-radius: 50%;
    background: #fff;
    border: 1px solid rgba(11, 77, 161, 0.08);
    color: var(--menu-purple);
    font-size: 1rem;
    box-shadow: 0 10px 20px rgba(13, 40, 82, 0.05);
}

.topbar-pill,
.contrast-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 0.8rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.08);
    color: var(--color-white);
}

.contrast-toggle {
    cursor: pointer;
}

.masthead {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(11, 77, 161, 0.08); padding: 20px 0;
}

.masthead__inner {
    padding: 1.4rem 0;
}

.brand-cluster {
    display: flex;
    align-items: center;
    min-width: 0;
}

.brand-cluster__logo {
    width: min(100%, 540px);
    height: auto;
    max-height: 116px;
    object-fit: contain;
    filter: drop-shadow(0 12px 26px rgba(12, 42, 86, 0.12));
}

.info-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 999px;
    background: var(--color-surface);
    border: 1px solid rgba(11, 77, 161, 0.1);
    box-shadow: var(--shadow-sm);
    color: var(--color-primary-strong);
    font-weight: 800;
}

.info-badge i {
    color: var(--color-secondary);
}

@media (min-width: 1200px) {
    .masthead__badges {
        display: grid;
        grid-template-columns: repeat(3, max-content);
        justify-content: end;
        align-items: stretch;
        flex-wrap: nowrap;
    }

    .info-badge {
        min-height: 3.6rem;
        white-space: nowrap;
    }
}

.navbar-portal {
    position: sticky;
    top: 0;
    z-index: 1020;
    padding: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 250, 255, 0.96) 100%);
    backdrop-filter: blur(12px);
    border-top: 5px solid transparent;
    border-image: linear-gradient(to right, #2f86de 25%, #c47b36 25% 50%, #ffbf3f 50% 75%, #ef6a4c 75%) 1;
    box-shadow: 0 14px 32px rgba(13, 40, 82, 0.06);
}

.site-header.is-scrolled + .navbar-portal,
.navbar-portal.is-scrolled {
    box-shadow: 0 18px 40px rgba(13, 40, 82, 0.12);
}

.navbar-portal .navbar-toggler {
    padding: 1rem 0;
}

.navbar-portal__brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 0;
    padding: 0;
    margin-right: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateX(-18px) scale(0.84);
    filter: blur(4px);
    pointer-events: none;
    transition: max-width 0.28s ease, margin-right 0.28s ease, opacity 0.28s ease, transform 0.28s ease, filter 0.28s ease;
    flex: 0 0 auto;
}

.navbar-portal__brand img {
    display: block;
    width: auto;
    height: 42px;
    max-width: 184px;
    object-fit: contain;
}

.navbar-portal.is-scrolled .navbar-portal__brand {
    max-width: 184px;
    padding: 0;
    margin-right: 1rem;
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: none;
    pointer-events: auto;
}

.navbar-portal .navbar-toggler-icon {
    filter: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2823,36,54,0.88%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-portal .navbar-nav {
    gap: 0.25rem;
    width: 100%;
}

.navbar-portal .nav-link {
    position: relative;
    padding: 1.05rem 1rem !important;
    color: rgba(49, 59, 80, 0.88);
    font-weight: 800;
    font-size: 0.886rem;
    letter-spacing: 0.01em;
    border-radius: 12px;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.navbar-portal .nav-link::before {
    content: '';
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 0.65rem;
    height: 3px;
    transform: scaleX(0);
    transform-origin: center;
    background: linear-gradient(
        90deg,
        var(--par-blue) 0%,
        var(--par-blue) 25%,
        var(--par-brown) 25%,
        var(--par-brown) 50%,
        var(--par-yellow) 50%,
        var(--par-yellow) 75%,
        var(--par-red) 75%,
        var(--par-red) 100%
    );
    transition: transform 0.2s ease;
}

.navbar-portal .nav-link:hover,
.navbar-portal .nav-link:focus-visible,
.navbar-portal .nav-link.is-current,
.navbar-portal .nav-link.show {
    color: var(--color-primary-strong);
    outline: 0;
    box-shadow: none;
}

.navbar-portal .nav-link:hover::before,
.navbar-portal .nav-link:focus-visible::before,
.navbar-portal .nav-link.is-current::before,
.navbar-portal .nav-link.show::before {
    transform: scaleX(1);
}

.navbar-portal .nav-link:focus,
.navbar-portal .nav-link:focus-visible,
.navbar-portal .dropdown-item:focus,
.navbar-portal .dropdown-item:focus-visible {
    outline: 0;
    box-shadow: none;
}

.navbar-portal .dropdown-menu {
    min-width: 280px;
    padding: 0.5rem;
    margin-top:0px;
    border: 1px solid rgba(217, 227, 239, 0.92);
    border-radius: 0 0 18px 18px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 36px rgba(26, 59, 116, 0.12);
}

.navbar-portal .dropdown-item {
    padding: 0.7rem 0.9rem;
    border-radius: 10px;
    color: #49566f;
    font-size: 0.78rem;
    font-weight: 700;
    white-space: normal;
}

.navbar-portal .dropdown-item:hover,
.navbar-portal .dropdown-item:focus-visible {
    background: #eef5ff;
    color: var(--color-primary-strong);
}

.nav-item--cta {
    margin-left: auto;
}

.portal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 3.25rem;
    padding: 0.85rem 1.4rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 800;
    line-height: 1;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.portal-btn:hover {
    transform: translateY(-1px);
}

.portal-btn--sm {
    min-height: 2.75rem;
    padding: 0.75rem 1.15rem;
}

.portal-btn--primary {
    background: linear-gradient(135deg, var(--color-accent), #ffd36f);
    color: #3a2800;
    box-shadow: 0 16px 30px rgba(255, 191, 63, 0.26);
}

.portal-btn--ghost {
    border-color: rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.08);
    color: var(--color-white);
}

.portal-btn--light {
    background: var(--color-white);
    color: var(--color-primary-strong);
    box-shadow: var(--shadow-sm);
}

.portal-btn--ghost-light {
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.08);
    color: var(--color-white);
}

.hero__grid,
.transparency-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(19rem, 0.85fr);
    gap: 1.75rem;
    align-items: end;
}

.hero__content h1 {
    font-size: clamp(2.8rem, 6vw, 5.25rem);
}

.hero__lead {
    max-width: 46rem;
    color: rgba(255, 255, 255, 0.88);
    font-size: 1.14rem;
}

.hero__chips {
    margin-top: 1.25rem;
}

.hero__chips span,
.service-panel__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.72rem 0.95rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: var(--color-white);
    font-weight: 800;
}

.hero__panel {
    border-radius: var(--radius-xl);
    padding: 1.5rem;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(14px);
    box-shadow: 0 28px 60px rgba(0, 0, 0, 0.18);
}

.hero-panel__head span {
    display: block;
    margin-bottom: 0.35rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero-panel__head strong {
    font-family: 'Sora', sans-serif;
    font-size: 1.55rem;
}

.hero-panel__items {
    display: grid;
    gap: 0.95rem;
    margin-top: 1.35rem;
}

.hero-panel__item {
    padding: 1rem;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.hero-panel__item h2 {
    margin: 0 0 0.45rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-white);
}

.hero-panel__item p,
.hero-panel__footer {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.6;
}

.hero-panel__footer {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 1.15rem;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2rem;
}

.metric-card {
    padding: 1.15rem 1.2rem;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(10px);
}

.metric-card strong {
    display: block;
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.6rem, 3vw, 2.3rem);
    line-height: 1;
}

.metric-card span {
    display: block;
    margin-top: 0.65rem;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.5;
}

.search-shell {
    position: relative;
    z-index: 2;
    margin-top: -2.1rem;
}

.service-search {
    max-width: 1020px;
    margin: 0 auto;
    border-radius: var(--radius-xl);
    padding: 1.1rem;
    background: var(--color-surface);
    box-shadow: var(--shadow-lg);
}

.service-search__form {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.service-search__form i {
    font-size: 1.45rem;
    color: var(--color-primary);
}

.service-search__form input {
    flex: 1 1 auto;
    border: 0;
    background: transparent;
    color: var(--color-text);
    font-size: 1.02rem;
    font-weight: 700;
}

.service-search__form input::placeholder {
    color: #74849a;
}

.service-search__form input:focus {
    outline: 0;
}

.service-search__feedback {
    margin: 0.85rem 0 0;
    color: var(--color-muted);
    font-size: 0.96rem;
}

.quick-grid,
.priority-grid,
.publication-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.quick-card,
.priority-card,
.news-card,
.publication-card,
.service-card,
.transparency-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}

.quick-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-height: 100%;
    padding: 1.4rem;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.quick-card:hover,
.priority-card:hover,
.service-card:hover,
.publication-card:hover,
.news-card:hover,
.transparency-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}

.quick-card::before,
.priority-card__marker,
.publication-card::before,
.service-card::before,
.news-card::before {
    content: '';
    display: block;
    width: 4.4rem;
    height: 0.4rem;
    border-radius: 999px;
    background: var(--tone);
}

.quick-card__icon,
.publication-card__icon,
.service-card__icon,
.transparency-card__icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(241, 246, 252, 0.98));
    color: var(--tone);
    font-size: 1.35rem;
}

.quick-card__body h3,
.priority-card h3,
.news-feature h3,
.news-card h3,
.service-card h4,
.transparency-card h3,
.publication-card h3,
.service-panel__header h3,
.site-footer__links h3,
.site-footer__contact h3 {
    margin: 0;
    font-size: 1.18rem;
    font-weight: 800;
    line-height: 1.35;
}

.quick-card__body p,
.priority-card p,
.news-card p,
.service-card p,
.transparency-card p,
.publication-card p,
.service-panel__header p {
    margin: 0.7rem 0 0;
    color: var(--color-muted);
    line-height: 1.65;
}

.quick-card__arrow {
    margin-top: auto;
    color: var(--tone);
    font-size: 1.05rem;
}

.priority-card {
    padding: 1.55rem;
}

.priority-card__top {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.priority-card__marker {
    flex: 0 0 auto;
    width: 3rem;
}

.priority-card ul,
.site-footer__links ul {
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.priority-card li,
.site-footer__links li {
    position: relative;
    padding-left: 1.15rem;
    color: var(--color-muted);
    line-height: 1.65;
}

.priority-card li + li,
.site-footer__links li + li {
    margin-top: 0.55rem;
}

.priority-card li::before,
.site-footer__links li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.72rem;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: var(--tone);
}

/*.news-showcase {*/
/*    background: #efefef;*/
/*    border-radius: 28px;*/
/*    padding: 26px;*/
/*}*/

.news-feature {
    position: relative;
    min-height: 420px;
    border-radius: 20px;
    overflow: hidden;
    background: var(--par-blue);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    align-items: end;
    padding: 28px;
    box-shadow: 0 10px 24px rgba(26, 59, 116, 0.08);
}

.news-feature::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10, 35, 78, 0.12) 0%, rgba(10, 35, 78, 0.58) 48%, rgba(10, 35, 78, 0.82) 100%);
    pointer-events: none;
}

.news-feature-content {
    position: relative;
    z-index: 2;
    max-width: 62%;
    color: #fff;
}

.news-feature h3 {
    line-height: 1.05;
    font-weight: 800;
    margin-bottom: 10px;
    color: #fff;
    font-size: clamp(1.55rem, 2.45vw, 2.15rem);
}

.news-feature p {
    font-size: 1rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.96);
    line-height: 1.45;
}

.news-accent {
    width: 92px;
    height: 7px;
    border-radius: 999px;
    background: var(--par-green);
    margin: 0 0 18px;
}

.news-mini {
    background: #fff;
    border: 1px solid #e9edf3;
    border-radius: 20px;
    overflow: hidden;
    min-height: 420px;
    box-shadow: 0 10px 24px rgba(26, 59, 116, 0.05);
}

.news-mini-thumb {
    height: 195px;
    background-color: transparent;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.news-mini-thumb.blue {
    background-color: transparent;
}

.news-mini-thumb.yellow {
    background-color: transparent;
}

.news-mini-body {
    padding: 22px 22px 24px;
}

.news-mini-body h4 {
    font-size: 1.1rem;
    line-height: 1.35;
    color: #4a4a4a;
    font-weight: 800;
    margin: 0;
}

.news-mini-bar {
    width: 96px;
    height: 6px;
    background: var(--par-blue);
    border-radius: 999px;
    margin-bottom: 18px;
}

.news-color-boxes {
    margin-top: 22px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.news-color-quick-card {
    min-height: 100%;
    padding: 1.55rem;
    border-radius: 24px;
}

.news-color-quick-card__media {
    overflow: hidden;
    border-radius: 1.25rem;
    background: #f3f7fc;
    box-shadow: inset 0 0 0 1px rgba(217, 227, 239, 0.9);
}

.news-color-quick-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.35rem;
}

.gallery-heading__title {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.gallery-heading__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    color: var(--portal-spectrum);
    font-size: 1.45rem;
}

.gallery-heading__copy h2 {
    margin: 0;
    font-family: 'Sora', sans-serif;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: #344860;
}

.gallery-heading__copy p {
    margin: 0.25rem 0 0;
    color: var(--color-muted);
    font-size: 1.08rem;
    font-style: italic;
}

.gallery-heading__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    padding: 0;
    border: 0;
    border-radius: 0.5rem;
    background: var(--portal-spectrum);
    color: #fff;
    font-size: 1.35rem;
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gallery-heading__action:hover,
.gallery-heading__action:focus-visible {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.gallery-board {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
    grid-template-areas:
        'hero story'
        'thumb-left thumb-right';
    gap: 1rem;
}

.gallery-panel {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 0;
    font: inherit;
    color: inherit;
    border: 1px solid rgba(217, 227, 239, 0.95);
    border-radius: 0.7rem;
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
    text-align: left;
    cursor: pointer;
    appearance: none;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.gallery-panel:hover,
.gallery-panel:focus-visible {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}

.gallery-panel--hero {
    grid-area: hero;
    min-height: 338px;
}

.gallery-panel--story {
    grid-area: story;
    min-height: 338px;
}

.gallery-panel--thumb-left {
    grid-area: thumb-left;
    min-height: 336px;
}

.gallery-panel--thumb-right {
    grid-area: thumb-right;
    min-height: 336px;
}

.gallery-panel__media {
    position: absolute;
    inset: 0;
    display: block;
    background: #edf3fb;
}

.gallery-panel__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-panel__date {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 2;
    display: grid;
    justify-items: center;
    gap: 0.12rem;
    width: 3.55rem;
    padding: 0.72rem 0.4rem 0.62rem;
    border-radius: 0.4rem;
    background: var(--portal-spectrum);
    color: #fff;
    box-shadow: 0 12px 24px rgba(26, 59, 116, 0.18);
}

.gallery-panel__date strong {
    font-family: 'Sora', sans-serif;
    font-size: 1.8rem;
    line-height: 0.95;
    letter-spacing: -0.04em;
}

.gallery-panel__date small {
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.gallery-panel--hero::after,
.gallery-panel--thumb-left::after,
.gallery-panel--thumb-right::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 34%;
    background: linear-gradient(180deg, rgba(10, 35, 78, 0) 0%, rgba(10, 35, 78, 0.2) 100%);
    pointer-events: none;
}

.gallery-panel__info-card,
.gallery-panel__story-card {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 2;
    display: grid;
    gap: 0.9rem;
    padding: 1rem 1.15rem 1.05rem;
    border-radius: 0.6rem;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 22px 42px rgba(10, 45, 95, 0.16);
    backdrop-filter: blur(10px);
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.24s ease, transform 0.24s ease;
}

.gallery-panel__info-card strong,
.gallery-panel__story-card strong {
    color: #33475f;
}

.gallery-panel__info-card strong {
    display: block;
    background: none;
    min-height: 0;
    padding: 0;
    border-radius: 0;
    color: #33475f;
    font-size: clamp(1.1rem, 1.7vw, 1.45rem);
    line-height: 1.28;
    text-transform: none;
    letter-spacing: normal;
}

.gallery-panel__info-text {
    color: var(--color-muted);
    line-height: 1.55;
}

.gallery-panel__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-height: 2.4rem;
    padding: 0.45rem 0.9rem;
    border-radius: 0.35rem;
    background: #ea4242;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.gallery-panel__story-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    justify-self: end;
    padding: 0.78rem 1.1rem;
    border-radius: 0.45rem;
    background: #ea4242;
    color: #fff;
    font-weight: 800;
}

.gallery-panel__story-card strong {
    font-size: clamp(1.25rem, 2vw, 1.9rem);
    line-height: 1.3;
}

.gallery-panel:hover .gallery-panel__info-card,
.gallery-panel:focus-visible .gallery-panel__info-card,
.gallery-panel--story:hover .gallery-panel__story-card,
.gallery-panel--story:focus-visible .gallery-panel__story-card {
    opacity: 1;
    transform: none;
}

.gallery-modal .modal-dialog {
    max-width: 1180px;
}

.gallery-modal__content {
    border: 0;
    border-radius: 28px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 28px 80px rgba(10, 45, 95, 0.24);
}

.gallery-modal__body {
    position: relative;
    padding: 0;
}

.gallery-modal__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(20rem, 0.78fr);
    min-height: min(76vh, 760px);
}

.gallery-modal__media {
    background: #edf3fb;
}

.gallery-modal__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-modal__copy {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 1rem;
    padding: 1.85rem;
}

.gallery-modal__eyebrow {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: 0.5rem 0.8rem;
    border-radius: 999px;
    background: rgba(47, 134, 222, 0.08);
    color: var(--color-primary);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.gallery-modal__copy h3 {
    margin: 0;
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.8rem, 2.5vw, 2.45rem);
    line-height: 1.08;
    color: var(--color-text);
}

.gallery-modal__copy p {
    margin: 0;
    color: var(--color-muted);
    line-height: 1.7;
}

.gallery-modal__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    padding: 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--shadow-sm);
    opacity: 1;
}

.gallery-modal__close:hover {
    background: #ffffff;
}

.video-shell {
    background:
        radial-gradient(circle at top right, rgba(239, 106, 76, 0.14), transparent 24%),
        linear-gradient(135deg, rgba(10, 16, 28, 0.98), rgba(24, 34, 53, 0.96));
}

.video-gallery {
    display: grid;
    grid-template-columns: minmax(0, 1.38fr) minmax(19rem, 0.78fr);
    gap: 1rem;
    align-items: stretch;
}

.video-gallery__featured,
.video-gallery__playlist {
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 44px rgba(2, 8, 18, 0.2);
}

.video-gallery__featured {
    overflow: hidden;
}

.video-stage {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.video-stage__media {
    display: block;
    aspect-ratio: 16 / 9;
    background: #101826;
}

.video-stage__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.video-stage__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 14, 23, 0.08) 0%, rgba(8, 14, 23, 0.34) 100%);
}

.video-stage__play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 7rem;
    height: 7rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: var(--color-primary-strong);
    font-size: 3rem;
    transform: translate(-50%, -50%);
    box-shadow: 0 20px 42px rgba(6, 12, 22, 0.3);
}

.video-stage__badge {
    position: absolute;
    left: 1.4rem;
    bottom: 1.25rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    min-height: 2.5rem;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: rgba(8, 14, 23, 0.72);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
}

.video-stage__caption {
    padding: 1.35rem 1.45rem 1.55rem;
}

.video-stage__meta {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.85rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.92rem;
    font-weight: 700;
}

.video-stage__caption h3 {
    margin: 0;
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.55rem, 2.6vw, 2.3rem);
    line-height: 1.18;
    color: #fff;
}

.video-stage__caption p {
    margin: 0.95rem 0 0;
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.7;
}

.video-gallery__playlist {
    padding: 1rem;
    display: grid;
    gap: 0.9rem;
    align-content: start;
}

.video-playlist__item {
    display: grid;
    grid-template-columns: 10rem minmax(0, 1fr);
    gap: 0.9rem;
    align-items: start;
    width: 100%;
    padding: 0.35rem;
    border: 0;
    border-radius: 18px;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.18s ease, transform 0.18s ease;
}

.video-playlist__item:hover,
.video-playlist__item:focus-visible,
.video-playlist__item.is-active {
    background: rgba(255, 255, 255, 0.06);
    transform: translateX(2px);
}

.video-playlist__thumb {
    position: relative;
    overflow: hidden;
    display: block;
    border-radius: 16px;
    aspect-ratio: 16 / 9;
    background: #101826;
}

.video-playlist__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.video-playlist__thumb-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 14, 23, 0.08) 0%, rgba(8, 14, 23, 0.42) 100%);
}

.video-playlist__play {
    position: absolute;
    left: 0.7rem;
    bottom: 0.7rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.94);
    color: var(--color-primary-strong);
    font-size: 1.2rem;
}

.video-playlist__time {
    position: absolute;
    right: 0.7rem;
    bottom: 0.85rem;
    z-index: 2;
    color: #fff;
    font-size: 0.86rem;
    font-weight: 800;
}

.video-playlist__body {
    display: grid;
    gap: 0.45rem;
    padding-top: 0.1rem;
}

.video-playlist__body strong {
    color: #fff;
    font-size: 1.02rem;
    line-height: 1.35;
}

.video-playlist__body span {
    color: rgba(255, 255, 255, 0.74);
    line-height: 1.5;
}

.publication-card {
    padding: 1.45rem;
}

.service-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-bottom: 1.3rem;
}

.service-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.95rem 1.2rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    color: var(--color-text);
    font-weight: 800;
    box-shadow: var(--shadow-sm);
}

.service-tab[aria-selected='true'] {
    border-color: transparent;
    background: var(--tone);
    color: var(--color-white);
}

.service-tab i {
    font-size: 1rem;
}

.service-panel {
    border-radius: var(--radius-xl);
    padding: 1.6rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}

.service-panel__header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.4rem;
}

.service-panel__badge {
    flex: 0 0 auto;
    background: rgba(11, 77, 161, 0.08);
    color: var(--color-primary-strong);
    border-color: rgba(11, 77, 161, 0.08);
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.service-card {
    padding: 1.35rem;
}

.service-card::before,
.publication-card::before {
    margin-bottom: 1rem;
}

.service-empty {
    margin: 1.25rem 0 0;
    padding: 1rem 1.15rem;
    border-radius: var(--radius-md);
    background: var(--color-bg-soft);
    color: var(--color-muted);
    font-weight: 700;
}

.transparency-copy .section-label {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
}

.transparency-copy h2 {
    font-size: clamp(2.2rem, 4vw, 3.45rem);
}

.transparency-points {
    display: grid;
    gap: 0.85rem;
    margin: 1.5rem 0 1.7rem;
}

.transparency-point {
    display: flex;
    align-items: start;
    gap: 0.8rem;
    color: rgba(255, 255, 255, 0.88);
    line-height: 1.65;
}

.transparency-point i {
    margin-top: 0.18rem;
    color: var(--color-accent);
}

.transparency-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.transparency-card {
    min-height: 100%;
    padding: 1.4rem;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.12);
    color: var(--color-white);
    box-shadow: none;
    backdrop-filter: blur(14px);
}

.transparency-card__icon {
    background: rgba(255, 255, 255, 0.1);
    color: var(--color-accent);
}

.transparency-card p {
    color: rgba(255, 255, 255, 0.8);
}

.publication-card {
    min-height: 100%;
}

.site-footer {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: 4rem 0 2rem;
    color: var(--color-text) !important;
    background: #ffffff !important;
    background-image: none !important;
    border-top: 5px solid transparent;
    border-image: linear-gradient(to right, #2f86de 25%, #c47b36 25% 50%, #ffbf3f 50% 75%, #ef6a4c 75%) 1;
    box-shadow: inset 0 1px 0 rgba(11, 77, 161, 0.05);
}

.site-footer::after {
    content: '';
    position: absolute;
    top: -7rem;
    right: -5rem;
    width: min(50vw, 820px);
    height: calc(100% + 10rem);
    background: url('../images/euamo.png') center / contain no-repeat;
    opacity: 0.08;
    pointer-events: none;
    z-index: 0;
    transform: rotate(-20deg);
    transform-origin: top right;
}

.site-footer > .container {
    position: relative;
    z-index: 1;
}

.site-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) repeat(2, minmax(16rem, 1fr));
    gap: 2rem;
}

.site-footer__brand,
.site-footer__contact {
    display: grid;
    gap: 1rem;
}

.site-footer__brand {
    grid-template-columns: 1fr;
    align-items: start;
    justify-items: center;
    width: 100%;
    max-width: none;
}

.site-footer__brand img {
    display: block;
    width: min(100%, 240px);
    max-width: 240px;
    height: auto;
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
}

.site-footer__links a,
.site-footer__contact p,
.site-footer__bottom small {
    color: var(--color-muted);
}

.site-footer__contact p {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin: 0;
}

.site-footer__bottom {
    margin-top: 2rem;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(11, 77, 161, 0.12);
}

.site-footer__bottom small {
    display: block;
}

.site-footer__links a:hover,
.site-footer__links a:focus-visible {
    color: var(--color-primary-strong);
}

.site-footer__contact i {
    color: var(--color-primary);
}

.tone-blue {
    --tone: var(--color-secondary);
}

.tone-gold {
    --tone: var(--color-accent);
}

.tone-brown {
    --tone: var(--par-brown);
}

.tone-green {
    --tone: var(--color-green);
}

.tone-coral {
    --tone: var(--color-coral);
}

.tone-red {
    --tone: var(--par-red);
}

.reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: none;
}

[hidden] {
    display: none !important;
}

body.theme-contrast {
    --color-primary: #ffd54f;
    --color-primary-strong: #ffef99;
    --color-secondary: #7db8ff;
    --color-accent: #ffd54f;
    --color-green: #77f4ca;
    --color-coral: #ff9477;
    --color-bg: #05070b;
    --color-bg-soft: #0d1522;
    --color-surface: #0f1622;
    --color-surface-strong: #101926;
    --color-text: #f9fbff;
    --color-muted: #d8e3f2;
    --color-border: rgba(255, 255, 255, 0.18);
    --shadow-lg: 0 0 0 1px rgba(255, 255, 255, 0.14), 0 28px 70px rgba(0, 0, 0, 0.4);
    --shadow-md: 0 0 0 1px rgba(255, 255, 255, 0.14), 0 18px 38px rgba(0, 0, 0, 0.32);
    --shadow-sm: 0 0 0 1px rgba(255, 255, 255, 0.14), 0 12px 24px rgba(0, 0, 0, 0.26);
}

body.theme-contrast .masthead,
body.theme-contrast .navbar-portal,
body.theme-contrast .service-search,
body.theme-contrast .quick-card,
body.theme-contrast .priority-card,
body.theme-contrast .gallery-panel,
body.theme-contrast .news-card,
body.theme-contrast .publication-card,
body.theme-contrast .service-panel,
body.theme-contrast .service-card {
    background: var(--color-surface);
}

body.theme-contrast .gallery-modal__content {
    background: var(--color-surface);
}

body.theme-contrast .gallery-panel__info-card,
body.theme-contrast .gallery-panel__story-card {
    background: rgba(5, 7, 11, 0.88);
}

body.theme-contrast .gallery-panel__info-card strong,
body.theme-contrast .gallery-panel__story-card strong,
body.theme-contrast .gallery-panel__info-text {
    color: var(--color-text);
}

body.theme-contrast .section-label:not(.section-label--hero),
body.theme-contrast .service-panel__badge {
    background: rgba(255, 255, 255, 0.06);
    color: var(--color-primary-strong);
}

@media (max-width: 1199.98px) {
    .navbar-portal__brand,
    .navbar-portal.is-scrolled .navbar-portal__brand {
        max-width: 0;
        padding: 0;
        margin-right: 0;
        opacity: 0;
        transform: translateX(-18px) scale(0.84);
        filter: blur(6px);
        pointer-events: none;
    }

    .masthead__inner,
    .hero__grid,
    .transparency-layout,
    .site-footer__grid {
        grid-template-columns: 1fr;
    }

    .video-gallery {
        grid-template-columns: 1fr;
    }

    .masthead__inner {
        display: grid;
    }

    .nav-item--cta {
        margin-left: 0;
        padding: 0.7rem 0 1rem;
    }

    .service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .priority-grid,
    .quick-grid,
    .publication-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .navbar-portal .navbar-nav {
        padding: 0.75rem 0 0.5rem;
    }

    .navbar-portal .container {
        min-height: 70px;
        align-items: center;
    }

    .navbar-portal .navbar-toggler {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 3.45rem;
        height: 3.45rem;
        padding: 0;
        margin: 0.75rem 0;
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 12px 24px rgba(13, 40, 82, 0.08);
    }
}

@media (min-width: 768px) and (max-width: 950px) {
    .topbar {
        padding: 10px 0;
    }

    .topbar__inner {
        display: flex !important;
        flex-wrap: wrap;
        align-items: flex-start !important;
        justify-content: flex-start;
        gap: 0.6rem 1rem;
    }

    .topbar__links {
        flex: 1 1 100%;
        justify-content: flex-start;
        gap: 0.4rem 1rem;
        row-gap: 0.35rem;
    }

    .topbar a {
        margin-right: 0;
        padding: 0;
        font-size: 0.95rem;
        line-height: 1.25;
    }

    .topbar__social {
        flex: 1 1 100%;
        justify-content: center;
    }

    .topbar .social a {
        width: 2.35rem;
        height: 2.35rem;
        font-size: 1rem;
        background: #fff;
        box-shadow: 0 10px 20px rgba(13, 40, 82, 0.05);
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .masthead__inner {
        justify-items: center;
        gap: 1rem;
        padding: 1.05rem 0 1.2rem;
    }

    .brand-cluster {
        width: 100%;
        justify-content: center;
    }

    .brand-cluster__logo {
        width: min(100%, 430px);
        max-height: 94px;
        margin: 0 auto;
    }

    .masthead__badges {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: min(100%, 760px);
        gap: 0.8rem;
    }

    .info-badge {
        justify-content: center;
        min-height: 4rem;
        padding: 0.9rem 0.95rem;
        text-align: center;
    }
}

@media (max-width: 991.98px) {
    .section-shell {
        padding: 2rem 0;
    }

    .transparency-grid {
        grid-template-columns: 1fr;
    }

    .news-color-boxes {
        grid-template-columns: repeat(2, 1fr);
    }

    .news-feature-content {
        max-width: 100%;
    }

    .news-feature,
    .news-mini {
        min-height: 340px;
    }

    .gallery-board {
        grid-template-columns: 1fr;
        grid-template-areas:
            'hero'
            'story'
            'thumb-left'
            'thumb-right';
    }

    .gallery-panel--hero,
    .gallery-panel--story,
    .gallery-panel--thumb-left,
    .gallery-panel--thumb-right {
        min-height: 320px;
    }

    .gallery-panel__info-card,
    .gallery-panel__story-card {
        opacity: 1;
        transform: none;
    }

    .gallery-modal__layout {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .gallery-modal__media img {
        max-height: 56vh;
    }

    .gallery-modal__copy {
        padding: 1.4rem;
    }

    .hero .carousel-item,
    .hero-slide {
        height: auto;
    }

    .hero-slide {
        padding: 40px 0 86px;
    }

    .service-panel__header {
        flex-direction: column;
    }
}

@media (max-width: 767.98px) {
    .site-footer__bottom,
    .service-search__form {
        flex-direction: column;
        align-items: stretch;
    }

    .masthead__inner {
        gap: 1rem;
        padding: 1rem 0 1.2rem;
    }

    .brand-cluster {
        width: 100%;
        align-items: center;
        justify-content: center;
    }

    .brand-cluster__logo {
        width: min(100%, 340px);
        max-height: 86px;
        margin: 0 auto;
    }

    .masthead__badges {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        gap: 0.75rem;
    }

    .masthead__badges .info-badge:last-child {
        grid-column: span 2;
    }

    .info-badge {
        justify-content: center;
        min-height: 4.1rem;
        padding: 0.9rem 0.85rem;
        font-size: 0.98rem;
    }

    .service-search {
        padding: 1rem;
        border-radius: var(--radius-lg);
    }

    .service-search__form {
        gap: 0.8rem;
    }

    .service-search__form input {
        width: 100%;
        font-size: 0.98rem;
    }

    .portal-btn,
    .service-tab {
        width: 100%;
    }

    .hero__actions,
    .hero__chips,
    .service-tabs {
        flex-direction: column;
    }

    .priority-grid,
    .quick-grid,
    .publication-grid,
    .metric-grid,
    .service-grid {
        grid-template-columns: 1fr;
    }

    .video-playlist__item {
        grid-template-columns: 1fr;
    }

    .video-playlist__body {
        padding-top: 0;
    }

    .video-stage__play {
        width: 5.1rem;
        height: 5.1rem;
        font-size: 2.3rem;
    }

    .section-heading h2,
    .transparency-copy h2,
    .gallery-heading__copy h2 {
        font-size: clamp(1.8rem, 9vw, 2.5rem);
    }

    .hero-title {
        font-size: clamp(2.25rem, 12vw, 3.5rem);
    }

    .site-footer {
        padding-top: 3.4rem;
    }

    .gallery-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .gallery-heading__action {
        width: 3rem;
        height: 3rem;
    }

    .gallery-panel--hero,
    .gallery-panel--story,
    .gallery-panel--thumb-left,
    .gallery-panel--thumb-right {
        min-height: 280px;
    }

    .gallery-panel__info-card,
    .gallery-panel__story-card {
        left: 0.75rem;
        right: 0.75rem;
        bottom: 0.75rem;
        padding: 0.9rem;
    }

    .gallery-panel__info-card strong,
    .gallery-panel__story-card strong {
        font-size: 1.08rem;
    }

    .gallery-panel__info-text {
        font-size: 0.92rem;
    }

    .site-footer::after {
        top: -2rem;
        right: -8rem;
        width: min(90vw, 430px);
        height: calc(100% + 4rem);
        opacity: 0.06;
        transform: rotate(18deg);
    }
}

@media (max-width: 767.98px) {
    .topbar {
        padding: 10px 0 0.9rem;
    }

    .topbar__inner {
        display: grid !important;
        gap: 0.85rem;
    }

    .topbar__links {
        flex-wrap: nowrap;
        gap: 0.55rem;
        overflow-x: auto;
        padding-bottom: 0.15rem;
        scrollbar-width: none;
    }

    .topbar__links::-webkit-scrollbar {
        display: none;
    }

    .topbar__links a {
        margin-right: 0;
        padding: 0.55rem 0.85rem;
        white-space: nowrap;
        border: 1px solid #e1e8f2;
        border-radius: 999px;
        background: #fff;
        box-shadow: 0 10px 20px rgba(13, 40, 82, 0.05);
    }

    .topbar__social {
        justify-content: center;
    }

    .topbar .social a {
        width: 2.35rem;
        height: 2.35rem;
        font-size: 1rem;
        background: #fff;
        box-shadow: 0 10px 20px rgba(13, 40, 82, 0.05);
    }

    .news-color-boxes {
        grid-template-columns: 1fr;
    }

    .news-feature {
        min-height: 300px;
        padding: 22px;
    }

    .news-feature h3 {
        font-size: 1.7rem;
    }

    .search-shell {
        margin-top: -1.2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .reveal {
        opacity: 1;
        transform: none;
    }
}
