@charset "UTF-8";

/* === Exhibition Gallery — Design System === */
:root {
    --eg-bg-base:       #080c14;
    --eg-bg-surface:    #0f1622;
    --eg-bg-card:       rgba(14, 20, 32, 0.85);
    --eg-border:        rgba(255, 255, 255, 0.07);
    --eg-accent:        #e14954;
    --eg-accent-purple: #9d72ff;
    --eg-text-muted:    #8094ae;
    --eg-text-soft:     #c0cadd;
    --eg-radius-card:   1rem;
    --eg-radius-hero:   1.5rem;
    --eg-transition:    0.2s ease;
}

.nk-menu-main > li > .nk-menu-link {
    text-transform: none !important;
}

.card-aside{
    min-height: auto !important;
}

.alert {
    margin-bottom: 1rem !important;
}

/* @formatter:off */
.flag{width:16px;height:11px;background:url(../images/flags.png) no-repeat;}
.flag.flag-ad{background-position:-16px 0;}
.flag.flag-ae{background-position:-32px 0;}
.flag.flag-af{background-position:-48px 0;}
.flag.flag-ag{background-position:-64px 0;}
.flag.flag-ai{background-position:-80px 0;}
.flag.flag-al{background-position:-96px 0;}
.flag.flag-am{background-position:-112px 0;}
.flag.flag-an{background-position:-128px 0;}
.flag.flag-ao{background-position:-144px 0;}
.flag.flag-ar{background-position:-160px 0;}
.flag.flag-as{background-position:-176px 0;}
.flag.flag-at{background-position:-192px 0;}
.flag.flag-au{background-position:-208px 0;}
.flag.flag-aw{background-position:-224px 0;}
.flag.flag-az{background-position:-240px 0;}
.flag.flag-ba{background-position:0 -11px;}
.flag.flag-bb{background-position:-16px -11px;}
.flag.flag-bd{background-position:-32px -11px;}
.flag.flag-be{background-position:-48px -11px;}
.flag.flag-bf{background-position:-64px -11px;}
.flag.flag-bg{background-position:-80px -11px;}
.flag.flag-bh{background-position:-96px -11px;}
.flag.flag-bi{background-position:-112px -11px;}
.flag.flag-bj{background-position:-128px -11px;}
.flag.flag-bm{background-position:-144px -11px;}
.flag.flag-bn{background-position:-160px -11px;}
.flag.flag-bo{background-position:-176px -11px;}
.flag.flag-br{background-position:-192px -11px;}
.flag.flag-bs{background-position:-208px -11px;}
.flag.flag-bt{background-position:-224px -11px;}
.flag.flag-bv{background-position:-240px -11px;}
.flag.flag-bw{background-position:0 -22px;}
.flag.flag-by{background-position:-16px -22px;}
.flag.flag-bz{background-position:-32px -22px;}
.flag.flag-ca{background-position:-48px -22px;}
.flag.flag-catalonia{background-position:-64px -22px;}
.flag.flag-cd{background-position:-80px -22px;}
.flag.flag-cf{background-position:-96px -22px;}
.flag.flag-cg{background-position:-112px -22px;}
.flag.flag-ch{background-position:-128px -22px;}
.flag.flag-ci{background-position:-144px -22px;}
.flag.flag-ck{background-position:-160px -22px;}
.flag.flag-cl{background-position:-176px -22px;}
.flag.flag-cm{background-position:-192px -22px;}
.flag.flag-cn{background-position:-208px -22px;}
.flag.flag-co{background-position:-224px -22px;}
.flag.flag-cr{background-position:-240px -22px;}
.flag.flag-cu{background-position:0 -33px;}
.flag.flag-cv{background-position:-16px -33px;}
.flag.flag-cw{background-position:-32px -33px;}
.flag.flag-cy{background-position:-48px -33px;}
.flag.flag-cz{background-position:-64px -33px;}
.flag.flag-de{background-position:-80px -33px;}
.flag.flag-dj{background-position:-96px -33px;}
.flag.flag-dk{background-position:-112px -33px;}
.flag.flag-dm{background-position:-128px -33px;}
.flag.flag-do{background-position:-144px -33px;}
.flag.flag-dz{background-position:-160px -33px;}
.flag.flag-ec{background-position:-176px -33px;}
.flag.flag-ee{background-position:-192px -33px;}
.flag.flag-eg{background-position:-208px -33px;}
.flag.flag-eh{background-position:-224px -33px;}
.flag.flag-england{background-position:-240px -33px;}
.flag.flag-er{background-position:0 -44px;}
.flag.flag-es{background-position:-16px -44px;}
.flag.flag-et{background-position:-32px -44px;}
.flag.flag-eu{background-position:-48px -44px;}
.flag.flag-fi{background-position:-64px -44px;}
.flag.flag-fj{background-position:-80px -44px;}
.flag.flag-fk{background-position:-96px -44px;}
.flag.flag-fm{background-position:-112px -44px;}
.flag.flag-fo{background-position:-128px -44px;}
.flag.flag-fr{background-position:-144px -44px;}
.flag.flag-ga{background-position:-160px -44px;}
.flag.flag-gb{background-position:-176px -44px;}
.flag.flag-gd{background-position:-192px -44px;}
.flag.flag-ge{background-position:-208px -44px;}
.flag.flag-gf{background-position:-224px -44px;}
.flag.flag-gg{background-position:-240px -44px;}
.flag.flag-gh{background-position:0 -55px;}
.flag.flag-gi{background-position:-16px -55px;}
.flag.flag-gl{background-position:-32px -55px;}
.flag.flag-gm{background-position:-48px -55px;}
.flag.flag-gn{background-position:-64px -55px;}
.flag.flag-gp{background-position:-80px -55px;}
.flag.flag-gq{background-position:-96px -55px;}
.flag.flag-gr{background-position:-112px -55px;}
.flag.flag-gs{background-position:-128px -55px;}
.flag.flag-gt{background-position:-144px -55px;}
.flag.flag-gu{background-position:-160px -55px;}
.flag.flag-gw{background-position:-176px -55px;}
.flag.flag-gy{background-position:-192px -55px;}
.flag.flag-hk{background-position:-208px -55px;}
.flag.flag-hm{background-position:-224px -55px;}
.flag.flag-hn{background-position:-240px -55px;}
.flag.flag-hr{background-position:0 -66px;}
.flag.flag-ht{background-position:-16px -66px;}
.flag.flag-hu{background-position:-32px -66px;}
.flag.flag-ic{background-position:-48px -66px;}
.flag.flag-id{background-position:-64px -66px;}
.flag.flag-ie{background-position:-80px -66px;}
.flag.flag-il{background-position:-96px -66px;}
.flag.flag-im{background-position:-112px -66px;}
.flag.flag-in{background-position:-128px -66px;}
.flag.flag-io{background-position:-144px -66px;}
.flag.flag-iq{background-position:-160px -66px;}
.flag.flag-ir{background-position:-176px -66px;}
.flag.flag-is{background-position:-192px -66px;}
.flag.flag-it{background-position:-208px -66px;}
.flag.flag-je{background-position:-224px -66px;}
.flag.flag-jm{background-position:-240px -66px;}
.flag.flag-jo{background-position:0 -77px;}
.flag.flag-jp{background-position:-16px -77px;}
.flag.flag-ke{background-position:-32px -77px;}
.flag.flag-kg{background-position:-48px -77px;}
.flag.flag-kh{background-position:-64px -77px;}
.flag.flag-ki{background-position:-80px -77px;}
.flag.flag-km{background-position:-96px -77px;}
.flag.flag-kn{background-position:-112px -77px;}
.flag.flag-kp{background-position:-128px -77px;}
.flag.flag-kr{background-position:-144px -77px;}
.flag.flag-kurdistan{background-position:-160px -77px;}
.flag.flag-kw{background-position:-176px -77px;}
.flag.flag-ky{background-position:-192px -77px;}
.flag.flag-kz{background-position:-208px -77px;}
.flag.flag-la{background-position:-224px -77px;}
.flag.flag-lb{background-position:-240px -77px;}
.flag.flag-lc{background-position:0 -88px;}
.flag.flag-li{background-position:-16px -88px;}
.flag.flag-lk{background-position:-32px -88px;}
.flag.flag-lr{background-position:-48px -88px;}
.flag.flag-ls{background-position:-64px -88px;}
.flag.flag-lt{background-position:-80px -88px;}
.flag.flag-lu{background-position:-96px -88px;}
.flag.flag-lv{background-position:-112px -88px;}
.flag.flag-ly{background-position:-128px -88px;}
.flag.flag-ma{background-position:-144px -88px;}
.flag.flag-mc{background-position:-160px -88px;}
.flag.flag-md{background-position:-176px -88px;}
.flag.flag-me{background-position:-192px -88px;}
.flag.flag-mg{background-position:-208px -88px;}
.flag.flag-mh{background-position:-224px -88px;}
.flag.flag-mk{background-position:-240px -88px;}
.flag.flag-ml{background-position:0 -99px;}
.flag.flag-mm{background-position:-16px -99px;}
.flag.flag-mn{background-position:-32px -99px;}
.flag.flag-mo{background-position:-48px -99px;}
.flag.flag-mp{background-position:-64px -99px;}
.flag.flag-mq{background-position:-80px -99px;}
.flag.flag-mr{background-position:-96px -99px;}
.flag.flag-ms{background-position:-112px -99px;}
.flag.flag-mt{background-position:-128px -99px;}
.flag.flag-mu{background-position:-144px -99px;}
.flag.flag-mv{background-position:-160px -99px;}
.flag.flag-mw{background-position:-176px -99px;}
.flag.flag-mx{background-position:-192px -99px;}
.flag.flag-my{background-position:-208px -99px;}
.flag.flag-mz{background-position:-224px -99px;}
.flag.flag-na{background-position:-240px -99px;}
.flag.flag-nc{background-position:0 -110px;}
.flag.flag-ne{background-position:-16px -110px;}
.flag.flag-nf{background-position:-32px -110px;}
.flag.flag-ng{background-position:-48px -110px;}
.flag.flag-ni{background-position:-64px -110px;}
.flag.flag-nl{background-position:-80px -110px;}
.flag.flag-no{background-position:-96px -110px;}
.flag.flag-np{background-position:-112px -110px;}
.flag.flag-nr{background-position:-128px -110px;}
.flag.flag-nu{background-position:-144px -110px;}
.flag.flag-nz{background-position:-160px -110px;}
.flag.flag-om{background-position:-176px -110px;}
.flag.flag-pa{background-position:-192px -110px;}
.flag.flag-pe{background-position:-208px -110px;}
.flag.flag-pf{background-position:-224px -110px;}
.flag.flag-pg{background-position:-240px -110px;}
.flag.flag-ph{background-position:0 -121px;}
.flag.flag-pk{background-position:-16px -121px;}
.flag.flag-pl{background-position:-32px -121px;}
.flag.flag-pm{background-position:-48px -121px;}
.flag.flag-pn{background-position:-64px -121px;}
.flag.flag-pr{background-position:-80px -121px;}
.flag.flag-ps{background-position:-96px -121px;}
.flag.flag-pt{background-position:-112px -121px;}
.flag.flag-pw{background-position:-128px -121px;}
.flag.flag-py{background-position:-144px -121px;}
.flag.flag-qa{background-position:-160px -121px;}
.flag.flag-re{background-position:-176px -121px;}
.flag.flag-ro{background-position:-192px -121px;}
.flag.flag-rs{background-position:-208px -121px;}
.flag.flag-ru{background-position:-224px -121px;}
.flag.flag-rw{background-position:-240px -121px;}
.flag.flag-sa{background-position:0 -132px;}
.flag.flag-sb{background-position:-16px -132px;}
.flag.flag-sc{background-position:-32px -132px;}
.flag.flag-scotland{background-position:-48px -132px;}
.flag.flag-sd{background-position:-64px -132px;}
.flag.flag-se{background-position:-80px -132px;}
.flag.flag-sg{background-position:-96px -132px;}
.flag.flag-sh{background-position:-112px -132px;}
.flag.flag-si{background-position:-128px -132px;}
.flag.flag-sk{background-position:-144px -132px;}
.flag.flag-sl{background-position:-160px -132px;}
.flag.flag-sm{background-position:-176px -132px;}
.flag.flag-sn{background-position:-192px -132px;}
.flag.flag-so{background-position:-208px -132px;}
.flag.flag-somaliland{background-position:-224px -132px;}
.flag.flag-sr{background-position:-240px -132px;}
.flag.flag-ss{background-position:0 -143px;}
.flag.flag-st{background-position:-16px -143px;}
.flag.flag-sv{background-position:-32px -143px;}
.flag.flag-sx{background-position:-48px -143px;}
.flag.flag-sy{background-position:-64px -143px;}
.flag.flag-sz{background-position:-80px -143px;}
.flag.flag-tc{background-position:-96px -143px;}
.flag.flag-td{background-position:-112px -143px;}
.flag.flag-tf{background-position:-128px -143px;}
.flag.flag-tg{background-position:-144px -143px;}
.flag.flag-th{background-position:-160px -143px;}
.flag.flag-tibet{background-position:-176px -143px;}
.flag.flag-tj{background-position:-192px -143px;}
.flag.flag-tk{background-position:-208px -143px;}
.flag.flag-tl{background-position:-224px -143px;}
.flag.flag-tm{background-position:-240px -143px;}
.flag.flag-tn{background-position:0 -154px;}
.flag.flag-to{background-position:-16px -154px;}
.flag.flag-tr{background-position:-32px -154px;}
.flag.flag-tt{background-position:-48px -154px;}
.flag.flag-tv{background-position:-64px -154px;}
.flag.flag-tw{background-position:-80px -154px;}
.flag.flag-tz{background-position:-96px -154px;}
.flag.flag-ua{background-position:-112px -154px;}
.flag.flag-ug{background-position:-128px -154px;}
.flag.flag-um{background-position:-144px -154px;}
.flag.flag-en{background-position:-160px -154px;}
.flag.flag-uy{background-position:-176px -154px;}
.flag.flag-uz{background-position:-192px -154px;}
.flag.flag-va{background-position:-208px -154px;}
.flag.flag-vc{background-position:-224px -154px;}
.flag.flag-ve{background-position:-240px -154px;}
.flag.flag-vg{background-position:0 -165px;}
.flag.flag-vi{background-position:-16px -165px;}
.flag.flag-vn{background-position:-32px -165px;}
.flag.flag-vu{background-position:-48px -165px;}
.flag.flag-wales{background-position:-64px -165px;}
.flag.flag-wf{background-position:-80px -165px;}
.flag.flag-ws{background-position:-96px -165px;}
.flag.flag-xk{background-position:-112px -165px;}
.flag.flag-ye{background-position:-128px -165px;}
.flag.flag-yt{background-position:-144px -165px;}
.flag.flag-za{background-position:-160px -165px;}
.flag.flag-zanzibar{background-position:-176px -165px;}
.flag.flag-zm{background-position:-192px -165px;}
.flag.flag-zw{background-position:-208px -165px;}
/* @formatter:on */

.footer-link-item {
    color: #8094ae !important;
    font-size: 0.8rem !important;
    list-style: none !important;
    background-color: transparent !important;
}

/* --- Gallery public shell: sticky footer via flex-grow (content fills remaining viewport) --- */
.nk-app-root .nk-wrap.exhibition-public-wrap > .nk-content {
    flex-grow: 1;
    padding-bottom: 3rem;
}

.nk-app-root .nk-wrap.exhibition-public-wrap > .nk-footer {
    overflow: auto;
}

/* =========================================================
   HOMEPAGE — Photography Gallery
   ========================================================= */

/* === Full-viewport hero: featured exhibition === */
.eg-home-hero {
    position: relative;
    border-radius: var(--eg-radius-hero);
    overflow: hidden;
    margin-bottom: 2.5rem;
    display: block;
    text-decoration: none;
}

/* Natural-flow wrapper — its height equals the image height → zero crop */
.eg-home-hero__bg {
    display: block;
    line-height: 0;        /* collapse inline whitespace */
}

.eg-home-hero__bg img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.eg-home-hero:hover .eg-home-hero__bg img,
.eg-home-hero:focus-visible .eg-home-hero__bg img {
    transform: scale(1.03);
}

/* No-image fallback — use ratio as placeholder */
.eg-home-hero--no-img .eg-home-hero__bg {
    aspect-ratio: 1270 / 445;
    min-height: 200px;
    background: linear-gradient(135deg, #0b1525 0%, #1a0d30 100%);
}

.eg-home-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.18) 0%,
        rgba(0, 0, 0, 0.12) 30%,
        rgba(0, 0, 0, 0.62) 60%,
        rgba(0, 0, 0, 0.96) 100%
    );
}

/* Side vignette for depth */
.eg-home-hero__overlay::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0.45) 0%,
        transparent 55%
    );
}

.eg-home-hero__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 2rem 1.75rem;
    z-index: 1;
}

@media (min-width: 768px) {
    .eg-home-hero__content {
        padding: 2.5rem;
        max-width: 88%;
    }
}

@media (min-width: 1200px) {
    .eg-home-hero__content {
        padding: 3rem;
        max-width: 80%;
    }
}

.eg-home-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--eg-accent);
    margin-bottom: 1rem;
}

.eg-home-hero__eyebrow::before {
    content: '';
    display: inline-block;
    width: 1.75rem;
    height: 2px;
    background: var(--eg-accent);
    border-radius: 2px;
    flex-shrink: 0;
}

.eg-home-hero__title {
    font-size: clamp(1.125rem, 2.25vw, 1.75rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.25;
    letter-spacing: -0.01em;
    margin-bottom: 0.75rem;
    overflow-wrap: break-word;
    word-break: break-word;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9), 0 4px 20px rgba(0, 0, 0, 0.7);
}

.eg-home-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 1.25rem;
    margin-bottom: 2rem;
    color: #fff;
    font-size: 0.875rem;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.9);
}

.eg-home-hero__meta-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.eg-home-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.8rem 1.75rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #fff;
    background: var(--eg-accent);
    border-radius: 0.5rem;
    text-decoration: none;
    transition: background var(--eg-transition), transform var(--eg-transition), box-shadow var(--eg-transition);
    box-shadow: 0 4px 24px rgba(225, 73, 84, 0.4);
}

.eg-home-hero:hover .eg-home-hero__cta,
.eg-home-hero:focus-visible .eg-home-hero__cta {
    background: #c8404b;
    transform: translateY(-1px);
    box-shadow: 0 6px 32px rgba(225, 73, 84, 0.5);
}

/* Scroll indicator — bottom-right */
.eg-home-hero__scroll {
    position: absolute;
    bottom: 1.75rem;
    right: 2rem;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    color: rgba(255, 255, 255, 0.3);
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.eg-home-hero__scroll-dot {
    width: 1px;
    height: 2rem;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 1px;
    position: relative;
    overflow: hidden;
}

.eg-home-hero__scroll-dot::after {
    content: '';
    position: absolute;
    top: -100%;
    left: 0;
    right: 0;
    height: 40%;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 1px;
    animation: eg-scroll-dot 2s ease-in-out infinite;
}

@keyframes eg-scroll-dot {
    0%   { top: -40%; }
    100% { top: 100%; }
}

/* === Gallery grid: remaining exhibitions === */
.eg-home-gallery {
    margin-bottom: 3rem;
}

.eg-home-gallery__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.eg-home-gallery__title {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--eg-text-muted);
    margin: 0;
}

.eg-home-gallery__count {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--eg-text-muted);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--eg-border);
    border-radius: 99px;
    padding: 0.15rem 0.65rem;
    white-space: nowrap;
}

/* CSS Grid — uniform 3-column layout */
.eg-home-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(2, 1fr);   /* 2-col on small phones */
}

@media (min-width: 640px) {
    .eg-home-grid {
        gap: 1.125rem;
        grid-template-columns: repeat(3, 1fr);   /* always 3 from 640 px up */
    }
}

/* Each card */
.eg-home-card {
    display: block;
    text-decoration: none;
    position: relative;
    border-radius: var(--eg-radius-card);
    overflow: hidden;
    background: var(--eg-bg-surface);
    outline: none;
}

.eg-home-card:focus-visible {
    box-shadow: 0 0 0 2px var(--eg-accent);
}

.eg-home-card__thumb {
    display: block;
    line-height: 0;
}

.eg-home-card__thumb img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.eg-home-card:hover .eg-home-card__thumb img,
.eg-home-card:focus-visible .eg-home-card__thumb img {
    transform: scale(1.04);
}

/* Text overlay — always slightly visible, fully visible on hover */
.eg-home-card__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.125rem;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.92) 0%, rgba(0, 0, 0, 0.35) 50%, rgba(0, 0, 0, 0.08) 80%, transparent 100%);
    transition: background var(--eg-transition);
}

.eg-home-card:hover .eg-home-card__overlay,
.eg-home-card:focus-visible .eg-home-card__overlay {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.96) 0%, rgba(0, 0, 0, 0.5) 55%, rgba(0, 0, 0, 0.12) 85%, transparent 100%);
}

.eg-home-card__title {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.25;
    margin-bottom: 0.35rem;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.95), 0 2px 8px rgba(0, 0, 0, 0.7);
}


.eg-home-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem 0.875rem;
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.eg-home-card:hover .eg-home-card__meta,
.eg-home-card:focus-visible .eg-home-card__meta {
    opacity: 1;
    transform: translateY(0);
}

/* Always show meta on touch devices */
@media (hover: none) {
    .eg-home-card__meta {
        opacity: 1;
        transform: none;
    }
}

.eg-home-card__meta-item {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

/* No image fallback — keep a ratio placeholder */
.eg-home-card--no-img .eg-home-card__thumb {
    aspect-ratio: 1270 / 445;
    background: linear-gradient(135deg, #0d1a35 0%, #1a0d25 100%);
}

.eg-home-card--no-img .eg-home-card__overlay {
    background: rgba(0, 0, 0, 0.3);
}

.eg-home-card--no-img .eg-home-card__meta {
    opacity: 1;
    transform: none;
}

.eg-home-card__no-img-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -60%);
    font-size: 2.5rem;
    color: rgba(255, 255, 255, 0.05);
    pointer-events: none;
}

/* === Pagination === */
.eg-home-pagination {
    display: flex;
    justify-content: center;
    padding: 1.5rem 0 2rem;
}

/* === Dark Bootstrap pagination override === */
.pagination {
    --bs-pagination-bg:                  var(--eg-bg-surface);
    --bs-pagination-border-color:        var(--eg-border);
    --bs-pagination-color:               var(--eg-text-soft);
    --bs-pagination-hover-bg:            rgba(255, 255, 255, 0.06);
    --bs-pagination-hover-border-color:  rgba(255, 255, 255, 0.12);
    --bs-pagination-hover-color:         #fff;
    --bs-pagination-active-bg:           var(--eg-accent);
    --bs-pagination-active-border-color: var(--eg-accent);
    --bs-pagination-active-color:        #fff;
    --bs-pagination-disabled-bg:         var(--eg-bg-surface);
    --bs-pagination-disabled-border-color: var(--eg-border);
    --bs-pagination-disabled-color:      #3a4a66;
    --bs-pagination-focus-box-shadow:    0 0 0 2px rgba(225, 73, 84, 0.35);
    gap: 0.25rem;
}

.pagination .page-link {
    border-radius: 0.5rem !important;
}

/* === Homepage search bar === */
.eg-search-bar .form-control {
    background: var(--eg-bg-surface);
    border-color: var(--eg-border);
    color: #fff;
    border-radius: 0.5rem 0 0 0.5rem;
}

.eg-search-bar .form-control::placeholder { color: var(--eg-text-muted); }

.eg-search-bar .form-control:focus {
    background: var(--eg-bg-surface);
    border-color: rgba(255, 255, 255, 0.18);
    color: #fff;
    box-shadow: 0 0 0 2px rgba(225, 73, 84, 0.2);
}

.eg-search-bar .btn-outline-secondary {
    border-color: var(--eg-border);
    color: var(--eg-text-muted);
    background: var(--eg-bg-surface);
}

.eg-search-bar .btn-outline-secondary:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
}

/* === Empty state === */
.eg-home-empty {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 4rem 1.5rem;
}

.eg-home-empty__icon {
    font-size: 3.5rem;
    color: rgba(255, 255, 255, 0.05);
    margin-bottom: 1.5rem;
}

.eg-home-empty__title {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--eg-text-soft);
    margin-bottom: 0.625rem;
}

.eg-home-empty__body {
    font-size: 0.9375rem;
    color: var(--eg-text-muted);
    max-width: 28rem;
    line-height: 1.65;
}

/* --- Gallery exhibition UX (public) --- */
.exhibition-shell .breadcrumb {
    --bs-breadcrumb-divider: '/';
}

.exhibition-hero .h4 {
    line-height: 1.3;
}

/* Dashlite targets .nav-item.active .nav-link — keep active on <li>. Dark theme tab contrast. */
.exhibition-tabs .nav-tabs {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.exhibition-tabs .nav-tabs .nav-link {
    color: #c0cadd;
    padding-top: 1.125rem;
    padding-bottom: 1.125rem;
}

.exhibition-tabs .nav-tabs .nav-link:hover {
    color: #fff;
}

.exhibition-tabs .nav-tabs .nav-item.active .nav-link,
.exhibition-tabs .nav-tabs .nav-link.active {
    color: #9d72ff;
}

.exhibition-tabs .nav-tabs .nav-link:after {
    background: #9d72ff;
}

/* Only the server-marked tab shows the indicator (defense in depth if other scripts touch .nav-link). */
.exhibition-tabs .nav-tabs .nav-item:not(.active) .nav-link:after {
    opacity: 0 !important;
}

.exhibition-tabs .nav-tabs .nav-item.active .nav-link:after {
    opacity: 1;
}

.exhibition-cover {
    max-height: 520px;
    object-fit: cover;
    aspect-ratio: 4 / 3;
}

.exhibition-prose {
    font-size: 1rem;
    line-height: 1.65;
}

.exhibition-prose img {
    max-width: 100%;
    height: auto;
}

.exhibition-doc-icon {
    font-size: 2.25rem;
    line-height: 1;
}

.exhibition-work-thumb {
    height: 200px;
    background: rgba(0, 0, 0, 0.2);
}

.exhibition-work-img {
    object-fit: cover;
}

.exhibition-work-card:hover .exhibition-work-thumb,
.exhibition-work-card:focus-within .exhibition-work-thumb {
    filter: brightness(1.05);
}

.exhibition-work-zoom {
    opacity: 0;
    transition: opacity 0.15s ease;
}

.exhibition-work-card:hover .exhibition-work-zoom,
.exhibition-work-card:focus-within .exhibition-work-zoom {
    opacity: 1;
}

.exhibition-author-card:hover,
.exhibition-author-card:focus-visible {
    border-color: rgba(133, 79, 255, 0.45);
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.25);
}

/* =========================================================
   MODERN REDESIGN — all eg-* components
   ========================================================= */

/* --- Unified button system --- */

/* eg-btn-icon: circular icon-only button for navigation (back, home, close) */
.eg-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.04);
    color: var(--eg-text-soft);
    text-decoration: none;
    font-size: 1rem;
    flex-shrink: 0;
    transition: color var(--eg-transition), border-color var(--eg-transition), background var(--eg-transition);
}

.eg-btn-icon:hover,
.eg-btn-icon:focus-visible {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.09);
    outline: none;
}

/* eg-btn-ghost: text + icon button for empty-state CTAs and secondary actions */
.eg-btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1.125rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--eg-text-soft);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.03);
    text-decoration: none;
    transition: color var(--eg-transition), border-color var(--eg-transition), background var(--eg-transition);
}

.eg-btn-ghost:hover,
.eg-btn-ghost:focus-visible {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.07);
    outline: none;
}

/* eg-card-cta: visual-only CTA chip shown inside a card <a> link */
.eg-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.375rem;
    padding: 0.35rem 0.75rem;
    transition: color var(--eg-transition), border-color var(--eg-transition);
}

.eg-home-hero:hover .eg-card-cta,
.eg-home-hero:focus-within .eg-card-cta {
    color: rgba(255, 255, 255, 0.9);
    border-color: rgba(255, 255, 255, 0.3);
}

/* --- Sticky header with blur on scroll --- */
#site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    transition: background 0.25s ease, box-shadow 0.25s ease, backdrop-filter 0.25s ease;
}

#site-header.scrolled {
    background: rgba(8, 12, 20, 0.9) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 4px 20px rgba(0, 0, 0, 0.4);
}

/* --- Language switcher in header --- */
.eg-lang-switcher {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: 0.75rem;
}

.eg-lang-btn {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.55rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--eg-text-soft);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.375rem;
    text-decoration: none;
    transition: color var(--eg-transition), border-color var(--eg-transition), background var(--eg-transition);
    line-height: 1;
}

.eg-lang-btn:hover {
    color: #fff;
    border-color: var(--eg-border);
    background: rgba(255, 255, 255, 0.05);
}

.eg-lang-btn.active {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.07);
}

/* --- Footer link lists --- */
.eg-footer-links li {
    margin-bottom: 0.3rem;
}

.eg-footer-links a {
    display: block;
    font-size: 0.8125rem;
    color: var(--eg-text-muted);
    text-decoration: none;
    padding: 0.1rem 0;
    transition: color var(--eg-transition);
}

.eg-footer-links a:hover {
    color: #fff;
}


/* --- Footer modernization --- */
.eg-footer {
    background: rgba(8, 12, 20, 0.98);
    border-top: 1px solid var(--eg-border);
    padding: 2.5rem 0 1.5rem;
}

.eg-footer__title {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.875rem;
}

.eg-footer__text {
    font-size: 0.8125rem;
    color: var(--eg-text-muted);
    line-height: 1.6;
}

.eg-social-links {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.eg-social-links .btn {
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 0.875rem;
    color: var(--eg-text-muted);
    border-color: var(--eg-border);
    transition: color var(--eg-transition), border-color var(--eg-transition), background var(--eg-transition);
}

.eg-social-links .btn:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.08);
}

.eg-footer-lang {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-top: 0.5rem;
}

.eg-footer-lang a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.6rem;
    font-size: 0.75rem;
    color: var(--eg-text-muted);
    border: 1px solid var(--eg-border);
    border-radius: 0.375rem;
    text-decoration: none;
    transition: color var(--eg-transition), border-color var(--eg-transition);
}

.eg-footer-lang a:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.25);
}

.eg-footer__copyright {
    font-size: 0.75rem;
    color: var(--eg-text-muted);
    text-align: center;
    padding-top: 1.5rem;
    margin-top: 1.5rem;
    border-top: 1px solid var(--eg-border);
}


/* --- Exhibition detail hero --- */
.eg-hero {
    position: relative;
    overflow: hidden;
    border-radius: var(--eg-radius-hero);
    margin-bottom: 0;
}

/* Full-width image — drives container height naturally, zero crop */
.eg-hero__img {
    display: block;
    width: 100%;
    height: auto;
    line-height: 0;
}

.eg-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.05) 0%,
        rgba(0, 0, 0, 0.20) 35%,
        rgba(0, 0, 0, 0.72) 70%,
        rgba(0, 0, 0, 0.92) 100%
    );
}

.eg-hero__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.5rem 1.75rem 1.75rem;
}

@media (min-width: 768px) {
    .eg-hero__content {
        padding: 2rem 2.25rem 2rem;
    }
}

.eg-hero__breadcrumb {
    --bs-breadcrumb-divider: '/';
    margin-bottom: 0.625rem;
}

.eg-hero__breadcrumb .breadcrumb-item,
.eg-hero__breadcrumb .breadcrumb-item a,
.eg-hero__breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.75rem;
}

.eg-hero__breadcrumb .breadcrumb-item a:hover {
    color: rgba(255, 255, 255, 0.85);
}

.eg-hero__breadcrumb .breadcrumb-item.active {
    color: rgba(255, 255, 255, 0.75);
}

.eg-hero__title {
    font-size: clamp(1.375rem, 3.5vw, 2rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.5);
    margin-bottom: 0.5rem;
}

.eg-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.8125rem;
}

.eg-hero__meta-item {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.eg-hero__back {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-size: 1rem;
    z-index: 2;
    transition: background var(--eg-transition), border-color var(--eg-transition), color var(--eg-transition);
}

.eg-hero__back:hover,
.eg-hero__back:focus-visible {
    background: rgba(0, 0, 0, 0.7);
    border-color: rgba(255, 255, 255, 0.3);
    color: #fff;
    outline: none;
}

/* no cover image fallback */
.eg-hero--no-cover {
    aspect-ratio: 1270 / 445;
    min-height: 200px;
    background: linear-gradient(135deg, #0d1528 0%, #1a2540 100%);
}

/* --- Exhibition tab nav bar --- */
.eg-tab-nav {
    display: flex;
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    border-bottom: 1px solid var(--eg-border);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.eg-tab-nav::-webkit-scrollbar {
    display: none;
}

.eg-tab-nav li {
    flex-shrink: 0;
}

.eg-tab-nav a {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.875rem 1.125rem;
    color: var(--eg-text-soft);
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color var(--eg-transition), border-color var(--eg-transition);
}

.eg-tab-nav a:hover {
    color: #fff;
}

.eg-tab-nav li.active a {
    color: #fff;
    border-bottom-color: var(--eg-accent);
}

.eg-tab-nav .tab-count {
    font-size: 0.7rem;
    color: var(--eg-text-muted);
    background: rgba(255, 255, 255, 0.07);
    padding: 0.1em 0.45em;
    border-radius: 99px;
    font-weight: 600;
}

.eg-tab-nav li.active .tab-count {
    background: rgba(225, 73, 84, 0.18);
    color: #e8767d;
}

/* --- Exhibition info prose --- */
.eg-info-card {
    background: var(--eg-bg-card);
    border: 1px solid var(--eg-border);
    border-radius: var(--eg-radius-card);
    padding: 2rem;
}

@media (min-width: 768px) {
    .eg-info-card {
        padding: 2.5rem 3rem;
    }
}

.eg-info-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #fff;
    text-align: center;
    margin-bottom: 0.35rem;
}

.eg-info-owner {
    text-align: center;
    color: var(--eg-text-muted);
    font-size: 0.875rem;
    margin-bottom: 1.5rem;
}

.eg-info-prose {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--eg-text-soft);
}

.eg-info-prose img {
    max-width: 100%;
    height: auto;
    border-radius: 0.5rem;
}

/* TinyMCE rich-text content — dark theme resets */
.eg-info-prose h1,
.eg-info-prose h2,
.eg-info-prose h3,
.eg-info-prose h4,
.eg-info-prose h5,
.eg-info-prose h6 {
    color: #fff;
    font-weight: 700;
    margin: 1.5em 0 0.5em;
    line-height: 1.25;
}

.eg-info-prose h1 { font-size: 1.5rem; }
.eg-info-prose h2 { font-size: 1.25rem; }
.eg-info-prose h3 { font-size: 1.125rem; }
.eg-info-prose h4,
.eg-info-prose h5,
.eg-info-prose h6 { font-size: 1rem; }

.eg-info-prose p { margin-bottom: 1em; }

.eg-info-prose a {
    color: var(--eg-accent-purple);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--eg-transition);
}

.eg-info-prose a:hover { color: #fff; }

.eg-info-prose ul,
.eg-info-prose ol {
    padding-left: 1.5rem;
    margin-bottom: 1em;
}

.eg-info-prose li { margin-bottom: 0.35em; }

.eg-info-prose blockquote {
    border-left: 3px solid var(--eg-accent);
    margin: 1.5em 0;
    padding: 0.75rem 1.25rem;
    background: rgba(255, 255, 255, 0.03);
    color: var(--eg-text-soft);
    font-style: italic;
    border-radius: 0 0.5rem 0.5rem 0;
}

.eg-info-prose table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1em;
    font-size: 0.9375rem;
}

.eg-info-prose th {
    background: rgba(255, 255, 255, 0.05);
    color: #fff;
    font-weight: 600;
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--eg-border);
    text-align: left;
}

.eg-info-prose td {
    padding: 0.5rem 0.875rem;
    border: 1px solid var(--eg-border);
    color: var(--eg-text-soft);
}

.eg-info-prose tr:nth-child(even) td {
    background: rgba(255, 255, 255, 0.025);
}

.eg-info-prose strong { color: #fff; font-weight: 700; }
.eg-info-prose em { color: var(--eg-text-soft); font-style: italic; }

.eg-empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--eg-text-muted);
}

.eg-empty-state .icon {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    display: block;
    color: #2a3550;
}

.eg-empty-state p {
    font-size: 0.9375rem;
    margin-bottom: 0;
}

/* --- Works / photo gallery overlay grid --- */
.eg-works-grid {
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.75rem;
}

.eg-work-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    border-radius: var(--eg-radius-card);
    overflow: hidden;
    background: var(--eg-bg-card);
    border: 1px solid var(--eg-border);
    transition: border-color var(--eg-transition), box-shadow var(--eg-transition), transform var(--eg-transition);
}

.eg-work-card:hover,
.eg-work-card:focus-within {
    border-color: rgba(225, 73, 84, 0.4);
    box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.4);
    transform: translateY(-2px);
}

.eg-work-thumb {
    aspect-ratio: 4 / 3;
    background: var(--eg-bg-surface) var(--thumb) center / cover no-repeat;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.eg-work-card:hover .eg-work-thumb,
.eg-work-card:focus-within .eg-work-thumb {
    transform: scale(1.04);
}

.eg-work-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.78) 0%, transparent 55%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    padding: 0.875rem;
    opacity: 0;
    transition: opacity 0.22s ease;
}

.eg-work-card:hover .eg-work-overlay,
.eg-work-card:focus-within .eg-work-overlay {
    opacity: 1;
}

.eg-work-title {
    display: block;
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.3;
}

.eg-work-author {
    display: block;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.75rem;
    margin-top: 0.15rem;
}

.eg-work-zoom-icon {
    position: absolute;
    top: 0.625rem;
    right: 0.625rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.125rem;
}

.eg-work-author-link {
    display: block;
    text-align: center;
    font-size: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: rgba(255, 255, 255, 0.03);
    color: var(--eg-text-soft);
    text-decoration: none;
    border-top: 1px solid var(--eg-border);
    transition: color var(--eg-transition), background var(--eg-transition);
    flex-shrink: 0;
}

.eg-work-author-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.07);
}

/* --- Authors list --- */
.eg-authors-search .form-control {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--eg-border);
    color: #fff;
    border-right: none;
    border-radius: 0.5rem 0 0 0.5rem;
}

.eg-authors-search .form-control:focus {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: none;
    color: #fff;
}

.eg-authors-search .form-control::placeholder {
    color: var(--eg-text-muted);
}

.eg-authors-search .btn {
    border-radius: 0 0.5rem 0.5rem 0;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

.eg-author-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    text-decoration: none;
    background: var(--eg-bg-card);
    border: 1px solid var(--eg-border);
    border-radius: var(--eg-radius-card);
    padding: 1.75rem 1rem 1.25rem;
    transition: border-color var(--eg-transition), transform var(--eg-transition), box-shadow var(--eg-transition);
    height: 100%;
}

.eg-author-card:hover,
.eg-author-card:focus-visible {
    border-color: rgba(157, 114, 255, 0.45);
    transform: translateY(-3px);
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.3);
    outline: none;
}

.eg-author-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 1rem;
    flex-shrink: 0;
    transition: border-color var(--eg-transition);
}

.eg-author-card:hover .eg-author-avatar {
    border-color: rgba(157, 114, 255, 0.45);
}

.eg-author-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.eg-author-avatar-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1a2540;
    font-size: 2rem;
    color: #2e4070;
}

.eg-author-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #fff;
    line-height: 1.3;
    margin-bottom: 0.25rem;
}

.eg-author-meta {
    font-size: 0.75rem;
    color: var(--eg-text-muted);
}

/* --- Owner detail banner --- */
.eg-owner-banner {
    position: relative;
    overflow: hidden;
    border-radius: var(--eg-radius-hero);
    border: 1px solid var(--eg-border);
    background: linear-gradient(135deg, #080e1c 0%, #0c1128 60%, #0a0e1a 100%);
    padding: 2.25rem 2rem 2.25rem 2.5rem;
    min-height: 180px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    margin-bottom: 0;
}

@media (min-width: 768px) {
    .eg-owner-banner {
        padding: 2.75rem 2.5rem 2.75rem 3rem;
        min-height: 200px;
    }
}

/* Left accent stripe */
.eg-owner-banner::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(to bottom, var(--eg-accent) 0%, transparent 100%);
    border-radius: var(--eg-radius-hero) 0 0 var(--eg-radius-hero);
}

/* Radial glow */
.eg-owner-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 70% at 0% 100%, rgba(225, 73, 84, 0.06) 0%, transparent 65%);
    pointer-events: none;
}

/* Large decorative monogram */
.eg-owner-banner__monogram {
    position: absolute;
    right: -0.5rem;
    bottom: -1.5rem;
    font-size: clamp(8rem, 20vw, 16rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.06em;
    color: rgba(255, 255, 255, 0.025);
    user-select: none;
    pointer-events: none;
}

.eg-owner-banner__body {
    position: relative;
    z-index: 1;
}

.eg-owner-banner__label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--eg-accent);
    margin-bottom: 0.625rem;
}

.eg-owner-banner__name {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    letter-spacing: -0.025em;
    margin-bottom: 0.75rem;
}

.eg-owner-banner__count {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--eg-text-soft);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 99px;
    padding: 0.2rem 0.7rem;
}

/* Back button inside banner */
.eg-owner-banner .eg-btn-icon {
    position: absolute;
    top: 1.125rem;
    right: 1.125rem;
    z-index: 2;
}

/* --- Owner / organizer cards --- */
/* Horizontal row card — no avatar, suits organisations */
.eg-owner-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--eg-bg-card);
    border: 1px solid var(--eg-border);
    border-radius: var(--eg-radius-card);
    padding: 1rem 1.25rem;
    text-decoration: none;
    transition: border-color var(--eg-transition), background var(--eg-transition), box-shadow var(--eg-transition);
}

a.eg-owner-card:hover,
a.eg-owner-card:focus-visible {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.03);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
    outline: none;
}

/* Icon box — left side */
.eg-owner-card__icon-wrap {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.625rem;
    background: rgba(225, 73, 84, 0.08);
    border: 1px solid rgba(225, 73, 84, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    color: var(--eg-accent);
    transition: background var(--eg-transition), border-color var(--eg-transition);
}

a.eg-owner-card:hover .eg-owner-card__icon-wrap {
    background: rgba(225, 73, 84, 0.14);
    border-color: rgba(225, 73, 84, 0.32);
}

/* Text area */
.eg-owner-card__info {
    flex: 1;
    min-width: 0;
}

.eg-owner-card__name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #fff;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.2rem;
}

.eg-owner-card__count {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    color: var(--eg-text-muted);
}

/* Chevron — right side */
.eg-owner-card__arrow {
    flex-shrink: 0;
    color: rgba(255, 255, 255, 0.2);
    font-size: 1rem;
    transition: color var(--eg-transition), transform var(--eg-transition);
}

a.eg-owner-card:hover .eg-owner-card__arrow {
    color: rgba(255, 255, 255, 0.55);
    transform: translateX(3px);
}

/* --- Author detail — editorial banner (no photo) --- */
.eg-author-banner {
    position: relative;
    overflow: hidden;
    border-radius: var(--eg-radius-hero);
    border: 1px solid var(--eg-border);
    background: linear-gradient(135deg, #0b1220 0%, #0f0a1e 60%, #0a1525 100%);
    padding: 2.25rem 2rem 2.25rem 2.5rem;
    min-height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
    .eg-author-banner {
        padding: 2.75rem 2.5rem 2.75rem 3rem;
        min-height: 220px;
    }
}

/* Left accent stripe */
.eg-author-banner::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(to bottom, var(--eg-accent) 0%, transparent 100%);
    border-radius: var(--eg-radius-hero) 0 0 var(--eg-radius-hero);
}

/* Large decorative monogram in background */
.eg-author-banner__monogram {
    position: absolute;
    right: -0.25rem;
    bottom: -1.5rem;
    font-size: clamp(9rem, 22vw, 18rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.06em;
    color: rgba(255, 255, 255, 0.03);
    user-select: none;
    pointer-events: none;
    white-space: nowrap;
}

/* Subtle radial glow behind name */
.eg-author-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 65% 70% at 0% 100%, rgba(225, 73, 84, 0.07) 0%, transparent 65%);
    pointer-events: none;
}

.eg-author-banner__body {
    position: relative;
    z-index: 1;
}

.eg-author-banner__label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--eg-accent);
    margin-bottom: 0.75rem;
}

.eg-author-banner__name {
    font-size: clamp(1.75rem, 5vw, 2.75rem);
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    letter-spacing: -0.025em;
    margin-bottom: 0.625rem;
}

.eg-author-banner__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.25rem;
    color: var(--eg-text-muted);
    font-size: 0.875rem;
}

.eg-author-banner__title {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.eg-author-banner__count {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--eg-text-soft);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 99px;
    padding: 0.2rem 0.7rem;
}

/* Back button anchored inside the banner */
.eg-author-banner .eg-btn-icon {
    position: absolute;
    top: 1.125rem;
    right: 1.125rem;
    z-index: 2;
}

/* --- Author biography card --- */
.eg-biography-card {
    background: var(--eg-bg-card);
    border: 1px solid var(--eg-border);
    border-radius: var(--eg-radius-card);
    padding: 1.75rem 2rem;
    margin-bottom: 1.5rem;
    color: var(--eg-text-soft);
    font-size: 0.9375rem;
    line-height: 1.75;
}

@media (min-width: 768px) {
    .eg-biography-card {
        padding: 2rem 2.5rem;
    }
}

.eg-biography-card__label {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--eg-text-muted);
    margin-bottom: 1rem;
}

/* --- Documents view --- */
.eg-doc-block {
    background: var(--eg-bg-card);
    border: 1px solid var(--eg-border);
    border-radius: var(--eg-radius-card);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.eg-doc-label {
    padding: 0.75rem 1.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--eg-text-soft);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--eg-border);
    background: rgba(255, 255, 255, 0.02);
}

.eg-doc-img {
    display: block;
    width: 100%;
    height: auto;
}

.eg-doc-img-link {
    display: block;
    position: relative;
    overflow: hidden;
    cursor: zoom-in;
}

.eg-doc-zoom {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0);
    color: #fff;
    font-size: 2rem;
    opacity: 0;
    transition: opacity 0.22s ease, background 0.22s ease;
}

.eg-doc-img-link:hover .eg-doc-zoom {
    opacity: 1;
    background: rgba(0, 0, 0, 0.35);
}

/* --- Section heading --- */
.eg-section-heading {
    font-size: 1rem;
    font-weight: 600;
    color: var(--eg-text-soft);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--eg-border);
}

/* === Mobile: prevent hero title overlapping the back button === */
@media (max-width: 480px) {
    .eg-hero__content       { padding-right: 4rem; }
    .eg-home-hero__content  { padding-right: 4rem; }
}

/* === Ultra-wide (1600px+): cap content width === */
@media (min-width: 1600px) {
    .eg-home-hero__content { max-width: 50%; }
    .eg-hero__content      { max-width: 900px; }
}

/* =========================================================
   MOBILE HEADER — Modern full-screen overlay menu
   ========================================================= */

/* Modern hamburger button (visible on mobile, <992px) */
.nk-menu-trigger .nk-nav-toggle {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.625rem;
    color: var(--eg-text-soft);
    font-size: 1.1875rem;
    cursor: pointer;
    padding: 0;
    transition: background var(--eg-transition), border-color var(--eg-transition), color var(--eg-transition);
}

.nk-menu-trigger .nk-nav-toggle:hover {
    background: rgba(255, 255, 255, 0.09);
    border-color: rgba(255, 255, 255, 0.2);
    color: #fff;
}

@media (max-width: 991.98px) {
    /* Full-screen overlay — slides in from left (matches hamburger button position) */
    .nk-header-menu {
        position: fixed !important;
        inset: 0;
        z-index: 9990;
        background: rgba(6, 9, 17, 0.98);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        transform: translateX(-100%);
        transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1),
                    visibility 0.32s step-end;
        visibility: hidden;
        display: flex !important;
        flex-direction: column;
        padding: 1.25rem 1.75rem 2.5rem;
        overflow-y: auto;
        pointer-events: none;
    }

    .nk-header-menu.nk-header-active {
        transform: translateX(0);
        visibility: visible;
        transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1),
                    visibility 0s step-start;
        pointer-events: auto;
    }

    /* Prevent body scroll when menu is open */
    body:has(.nk-header-menu.nk-header-active) {
        overflow: hidden;
    }

    /* Top bar inside the menu: logo + close button */
    .nk-header-mobile {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        padding-bottom: 2rem;
        margin-bottom: 0.5rem;
        flex-shrink: 0;
    }

    /* Suppress DashLite's own mobile header brand (logo already in main header) */
    .nk-header-mobile .nk-header-brand img {
        height: 32px;
        width: auto;
    }

    /* Close (×) button inside the open menu */
    .nk-header-menu .nk-nav-toggle {
        width: 2.75rem;
        height: 2.75rem;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 50%;
        color: #fff;
        font-size: 1.125rem;
        cursor: pointer;
        padding: 0;
        transition: background var(--eg-transition), border-color var(--eg-transition);
    }

    .nk-header-menu .nk-nav-toggle:hover {
        background: rgba(255, 255, 255, 0.12);
        border-color: rgba(255, 255, 255, 0.3);
    }

    /* Mobile nav links */
    .nk-menu.nk-menu-main {
        flex: 1;
        padding: 0.5rem 0;
    }

    .nk-menu.nk-menu-main > .nk-menu-item {
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    }

    .nk-menu.nk-menu-main > .nk-menu-item > .nk-menu-link {
        font-size: 1.125rem !important;
        font-weight: 600 !important;
        color: #fff !important;
        padding: 0.875rem 0 !important;
        letter-spacing: 0;
        line-height: 1.4;
        background: none !important;
        text-transform: none !important;
        transition: color 0.15s ease, transform 0.15s ease !important;
        display: block;
    }

    .nk-menu.nk-menu-main > .nk-menu-item > .nk-menu-link:hover {
        color: var(--eg-accent) !important;
        transform: translateX(4px);
    }
}

/* Language switcher inside mobile menu */
.eg-mobile-lang {
    display: none;
}

@media (max-width: 991.98px) {
    .eg-mobile-lang {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        flex-shrink: 0;
        margin-top: auto;
        padding-top: 2rem;
        border-top: 1px solid rgba(255, 255, 255, 0.06);
    }

    .eg-mobile-lang a {
        display: flex;
        align-items: center;
        gap: 0.4rem;
        padding: 0.5rem 1rem;
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--eg-text-muted);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0.5rem;
        text-decoration: none;
        transition: color var(--eg-transition), border-color var(--eg-transition), background var(--eg-transition);
    }

    .eg-mobile-lang a:hover,
    .eg-mobile-lang a.active {
        color: #fff;
        border-color: rgba(255, 255, 255, 0.28);
        background: rgba(255, 255, 255, 0.07);
    }
}

/* =========================================================
   MOBILE GALLERY — Better aspect ratios & single-column layout
   ========================================================= */

@media (max-width: 639.98px) {
    /* No-image placeholder fallback: use 3:2 on phones (more usable than ultra-wide strip) */
    .eg-home-card--no-img .eg-home-card__thumb,
    .eg-home-hero--no-img .eg-home-hero__bg {
        aspect-ratio: 3 / 2;
    }

    .eg-home-hero {
        margin-bottom: 1.75rem;
    }

    /* Related exhibitions on InfoView */
    .eg-info-card {
        padding: 1.5rem;
    }
}

/* =========================================================
   UPDATE INFO — Author detail bottom notice
   ========================================================= */

.eg-update-info {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.25rem 1.5rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-left: 3px solid var(--eg-accent);
    border-radius: var(--eg-radius-card);
}

.eg-update-info__icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(225, 73, 84, 0.1);
    border-radius: 50%;
    color: var(--eg-accent);
    font-size: 1.125rem;
}

.eg-update-info__body {
    flex: 1;
    min-width: 0;
}

.eg-update-info__title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 0.25rem;
}

.eg-update-info__text {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.5);
    margin-bottom: 0;
    line-height: 1.5;
}

.eg-update-info__cta {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1.125rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--eg-accent);
    border: 1px solid rgba(225, 73, 84, 0.35);
    border-radius: 0.4rem;
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--eg-transition), border-color var(--eg-transition), color var(--eg-transition);
}

.eg-update-info__cta:hover,
.eg-update-info__cta:focus-visible {
    background: rgba(225, 73, 84, 0.12);
    border-color: var(--eg-accent);
    color: #fff;
    outline: none;
}

@media (max-width: 639.98px) {
    .eg-update-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .eg-update-info__cta {
        width: 100%;
        justify-content: center;
    }
}
