/* ==========================================================================
   CipitElegante: inner pages
   Loads after elegante.css and re-skins the page templates that theme.css
   (the shared Nexus stylesheet) still lays out. Everything is scoped to
   .theme-elegante. Sections:
   1.  Page hero, breadcrumbs, search field
   2.  Filter chips, pagination, empty states
   3.  Publication cards and featured item
   4.  Article cards (blog) and podcast cards
   5.  Page content (prose, generic pages, About, Our Work)
   6.  Custom Tabs pages (research themes, projects, learning)
   7.  Publication detail
   8.  Article detail
   9.  People (team, steering committee, fellows)
   10. Contact
   11. Events
   12. Search, archives, 404
   ========================================================================== */

/* 1. Page hero ============================================================= */

.theme-elegante .site-main {
    padding-top: 0;
}

.theme-elegante .page-hero,
.theme-elegante .page-hero--ruled {
    background: none;
    border: 0;
    color: var(--el-ink);
    overflow: visible;
    padding: 0;
}

.theme-elegante .page-hero::before {
    content: none;
}

.theme-elegante .page-hero__crumbs {
    max-width: var(--el-wrap);
    padding-top: 34px;
    padding-inline: var(--el-gutter);
}

.theme-elegante .breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 13px;
    color: var(--el-muted);
}

.theme-elegante .breadcrumb li + li::before {
    content: "/";
    margin-right: 10px;
    opacity: .5;
}

.theme-elegante .breadcrumb a {
    color: var(--el-muted);
    text-decoration: none;
    transition: color .16s ease;
}

.theme-elegante .breadcrumb a:hover {
    color: var(--el-brand);
    text-decoration: none;
}

.theme-elegante .breadcrumb [aria-current] {
    color: var(--el-ink-soft);
    font-weight: 600;
}

/* Phones: one line, the current page title shortens instead of wrapping under a stray "/". */
@media (max-width: 640px) {
    .theme-elegante .breadcrumb ol {
        flex-wrap: nowrap;
        white-space: nowrap;
    }

    .theme-elegante .breadcrumb li {
        flex-shrink: 0;
    }

    .theme-elegante .breadcrumb li[aria-current] {
        flex-shrink: 1;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

.theme-elegante .page-hero__inner {
    max-width: var(--el-wrap);
    padding-inline: var(--el-gutter);
    padding-block: 0;
}

/* Centred: eyebrow, red title, intro, search, on concentric rings. */
.theme-elegante .page-hero__body {
    margin-top: 13px;
    padding: 55px 21px 13px;
    text-align: center;
    background:
        radial-gradient(ellipse 52% 92% at 50% 0%, transparent 0, color-mix(in srgb, var(--el-paper) 35%, transparent) 45%, var(--el-paper) 100%),
        repeating-radial-gradient(circle at 50% -233px, transparent 0 20px, color-mix(in srgb, var(--el-brand) 7.5%, transparent) 20px 21px),
        var(--el-paper);
}

.theme-elegante .page-hero .eyebrow {
    display: block;
    margin: 0;
    font: 600 13.5px/1.3 var(--el-font);
    letter-spacing: -.005em;
    color: var(--el-muted);
}

.theme-elegante .page-hero__title {
    max-width: none;
    margin: 16px 0 0;
    font-family: var(--el-font);
    font-size: clamp(34px, 4.2vw, 46px);
    line-height: 1.1;
    letter-spacing: -.028em;
    font-weight: 800;
    color: var(--el-brand);
    text-wrap: balance;
}

.theme-elegante .page-hero__intro {
    max-width: 64ch;
    margin: 21px auto 0;
    font-size: 17px;
    line-height: 1.6;
    color: var(--el-body);
    text-wrap: pretty;
}

.theme-elegante .page-hero__search {
    max-width: 620px;
    margin: 34px auto 0;
}

/* Cover-art variant (podcast): art left, text left-aligned beside it. */
.theme-elegante .page-hero__inner--media {
    display: grid;
    grid-template-columns: clamp(180px, 20vw, 250px) minmax(0, 1fr);
    gap: clamp(21px, 4vw, 55px);
    align-items: center;
    margin-top: 21px;
}

.theme-elegante .page-hero__inner--media .page-hero__body {
    margin-top: 0;
    padding: 0;
    text-align: left;
    background: none;
}

.theme-elegante .page-hero__inner--media .page-hero__intro,
.theme-elegante .page-hero__inner--media .page-hero__search {
    margin-left: 0;
    margin-right: 0;
}

.theme-elegante .page-hero__inner--media .page-hero .eyebrow,
.theme-elegante .page-hero--media .eyebrow {
    color: var(--el-brand);
}

.theme-elegante .page-hero--media .page-hero__title {
    color: var(--el-ink);
}

/* Same ring-pattern band as the detail page headers. */
.theme-elegante .page-hero--media {
    padding-bottom: 55px;
    background:
        radial-gradient(circle 520px at 0% 0%, transparent 0, var(--el-band) 100%),
        repeating-radial-gradient(circle at 0% 0%, transparent 0 20px, color-mix(in srgb, var(--el-brand) 7%, transparent) 20px 21px),
        var(--el-band);
    border-bottom: 1px solid color-mix(in srgb, var(--el-brand) 8%, transparent);
    overflow: hidden;
}

.theme-elegante .page-hero__media {
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

/* The search field: one white pill, red button inside it. */
.theme-elegante .search-bar,
.theme-elegante .page-hero--ruled .search-bar,
.theme-elegante .page-header-light .page-hero--ruled .search-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    box-sizing: border-box;
    height: 58px;
    padding: 0 6px 0 22px;
    background: var(--c-paper);
    border: 1px solid var(--el-line);
    border-radius: 29px;
    box-shadow: var(--el-shadow);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.theme-elegante .search-bar:focus-within,
.theme-elegante .page-hero--ruled .search-bar:focus-within {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
}

.theme-elegante .search-bar .search-bar__icon {
    position: static;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: var(--el-muted);
}

.theme-elegante .search-bar input[type="search"],
.theme-elegante .page-hero--ruled .search-bar input[type="search"] {
    height: 100%;
    color: var(--el-ink);
    font: 400 15.5px/1 var(--el-font);
}

.theme-elegante .search-bar input[type="search"]::placeholder {
    color: var(--el-muted);
}

.theme-elegante .search-bar .btn,
.theme-elegante .search-bar .btn--primary {
    flex: 0 0 auto;
    min-height: 0;
    height: 44px;
    padding: 0 26px;
    border: 0;
    border-radius: 22px;
    background: var(--el-brand);
    color: var(--c-on-dark);
    font: 600 14.5px/1 var(--el-font);
    transition: background .18s ease, transform .18s ease;
}

.theme-elegante .search-bar .btn:hover {
    background: var(--el-brand-dark);
    transform: translateY(-1px);
}

/* Anything that sits under the hero keeps to the same 1240 column. */
.theme-elegante .site-main > .wrap.section,
.theme-elegante .site-main .wrap.section {
    max-width: var(--el-wrap);
    padding-inline: var(--el-gutter);
}

.theme-elegante .site-main > .wrap.section--tight {
    padding-top: 55px;
    padding-bottom: 89px;
}

@media (max-width: 720px) {
    .theme-elegante .page-hero__body {
        padding: 34px 0 8px;
    }

    .theme-elegante .page-hero__inner--media {
        grid-template-columns: minmax(0, 1fr);
    }

    .theme-elegante .page-hero__media {
        max-width: 160px;
    }

    .theme-elegante .search-bar,
    .theme-elegante .search-inner-bar {
        height: 52px;
        padding-left: 18px;
        border-radius: 26px;
    }

    .theme-elegante .search-bar .btn,
    .theme-elegante .search-inner-bar .custom-tabs-search-btn {
        height: 38px;
        padding: 0 18px;
        border-radius: 19px;
    }
}

/* 2. Filter chips, pagination, empty states ================================ */

.theme-elegante .blog-tags {
    gap: 8px;
    margin: 0;
}

.theme-elegante .tag-btn,
.theme-elegante .filter-btn {
    min-height: 0;
    height: 40px;
    padding: 0 18px;
    border: 1px solid var(--el-line);
    border-radius: 20px;
    background: var(--c-paper);
    color: var(--el-ink);
    font: 600 13.5px/1 var(--el-font);
    letter-spacing: -.005em;
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.theme-elegante .tag-btn:hover,
.theme-elegante .filter-btn:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-ink);
}

.theme-elegante .tag-btn.active,
.theme-elegante .filter-btn.active {
    background: var(--el-brand);
    border-color: var(--el-brand);
    color: var(--c-on-dark);
}

.theme-elegante .topic-filter {
    align-items: center;
    gap: 8px;
    margin: 0 0 34px;
    padding-bottom: 21px;
    border-bottom: 1px solid var(--el-line);
}

/* Content tabs (Custom Tabs plugin etc.) stay line tabs. */
.theme-elegante .blog-tags[role="tablist"] {
    gap: 0;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--el-line);
}

/* Same scale as the side rail: 14px, body colour, weight only rises when active. */
.theme-elegante .blog-tags[role="tablist"] .tag-btn {
    height: auto;
    padding: 9px 11px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: none;
    color: var(--el-body);
    font: 400 14px/1.4 var(--el-font);
    letter-spacing: 0;
}

.theme-elegante .blog-tags[role="tablist"] .tag-btn:hover {
    background: none;
    border-bottom-color: var(--el-line);
    color: var(--el-ink);
}

.theme-elegante .blog-tags[role="tablist"] .tag-btn.active {
    background: none;
    border-bottom-color: var(--el-brand);
    color: var(--el-brand);
    font-weight: 600;
}

.theme-elegante .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 55px;
}

.theme-elegante .pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 6px;
    border: 1px solid var(--el-line);
    border-radius: 20px;
    background: var(--c-paper);
    color: var(--el-ink);
    font: 600 13.5px/1 var(--el-font);
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.theme-elegante .pagination a.page-numbers:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

.theme-elegante .pagination .page-numbers.current {
    background: var(--el-brand);
    border-color: var(--el-brand);
    color: var(--c-on-dark);
}

.theme-elegante .pagination .page-numbers.dots {
    border-color: transparent;
    background: none;
}

.theme-elegante .empty-note {
    padding: 55px 0;
    color: var(--el-body);
    font-size: 16px;
}

/* 3. Publication cards ===================================================== */

.theme-elegante .pub-grid,
.theme-elegante .books-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 34px 26px;
    align-items: stretch;
}

.theme-elegante .book-card {
    gap: 16px;
}

.theme-elegante .book-cover {
    border: 1px solid var(--el-line-soft);
    border-radius: 12px;
    background: var(--el-chip);
    transition: transform .2s ease, box-shadow .2s ease;
}

.theme-elegante .book-card:hover .book-cover {
    border-color: var(--el-line-soft);
    transform: var(--el-card-lift);
    box-shadow: var(--el-shadow-hover);
}

.theme-elegante .book-cover .cover-placeholder,
.theme-elegante .cover-placeholder {
    background:
        repeating-linear-gradient(135deg, var(--el-stripe-1) 0 8px, var(--el-stripe-2) 8px 16px);
    color: color-mix(in srgb, var(--c-contrast) 22%, transparent);
    font-size: 2rem;
}

.theme-elegante .book-content {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Category left, "CIPIT · year" right; wraps under it when the column is too narrow. */
.theme-elegante .book-card__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 2px 12px;
}

.theme-elegante .book-card__kind {
    margin: 0;
    font: 600 12.5px/1.3 var(--el-font);
    letter-spacing: -.005em;
    color: var(--el-brand);
}

.theme-elegante .book-card__title,
.theme-elegante .book-content h3 {
    margin: 0;
    font-size: 17px;
    line-height: 1.25;
    letter-spacing: -.016em;
    font-weight: 700;
    color: var(--el-ink);
    text-wrap: pretty;
}

.theme-elegante .book-card:hover .book-card__title a {
    color: var(--el-brand);
}

.theme-elegante .book-card__label {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--el-body);
}

.theme-elegante .book-card__imprint {
    margin: 0;
    white-space: nowrap;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--el-muted);
}

@media (max-width: 960px) {
    .theme-elegante .pub-grid,
    .theme-elegante .books-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .theme-elegante .pub-grid,
    .theme-elegante .books-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px 16px;
    }

    /* Two narrow columns: 17px titles ran to seven lines. */
    .theme-elegante .book-card__title,
    .theme-elegante .book-content h3 {
        font-size: 15px;
        line-height: 1.3;
    }
}

/* Toolbar over a listing: filter chips left, count right, hairline under. */
.theme-elegante .list-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 34px;
    padding-bottom: 21px;
    border-bottom: 1px solid var(--el-line);
}

.theme-elegante .list-toolbar__count {
    font-size: 13px;
    color: var(--el-muted);
}

.theme-elegante .list-toolbar .topic-filter {
    margin: 0;
    padding: 0;
    border: 0;
}

/* Featured publication: a white card, cover left. */
.theme-elegante .featured-list {
    margin-bottom: 55px;
}

.theme-elegante .feature-card {
    padding: 26px;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
    gap: 34px;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.theme-elegante .feature-card:hover {
    transform: var(--el-card-lift);
    border-color: var(--el-card-line-hover);
    box-shadow: var(--el-shadow-hover);
}

.theme-elegante .feature-card__cover {
    border-radius: 12px;
    border-color: var(--el-line-soft);
}

.theme-elegante .feature-card .eyebrow {
    font: 600 13.5px/1.3 var(--el-font);
    color: var(--el-brand);
}

.theme-elegante .feature-card__title {
    font-size: clamp(24px, 2.6vw, 30px);
    line-height: 1.15;
    letter-spacing: -.024em;
    font-weight: 800;
}

.theme-elegante .feature-card:hover .feature-card__title a,
.theme-elegante .feature-card__title a:hover {
    color: var(--el-brand);
}

.theme-elegante .feature-card .badge--brand {
    background: var(--el-brand);
    color: var(--c-on-dark);
    border-radius: 12px;
}

/* Curated publication list ([curated_publication], e.g. Fellowship Briefs): a white box
   with the A4 cover flush on the left, the same type as the book cards on the right. */
.theme-elegante .cipit-pub-container {
    scroll-margin-top: 120px;
}

.theme-elegante .cpub-list {
    display: grid;
    gap: 21px;
}

.theme-elegante .cpub-card {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--el-shadow) !important; /* !important: theme.css flattens plugin output */
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.theme-elegante .cpub-card:hover {
    transform: var(--el-card-lift) !important;
    border-color: var(--el-card-line-hover);
    box-shadow: var(--el-shadow-hover) !important;
}

.theme-elegante .cpub-card__cover {
    display: block;
    min-height: 283px; /* A4 at the 200px column; taller text stretches it */
    border-right: 1px solid var(--el-hair);
    background: var(--el-placeholder);
}

.theme-elegante .cpub-card__cover img,
.theme-elegante .cpub-card__cover .cover-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0; /* the card clips the corners; .prose img would round them */
    object-fit: cover;
}

.theme-elegante .cpub-card__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 26px 34px;
}

.theme-elegante .cpub-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 8px;
    font: 600 12.5px/1.3 var(--el-font);
    letter-spacing: -.005em;
    color: var(--el-brand);
}

.theme-elegante .cpub-card__kind a {
    color: inherit;
    text-decoration: none;
}

.theme-elegante .cpub-card__kind a:hover {
    text-decoration: underline;
}

.theme-elegante .cpub-card__date {
    font-weight: 400;
    color: var(--el-muted);
}

.theme-elegante .cpub-card__date::before {
    content: "·";
    margin-right: 8px;
    color: var(--el-muted);
}

.theme-elegante .cpub-card__title {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    font-family: var(--el-font);
    font-size: 19px;
    line-height: 1.3;
    letter-spacing: -.016em;
    font-weight: 700;
    color: var(--el-ink);
    text-wrap: pretty;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.theme-elegante .cpub-card__title a {
    color: inherit;
    text-decoration: none;
}

.theme-elegante .cpub-card:hover .cpub-card__title a {
    color: var(--el-brand);
}

.theme-elegante .cpub-card__author {
    font-size: 13px;
    line-height: 1.45;
    color: var(--el-muted);
}

.theme-elegante .cpub-card__excerpt {
    display: -webkit-box;
    overflow: hidden;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--el-body);
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.theme-elegante .cpub-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.theme-elegante .cpub-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 18px;
    border: 1px solid var(--el-line-strong);
    border-radius: 999px;
    background: var(--c-paper);
    color: var(--el-ink);
    font: 600 14px/1 var(--el-font);
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.theme-elegante .cpub-btn i {
    font-size: 12px;
}

.theme-elegante .cpub-btn:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

.theme-elegante .cpub-btn--primary {
    background: var(--el-brand);
    border-color: var(--el-brand);
    color: var(--c-on-dark);
}

.theme-elegante .cpub-btn--primary:hover {
    background: var(--el-brand-dark);
    border-color: var(--el-brand-dark);
    color: var(--c-on-dark);
}

.theme-elegante .pub-pagination {
    margin-top: 34px;
}

@media (max-width: 640px) {
    .theme-elegante .cpub-card {
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .theme-elegante .cpub-card__cover {
        min-height: 170px;
    }

    .theme-elegante .cpub-card__body {
        gap: 6px;
        padding: 16px 18px;
    }

    .theme-elegante .cpub-card__title {
        font-size: 16px;
        -webkit-line-clamp: 3;
    }

    .theme-elegante .cpub-card__excerpt {
        display: none;
    }

    .theme-elegante .cpub-btn {
        height: 36px;
        padding: 0 14px;
        font-size: 13px;
    }
}

/* 4. Article cards (blog) and podcast cards ================================ */

.theme-elegante .card-grid,
.theme-elegante .blog-posts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px 26px;
    align-items: stretch;
}

@media (max-width: 960px) {
    .theme-elegante .card-grid,
    .theme-elegante .blog-posts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .theme-elegante .card-grid,
    .theme-elegante .blog-posts {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Blog card: image, topic, title, meta. No box around it. */
.theme-elegante .blog-card {
    gap: 13px;
    background: none;
    border: 0;
    border-radius: 0;
    overflow: visible;
}

.theme-elegante .blog-card:hover {
    border: 0;
}

.theme-elegante .blog-card-image {
    aspect-ratio: 16 / 10;
    border: 1px solid var(--el-line-soft);
    border-radius: 12px;
    background: var(--el-chip);
    transition: transform .2s ease, box-shadow .2s ease;
}

.theme-elegante .blog-card:hover .blog-card-image {
    transform: var(--el-card-lift);
    box-shadow: var(--el-shadow-hover);
}

.theme-elegante .blog-card:hover .blog-card-image img {
    transform: none;
}

.theme-elegante .blog-card-image .badge {
    top: 12px;
    left: 12px;
    background: var(--el-brand);
    color: var(--c-on-dark);
    border-radius: 12px;
}

.theme-elegante .blog-card-content {
    gap: 6px;
    padding: 0;
}

.theme-elegante .blog-card-content .eyebrow {
    margin: 0;
    font: 600 12.5px/1.3 var(--el-font);
    letter-spacing: -.005em;
    color: var(--el-brand);
}

.theme-elegante .blog-card__title,
.theme-elegante .blog-card-content h3 {
    margin: 0;
    font-family: var(--el-font);
    font-size: 15px;
    line-height: 1.32;
    letter-spacing: -.01em;
    font-weight: 700;
    color: var(--el-ink);
    text-wrap: pretty;
}

.theme-elegante .blog-card__meta {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--el-muted);
}

.theme-elegante .blog-card:hover .blog-card__title a {
    color: var(--el-brand);
}

.theme-elegante .blog-card--featured {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 0;
    margin-bottom: 55px;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--el-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

/* Boxed, so the box lifts (the image inside stays put). Also keeps the border that
   .blog-card:hover removes from the unboxed cards. */
.theme-elegante .blog-card--featured:hover {
    border: 1px solid var(--el-card-line-hover);
    transform: var(--el-card-lift);
    box-shadow: var(--el-shadow-hover);
}

.theme-elegante .blog-card--featured .blog-card-image {
    border: 0;
    border-radius: 0;
    transform: none;
    box-shadow: none;
}

.theme-elegante .blog-card--featured .blog-card-content {
    justify-content: center;
    gap: 13px;
    padding: clamp(26px, 4vw, 55px);
}

.theme-elegante .blog-card--featured .blog-card__title {
    font-size: clamp(24px, 2.6vw, 32px);
    line-height: 1.15;
    letter-spacing: -.024em;
    font-weight: 800;
}

.theme-elegante .blog-card--featured .blog-card__excerpt {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.6;
    color: var(--el-body);
}

/* Podcast episode card: a white box with a headphone tile, a black play button. */
.theme-elegante .podcast-card {
    gap: 13px;
    padding: 26px;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.theme-elegante .podcast-card:hover {
    border: 1px solid var(--el-card-line-hover);
    transform: var(--el-card-lift);
    box-shadow: var(--el-shadow-hover);
}

.theme-elegante .podcast-card .blog-card-content {
    flex: 1;
    gap: 13px;
}

.theme-elegante .podcast-card__top {
    gap: 11px;
    margin: 0;
}

.theme-elegante .podcast-card__icon {
    width: 34px;
    height: 34px;
    background: var(--el-tint);
    color: var(--el-brand);
    font-size: 13px;
}

.theme-elegante .podcast-card:hover .podcast-card__icon {
    background: var(--el-tint);
    color: var(--el-brand);
}

.theme-elegante .podcast-card .blog-card__date {
    margin: 0;
    font-size: 12.5px;
    color: var(--el-muted);
}

.theme-elegante .podcast-card .blog-card__title,
.theme-elegante .podcast-card .blog-card-content h3 {
    font-size: 17px;
    line-height: 1.25;
    letter-spacing: -.016em;
}

.theme-elegante .podcast-card .blog-card__excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--el-body);
}

.theme-elegante .podcast-card__listen {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    align-self: flex-start;
    margin: auto 0 0;
    height: 44px;
    padding: 0 22px;
    border-radius: 22px;
    background: var(--el-ink);
    color: var(--c-on-dark);
    font-size: 14px;
    font-weight: 600;
    transition: background .18s ease, transform .18s ease;
}

.theme-elegante .podcast-card__listen i {
    margin: 0;
    font-size: 11px;
}

.theme-elegante .podcast-card:hover .podcast-card__listen {
    background: var(--c-contrast);
}

/* Pagination: round arrows (the next arrow is dark), pill numbers. */
.theme-elegante .pagination {
    align-items: center;
}

.theme-elegante .pagination .page-numbers {
    min-width: 44px;
    height: 44px;
    padding: 0 13px;
    border-color: var(--el-line-strong);
    border-radius: 22px;
    font-weight: 500;
    font-size: 14px;
}

.theme-elegante .pagination .page-numbers.current {
    font-weight: 700;
}

.theme-elegante .pagination .page-numbers.prev,
.theme-elegante .pagination .page-numbers.next {
    width: 44px;
    padding: 0;
    border-radius: 50%;
    font-size: 13px;
}

.theme-elegante .pagination .page-numbers.next {
    background: var(--el-ink);
    border-color: var(--el-ink);
    color: var(--c-on-dark);
}

.theme-elegante .pagination a.page-numbers.next:hover {
    background: var(--c-contrast);
    color: var(--c-on-dark);
}

.theme-elegante .listen-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 21px;
}

.theme-elegante .listen-links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 18px;
    border: 1px solid var(--el-line);
    border-radius: 20px;
    background: var(--c-paper);
    color: var(--el-ink);
    font: 600 13.5px/1 var(--el-font);
    text-decoration: none;
    transition: border-color .18s ease, color .18s ease;
}

.theme-elegante .listen-links a:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

/* Shared section headings inside inner pages: a red heading on a hairline. */
.theme-elegante .section-head {
    align-items: center;
    margin-bottom: 34px;
    padding-bottom: 21px;
    border-bottom: 1px solid var(--el-line);
}

.theme-elegante .section-title,
.theme-elegante .afri-section-title {
    font-family: var(--el-font);
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.14;
    letter-spacing: -.024em;
    font-weight: 800;
    color: var(--el-brand);
}

.theme-elegante .section-lead {
    font-size: 16px;
    line-height: 1.6;
    color: var(--el-body);
}

/* 11. Events =============================================================== */

.theme-elegante .ev-archive {
    padding-top: 34px;
}

.theme-elegante .ev-toolbar {
    justify-content: center;
    margin-bottom: 21px;
}

.theme-elegante .ev-toolbar .ev-filters {
    justify-content: center;
}

.theme-elegante .ev-section + .ev-section {
    margin-top: 89px;
}

.theme-elegante .ev-section__head {
    gap: 13px;
    margin-bottom: 0;
}

.theme-elegante .ev-count {
    min-width: 30px;
    height: 30px;
    padding: 0 10px;
    border: 1px solid var(--el-line);
    border-radius: 15px;
    background: var(--c-paper);
    color: var(--el-ink-soft);
    font-size: 13.5px;
    font-weight: 700;
}

.theme-elegante .ev-section > .ev-feature-list,
.theme-elegante .ev-section > .ev-grid,
.theme-elegante .ev-section > .empty-state {
    margin-top: 34px;
}

.theme-elegante .ev-feature-list {
    gap: 21px;
}

.theme-elegante .ev-grid {
    gap: 26px 21px;
}

.theme-elegante .ev-card {
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.theme-elegante .ev-card:hover {
    border-color: var(--el-card-line-hover);
    transform: var(--el-card-lift);
    box-shadow: var(--el-shadow-hover);
}

.theme-elegante .ev-card:hover .ev-media__img {
    transform: none;
}

.theme-elegante .ev-media {
    background: var(--el-chip);
}

.theme-elegante .ev-media::before {
    inset: -34px;
    filter: blur(28px) saturate(1.1);
    opacity: .55;
    transform: scale(1.1);
}

.theme-elegante .ev-media__img {
    padding: 13px;
    filter: drop-shadow(0 10px 22px rgb(20 10 12 / .22));
    box-sizing: border-box;
}

.theme-elegante .ev-media__placeholder {
    background: repeating-linear-gradient(135deg, var(--el-stripe-1) 0 8px, var(--el-stripe-2) 8px 16px);
    color: color-mix(in srgb, var(--c-contrast) 30%, transparent);
}

.theme-elegante .ev-datebadge {
    top: 21px;
    left: 21px;
    width: 64px;
    min-width: 0;
    padding: 10px 0;
    border-radius: 12px;
    background: var(--c-paper);
    box-shadow: 0 8px 20px -12px rgb(20 10 12 / .4);
}

.theme-elegante .ev-card:not(.ev-card--feature) .ev-datebadge {
    display: none;
}

.theme-elegante .ev-datebadge__month {
    font: 600 12.5px/1 var(--el-font);
    text-transform: none;
    color: var(--el-brand);
}

.theme-elegante .ev-datebadge__day {
    margin-top: 4px;
    font-family: var(--el-font);
    font-size: 26px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--el-ink);
}

.theme-elegante .ev-datebadge__year {
    margin-top: 4px;
    font-size: 11px;
    color: var(--el-muted);
}

.theme-elegante .ev-media .ev-status {
    top: 21px;
    right: 21px;
    height: 28px;
    padding: 0 12px;
    border: 0;
    border-radius: 14px;
    background: color-mix(in srgb, var(--c-paper) 95%, transparent);
    box-shadow: 0 6px 16px -10px rgb(20 10 12 / .45);
    color: var(--el-ink);
    font-size: 12.5px;
    font-weight: 600;
}

.theme-elegante .ev-status--upcoming::before,
.theme-elegante .ev-status--live::before {
    width: 7px;
    height: 7px;
    background: var(--c-live);
}

.theme-elegante .ev-status--live::before {
    background: var(--el-brand);
}

.theme-elegante .ev-card__body {
    gap: 13px;
    padding: 21px;
}

.theme-elegante .ev-chips {
    gap: 6px;
}

.theme-elegante .ev-chip {
    height: 26px;
    padding: 0 11px;
    border: 1px solid var(--el-line);
    border-radius: 13px;
    background: var(--c-paper);
    color: var(--el-ink-soft);
    font: 600 12.5px/1 var(--el-font);
}

.theme-elegante .ev-chip--series i {
    margin-right: 6px;
    font-size: 10px;
}

.theme-elegante .ev-card__title {
    font-family: var(--el-font);
    font-size: 17px;
    line-height: 1.3;
    letter-spacing: -.016em;
    font-weight: 700;
    color: var(--el-ink);
}

.theme-elegante .ev-card__link {
    color: var(--el-ink);
}

.theme-elegante .ev-card:hover .ev-card__link {
    color: var(--el-brand);
}

.theme-elegante .ev-facts {
    gap: 9px;
    color: var(--el-ink-soft);
    font-size: 14px;
}

.theme-elegante .ev-facts i {
    width: 16px;
    color: var(--el-brand);
    font-size: 13px;
}

.theme-elegante .ev-card__excerpt {
    max-width: 62ch;
    font-size: 15px;
    line-height: 1.6;
    color: var(--el-body);
}

.theme-elegante .ev-card__footer {
    gap: 13px;
    padding-top: 8px;
}

.theme-elegante .ev-card:not(.ev-card--feature) .ev-card__footer {
    padding-top: 13px;
    border-top: 1px solid var(--el-hair);
}

.theme-elegante .ev-card .link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--el-brand);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.theme-elegante .ev-card .link-arrow .fa-arrow-right {
    display: none;
}

/* Feature (upcoming) card. */
.theme-elegante .ev-card--feature {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
}

.theme-elegante .ev-card--feature .ev-media {
    flex: none;
    min-height: 360px;
}

.theme-elegante .ev-card--feature .ev-card__body {
    gap: 16px;
    padding: clamp(26px, 4vw, 44px);
}

.theme-elegante .ev-card--feature .ev-card__title {
    font-size: clamp(24px, 2.6vw, 30px);
    line-height: 1.16;
    letter-spacing: -.022em;
    font-weight: 800;
    text-wrap: balance;
}

.theme-elegante .ev-card--feature .ev-facts {
    font-size: 14.5px;
}

.theme-elegante .ev-card--feature .ev-card__more {
    display: inline-flex;
    align-items: center;
    height: 48px;
    padding: 0 24px;
    border: 1px solid var(--el-line);
    border-radius: 24px;
    background: var(--c-paper);
    color: var(--el-ink-soft);
    font-size: 15px;
    font-weight: 600;
    transition: all .18s ease;
}

.theme-elegante .ev-card--feature:hover .ev-card__more {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

.theme-elegante .ev-card--feature .ev-card__action {
    height: 48px;
    padding: 0 26px;
    border-radius: 24px;
    font-size: 15px;
}

@media (max-width: 900px) {
    .theme-elegante .ev-card--feature {
        grid-template-columns: minmax(0, 1fr);
    }

    /* A min-height with events.css's 16:10 ratio forced the image to 480px wide, wider than a phone. */
    .theme-elegante .ev-card--feature .ev-media {
        aspect-ratio: 16 / 10;
        min-height: 0;
    }

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

@media (max-width: 640px) {
    .theme-elegante .ev-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    /* The chip bar scrolls sideways on phones; centring pushed the first chip off the left edge.
       Browsers without `safe` keep flex-start. The bleed margin (theme.css) lines the first chip
       up with the page text; the base margin: 0 above had cancelled it. */
    .theme-elegante .ev-toolbar .ev-filters,
    .theme-elegante nav.blog-tags {
        justify-content: flex-start;
        justify-content: safe center;
        margin-inline: calc(var(--gutter) * -1);
    }
}

.theme-elegante .ev-results {
    justify-content: center;
    margin: 0 0 21px;
}

/* Buttons used across the inner pages. */
.theme-elegante .btn {
    border-radius: 24px;
    font-family: var(--el-font);
    font-weight: 600;
}

.theme-elegante .btn--primary {
    background: var(--el-brand);
    border-color: var(--el-brand);
    color: var(--c-on-dark);
}

.theme-elegante .btn--primary:hover {
    background: var(--el-brand-dark);
    border-color: var(--el-brand-dark);
    color: var(--c-on-dark);
}

.theme-elegante .ev-card__calendar {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 48px;
    padding: 0 8px;
    color: var(--el-body);
    font-size: 14.5px;
    font-weight: 600;
    text-decoration: none;
}

.theme-elegante .ev-card__calendar:hover {
    color: var(--el-brand);
}

.theme-elegante .ev-highlights {
    margin: 34px 0 55px;
}

/* Event detail: light header with chips, title and facts; poster and text on the left,
   a sticky details panel on the right. */
.theme-elegante .ev-page-hero {
    /* Same ring-pattern band as the publication header and homepage "Upcoming events". */
    background:
        radial-gradient(circle 520px at 0% 0%, transparent 0, var(--el-band) 100%),
        repeating-radial-gradient(circle at 0% 0%, transparent 0 20px, color-mix(in srgb, var(--el-brand) 7%, transparent) 20px 21px),
        var(--el-band);
    border-bottom: 1px solid color-mix(in srgb, var(--el-brand) 8%, transparent);
    overflow: hidden;
}

.theme-elegante .ev-page-hero .page-hero__inner {
    padding-top: 34px;
    padding-bottom: 34px;
}

.theme-elegante .ev-page-hero .breadcrumb ol {
    margin-bottom: 21px;
}

.theme-elegante .ev-hero__content {
    gap: 16px;
}

.theme-elegante .ev-hero__title {
    max-width: 22ch;
    margin: 0;
    text-align: left;
    font-size: clamp(34px, 4.2vw, 46px);
    color: var(--el-ink);
}

.theme-elegante .ev-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 13px 34px;
}

.theme-elegante .ev-hero__facts li {
    gap: 10px;
}

.theme-elegante .ev-hero__facts strong {
    display: inline;
    color: var(--el-ink-soft);
    font-size: 13px;
    font-weight: 500;
}

.theme-elegante .ev-hero__facts small {
    display: inline;
    margin-left: 6px;
    color: var(--el-ink-soft);
    font-size: 13px;
}

.theme-elegante .ev-icon {
    width: auto;
    height: auto;
    border: 0;
    background: none;
    color: var(--el-brand);
    font-size: 13px;
}

.theme-elegante .ev-single > .wrap.section {
    padding-top: 55px;
}

.theme-elegante .ev-layout {
    grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr);
    gap: 26px;
}

.theme-elegante .ev-hero__media {
    aspect-ratio: 4 / 3;
    margin-bottom: 34px;
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .ev-hero__media .ev-media__img {
    padding: 21px;
}

.theme-elegante .ev-block__title {
    margin: 0 0 21px;
    padding: 0 0 13px;
    border: 0;
    position: relative;
    font-family: var(--el-font);
    font-size: 22px;
    letter-spacing: -.02em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .ev-block__title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 55px;
    height: 3px;
    border-radius: 2px;
    background: var(--el-brand);
}

.theme-elegante .ev-panel {
    padding: 26px;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .ev-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 13px;
    margin-bottom: 21px;
}

.theme-elegante .ev-panel__head .ev-panel__title {
    margin: 0;
}

.theme-elegante .ev-panel__head .ev-status {
    height: 26px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--el-ink-soft);
    font-size: 12.5px;
    font-weight: 600;
}

.theme-elegante .ev-panel__title {
    font-family: var(--el-font);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.016em;
    color: var(--el-ink);
}

.theme-elegante .ev-panel__title--inline {
    margin: 0 auto 0 0;
    font-size: 14px;
}

.theme-elegante .ev-details {
    gap: 0;
    margin-bottom: 21px;
}

.theme-elegante .ev-details > div {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    align-items: baseline;
    gap: 13px;
    padding: 12px 0;
    border-top: 1px solid var(--el-hair);
}

.theme-elegante .ev-details dt {
    margin: 0;
    color: var(--el-muted);
    font-size: 13px;
    line-height: 1.4;
}

.theme-elegante .ev-details dd {
    margin: 0;
    color: var(--el-ink);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.4;
}

/* Time on its own line under the date, so the two don't run together. */
.theme-elegante .ev-details__time {
    display: block;
    margin: 2px 0 0;
    font-weight: 400;
    color: var(--el-muted);
}

.theme-elegante .ev-panel__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 48px;
    padding: 0 26px;
    font-size: 15px;
}

.theme-elegante .ev-panel__calendar {
    margin-top: 10px;
}

.theme-elegante .ev-panel__calendar summary.btn--ghost {
    background: var(--c-paper);
    border: 1px solid var(--el-line);
    color: var(--el-ink-soft);
    cursor: pointer;
}

.theme-elegante .ev-panel__calendar summary.btn--ghost:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

.theme-elegante .ev-dropdown__menu {
    left: 0;
    right: 0;
    border-radius: 12px;
    box-shadow: var(--el-shadow-hover);
}

.theme-elegante .ev-panel__note,
.theme-elegante .ev-panel__closed {
    margin: 14px 0 0;
    padding: 0;
    border: 0;
    font-size: 13px;
    line-height: 1.4;
    text-align: center;
    color: var(--el-muted);
}

.theme-elegante .ev-panel__note i {
    margin-right: 5px;
    font-size: 11px;
}

.theme-elegante .ev-panel + .ev-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 13px;
    padding: 13px 26px;
}

/* Keep the icons on one row; on a narrow panel they drop below the label. */
.theme-elegante .ev-panel + .ev-panel .share {
    flex: none;
}

.theme-elegante .share {
    display: flex;
    gap: 8px;
}

.theme-elegante .share a,
.theme-elegante .share button {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--el-line);
    border-radius: 50%;
    background: var(--c-paper);
    color: var(--el-ink-soft);
    font-size: 12.5px;
    cursor: pointer;
    transition: border-color .18s ease, color .18s ease;
}

.theme-elegante .share a:hover,
.theme-elegante .share button:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

/* Series edition tabs sit inside the header band as a white card. */
.theme-elegante .ev-editions {
    margin-top: 34px;
    background: var(--c-paper);
}

/* "More events" on the detail page: a plain section, no tinted band. */
.theme-elegante .ev-related.section--muted {
    background: none;
    padding-block: 34px 89px;
}

.theme-elegante .ev-related > .wrap {
    max-width: var(--el-wrap);
    padding-inline: var(--el-gutter);
}

@media (max-width: 900px) {
    .theme-elegante .ev-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* 5. Page content ========================================================== */

.theme-elegante .page-blocks {
    max-width: none;
}

/* A hero that flows into the plugin's intro and search (Custom Tabs pages). */
.theme-elegante .page-hero--flow + .wrap.section--tight {
    padding-top: 0;
}

.theme-elegante .page-hero--flow .page-hero__body {
    padding-bottom: 0;
}

.theme-elegante .page-hero__before {
    max-width: var(--el-wrap);
    margin-top: 21px;
    padding-inline: var(--el-gutter);
}

.theme-elegante .page-hero__before .showcase-container {
    margin: 0;
}

/* 6. Custom Tabs pages (research themes, projects, learning) ================ */

.theme-elegante .custom-tabs-header-wrap {
    display: block;
    margin: 0 0 55px;
    padding: 0 21px 21px;
    border: 0;
    text-align: center;
}

.theme-elegante .custom-tabs-title {
    margin: 0 0 13px;
    font-family: var(--el-font);
    font-size: clamp(30px, 3.4vw, 40px);
    letter-spacing: -.028em;
    font-weight: 800;
    color: var(--el-brand);
}

.theme-elegante .custom-tabs-intro {
    max-width: 64ch;
    margin: 21px auto 0;
    font-size: 17px;
    line-height: 1.6;
    color: var(--el-body);
    text-wrap: pretty;
}

.theme-elegante .custom-tabs-search-bar-wrap {
    max-width: 620px;
    margin: 34px auto 0;
}

.theme-elegante .search-inner-bar {
    box-sizing: border-box;
    height: 58px;
    padding: 0 6px 0 22px;
    gap: 12px;
    background: var(--c-paper);
    border: 1px solid var(--el-line);
    border-radius: 29px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .search-inner-bar:focus-within {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
}

.theme-elegante .search-inner-bar__icon {
    position: static;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    color: var(--el-muted);
}

.theme-elegante .custom-tabs-search-input {
    height: 100%;
    font: 400 15.5px/1 var(--el-font);
    color: var(--el-ink);
}

.theme-elegante .custom-tabs-search-btn {
    flex: 0 0 auto;
    min-height: 0;
    height: 44px;
    padding: 0 26px;
    border: 0;
    border-radius: 22px;
    background: var(--el-brand);
    color: var(--c-on-dark);
    font: 600 14.5px/1 var(--el-font);
}

/* Side rail: hairline, active item marked by a red edge and red text. */
.theme-elegante .custom-tabs-container.layout-left,
.theme-elegante .custom-tabs-container.layout-right {
    gap: 55px;
}

.theme-elegante .custom-tabs-container.layout-left > .tab-headers-list,
.theme-elegante .custom-tabs-container.layout-right > .tab-headers-list {
    gap: 2px;
    border-left-color: var(--el-line);
}

.theme-elegante .custom-tabs-container.layout-left > .tab-headers-list .custom-tabs-header,
.theme-elegante .custom-tabs-container.layout-right > .tab-headers-list .custom-tabs-header {
    padding: 10px 16px 10px 18px;
    border-radius: 0;
    color: var(--el-body);
    font-size: 14px;
    line-height: 1.4;
}

.theme-elegante .custom-tabs-container.layout-left > .tab-headers-list .custom-tabs-header:hover,
.theme-elegante .custom-tabs-container.layout-right > .tab-headers-list .custom-tabs-header:hover {
    background: none;
    color: var(--el-ink);
}

.theme-elegante .custom-tabs-container.layout-left > .tab-headers-list .custom-tabs-header.tab-active,
.theme-elegante .custom-tabs-container.layout-right > .tab-headers-list .custom-tabs-header.tab-active {
    border-color: var(--el-brand);
    background: none;
    color: var(--el-brand);
    font-weight: 700;
}

.theme-elegante .custom-tabs-container.layout-left {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr);
}

/* A written panel: its first heading is the panel title with a short red rule. */
.theme-elegante .tab-content-panel.prose > :first-child:where(h1, h2, h3, h4, h5, h6),
.theme-elegante .tab-content-panel.prose > :first-child:where(h1, h2, h3, h4, h5, h6) * {
    font-family: var(--el-font) !important;
    font-size: clamp(26px, 3vw, 34px) !important;
    line-height: 1.14;
    letter-spacing: -.024em;
    font-weight: 800 !important;
    color: var(--el-ink) !important;
    text-align: left !important;
}

.theme-elegante .tab-content-panel.prose > :first-child:where(h1, h2, h3, h4, h5, h6) {
    position: relative;
    margin: 0 0 34px;
    padding: 0 0 21px;
    border: 0;
}

.theme-elegante .tab-content-panel.prose > :first-child:where(h1, h2, h3, h4, h5, h6)::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 55px;
    height: 3px;
    border-radius: 2px;
    background: var(--el-brand);
}

.theme-elegante .tab-content-panel.prose p,
.theme-elegante .tab-content-panel.prose li {
    font-size: 15.5px;
    line-height: 1.7;
    color: var(--el-body);
}

.theme-elegante .tab-content-panel.tab-content-mode-inactive {
    border-radius: 16px;
    border-color: var(--el-hair);
    box-shadow: var(--el-shadow);
}

/* Theme page: latest publications under the tabs. */
.theme-elegante .theme-publications {
    padding-top: 0;
    padding-bottom: 89px;
}

@media (max-width: 768px) {
    .theme-elegante .custom-tabs-header-wrap {
        margin-bottom: 34px;
        padding-inline: 0;
    }

    /* The side rail wraps into line tabs here. Only the first tab was flush, so later rows
       started 13px further in; align every tab to the text edge and space them with the gap. */
    .theme-elegante .custom-tabs-container.layout-left > .tab-headers-list,
    .theme-elegante .custom-tabs-container.layout-right > .tab-headers-list {
        gap: 0 20px;
    }

    .theme-elegante .custom-tabs-container.layout-left > .tab-headers-list > .tab-header-item > .custom-tabs-header,
    .theme-elegante .custom-tabs-container.layout-right > .tab-headers-list > .tab-header-item > .custom-tabs-header {
        padding-inline: 0;
    }
}

/* About page ---------------------------------------------------------------- */

.theme-elegante .el-btn--light {
    border-color: color-mix(in srgb, var(--c-on-dark) 30%, transparent);
    color: var(--c-on-dark);
}

.theme-elegante a.el-btn--light:hover {
    background: color-mix(in srgb, var(--c-on-dark) 12%, transparent);
    border-color: color-mix(in srgb, var(--c-on-dark) 55%, transparent);
    color: var(--c-on-dark);
}

.theme-elegante .el-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--el-brand);
    font-size: 14.5px;
    font-weight: 600;
    text-decoration: none;
}

.theme-elegante .el-link i {
    font-size: 10px;
}

/* Header: the ring-pattern band of the event, publication and podcast headers, with the intro on
   the left and the key facts (or the page photo, when one is set) on the right. */
.theme-elegante .about-page-hero {
    background:
        radial-gradient(circle 520px at 0% 0%, transparent 0, var(--el-band) 100%),
        repeating-radial-gradient(circle at 0% 0%, transparent 0 20px, color-mix(in srgb, var(--el-brand) 7%, transparent) 20px 21px),
        var(--el-band);
    border-bottom: 1px solid color-mix(in srgb, var(--el-brand) 8%, transparent);
    overflow: hidden;
}

.theme-elegante .about-page-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 34px 55px;
    align-items: end;
    padding-top: 34px;
    padding-bottom: 55px;
}

.theme-elegante .about-page-hero .breadcrumb ol {
    margin-bottom: 26px;
}

.theme-elegante .about-page-hero .eyebrow {
    margin-bottom: 8px;
    color: var(--el-brand);
}

.theme-elegante .about-page-hero .page-hero__title {
    margin: 0;
    text-align: left;
    color: var(--el-ink);
}

.theme-elegante .about-page-hero .page-hero__intro {
    max-width: 54ch;
    margin: 21px 0 0;
    text-align: left;
}

.theme-elegante .about-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 34px;
}

.theme-elegante .about-hero__media {
    align-self: stretch;
    min-height: 320px;
    border-radius: 16px;
    background-size: cover;
    background-position: center;
    box-shadow: var(--el-shadow);
}

.theme-elegante .about-facts-wrap {
    margin-top: 55px;
}

/* In the header the facts stack; under a photo they run as one row (.about-facts--row). */
.theme-elegante .about-facts {
    display: grid;
    margin: 0;
    overflow: hidden;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .about-facts > div {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 21px 26px;
    border-top: 1px solid var(--el-hair);
}

.theme-elegante .about-facts > div:first-child {
    border-top: 0;
}

.theme-elegante .about-facts dt {
    font-size: 32px;
    line-height: 1;
    letter-spacing: -.03em;
    font-weight: 800;
    color: var(--el-brand);
}

.theme-elegante .about-facts dd {
    margin: 0;
    font-size: 14px;
    line-height: 1.45;
    color: var(--el-body);
}

.theme-elegante .about-facts--row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.theme-elegante .about-facts--row > div {
    gap: 8px;
    padding: 34px 26px;
    border-top: 0;
    border-left: 1px solid var(--el-hair);
}

.theme-elegante .about-facts--row > div:first-child {
    border-left: 0;
}

.theme-elegante .about-facts--row dt {
    font-size: 38px;
}

/* The written sections: label + red heading on the left, copy on the right. */
.theme-elegante .about-body,
.theme-elegante .about-mission {
    margin-top: 89px;
}

.theme-elegante .about-page .container {
    max-width: none;
    padding: 0;
}

.theme-elegante .about-section {
    margin: 0;
}

.theme-elegante .about-section > h3 {
    position: relative;
    margin: 0 0 21px;
    padding-bottom: 21px;
    font-family: var(--el-font);
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.14;
    letter-spacing: -.024em;
    font-weight: 800;
    color: var(--el-brand);
}

.theme-elegante .about-section > h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 55px;
    height: 3px;
    border-radius: 2px;
    background: var(--el-brand);
}

.theme-elegante .about-section:has(> .about-content) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.618fr);
    gap: 55px;
    padding-bottom: 0;
    border: 0;
}

.theme-elegante .about-section + .about-section {
    margin-top: 55px;
}

.theme-elegante .prose .about-content p {
    color: var(--el-ink-soft);
    font-size: 17px;
    line-height: 1.7;
    text-align: left;
}

.theme-elegante .about-content {
    text-align: left;
}

.theme-elegante .mission-vision {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.theme-elegante .mission-vision .card {
    position: relative;
    padding: 44px;
    overflow: hidden;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
    font-size: 17px;
    line-height: 1.6;
    color: var(--el-ink);
}

.theme-elegante .mission-vision .card:first-child {
    background: var(--el-brand);
    border-color: var(--el-brand);
    color: var(--c-on-dark);
}

.theme-elegante .mission-vision .card h4 {
    margin: 0 0 16px;
    font: 600 13.5px/1.3 var(--el-font);
    letter-spacing: -.005em;
    color: var(--el-muted);
}

.theme-elegante .mission-vision .card:first-child h4 {
    color: color-mix(in srgb, var(--c-on-dark) 75%, transparent);
}

.theme-elegante .mission-vision .card h4 i {
    width: 34px;
    height: 34px;
    background: var(--el-tint);
    font-size: 13px;
}

.theme-elegante .mission-vision .card:first-child h4 i {
    background: color-mix(in srgb, var(--c-on-dark) 16%, transparent);
    color: var(--c-on-dark);
}

.theme-elegante .prose .mission-vision .card p {
    font-size: 18px;
    line-height: 1.5;
    letter-spacing: -.01em;
    font-weight: 600;
}

/* Thematic areas ------------------------------------------------------------ */

.theme-elegante .about-themes {
    margin-top: 89px;
}

.theme-elegante .about-themes__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 21px;
    border-bottom: 1px solid var(--el-line);
}

.theme-elegante .about-eyebrow {
    margin: 0;
    font: 600 13.5px/1.3 var(--el-font);
    color: var(--el-muted);
}

.theme-elegante .about-h2 {
    margin: 13px 0 0;
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.14;
    letter-spacing: -.024em;
    font-weight: 800;
    color: var(--el-brand);
}

.theme-elegante .about-themes__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 21px;
    margin-top: 34px;
}

.theme-elegante .about-theme {
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    gap: 13px;
    padding: 26px;
    border-radius: 16px;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    box-shadow: var(--el-shadow);
    color: var(--el-ink);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.theme-elegante .about-theme:nth-child(n+4) {
    grid-column: span 3;
}

.theme-elegante .about-theme:hover {
    transform: var(--el-card-lift);
    box-shadow: var(--el-shadow-hover);
    border-color: var(--el-card-line-hover);
    color: var(--el-ink);
}

.theme-elegante .about-theme__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--el-tint);
    color: var(--el-brand);
    font-size: 16px;
}

.theme-elegante .about-theme h3 {
    margin: 0;
    font-size: 17px;
    line-height: 1.25;
    letter-spacing: -.016em;
    font-weight: 700;
    transition: color .2s ease;
}

.theme-elegante .about-theme:hover h3 {
    color: var(--el-brand);
}

.theme-elegante .about-theme p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--el-body);
}

@media (max-width: 900px) {
    .theme-elegante .about-page-hero__inner {
        grid-template-columns: minmax(0, 1fr);
        padding-bottom: 44px;
    }

    .theme-elegante .about-hero__media {
        min-height: 200px;
    }

    .theme-elegante .about-facts,
    .theme-elegante .mission-vision {
        grid-template-columns: minmax(0, 1fr);
    }

    .theme-elegante .mission-vision .card {
        padding: 26px;
    }

    .theme-elegante .prose .mission-vision .card p {
        font-size: 17px;
    }

    .theme-elegante .about-facts > div {
        border-left: 0;
        border-top: 1px solid var(--el-hair);
    }

    .theme-elegante .about-facts > div:first-child {
        border-top: 0;
    }

    .theme-elegante .about-themes__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .theme-elegante .about-theme,
    .theme-elegante .about-theme:nth-child(n+4) {
        grid-column: auto;
    }
}

@media (max-width: 560px) {
    .theme-elegante .about-themes__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Our Work -------------------------------------------------------------------- */

.theme-elegante .work-layout {
    display: block;
}

@media (min-width: 900px) {
    .theme-elegante .work-layout.has-index {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr);
        gap: 55px;
        align-items: start;
    }
}

/* Pin the index below the sticky header, plus the admin bar when logged in. */
.theme-elegante .work-index {
    --work-index-top: calc(var(--header-h) + 24px);
    position: sticky;
    top: var(--work-index-top);
}

.admin-bar .work-index {
    --work-index-top: calc(var(--header-h) + 32px + 24px);
}

/* Stacked above the sections there is no column to pin in; a sticky index would sit over the text. */
@media (max-width: 899px) {
    .theme-elegante .work-index {
        position: static;
        margin-bottom: 34px;
    }
}

.theme-elegante .work-index ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border-left: 1px solid var(--el-line);
}

.theme-elegante .work-index a {
    display: block;
    margin-left: -1px;
    padding: 10px 16px 10px 18px;
    border-left: 2px solid transparent;
    color: var(--el-body);
    font-size: 14px;
    line-height: 1.4;
    text-decoration: none;
    transition: color .2s ease, border-color .2s ease;
}

.theme-elegante .work-index a:hover {
    color: var(--el-ink);
}

.theme-elegante .work-index a.is-active {
    border-left-color: var(--el-brand);
    color: var(--el-brand);
    font-weight: 700;
}

.theme-elegante .work-main .about-section {
    scroll-margin-top: calc(var(--header-h) + 24px);
}

.admin-bar .work-main .about-section {
    scroll-margin-top: calc(var(--header-h) + 32px + 24px);
}

.theme-elegante .work-main .about-section + .about-section {
    margin-top: 55px;
}

.theme-elegante .work-main .about-section:has(> .about-content) {
    display: block;
}

.theme-elegante .work-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 55px;
    padding-top: 26px;
    border-top: 1px solid var(--el-hair);
}

.theme-elegante a.el-btn,
.theme-elegante .about-theme,
.theme-elegante .work-actions a {
    text-decoration: none;
}

/* 7. Publication detail ==================================================== */

.theme-elegante .pub-hero {
    padding: 0 0 44px;
    /* Same ring-pattern band as the homepage "Upcoming events" section. */
    background:
        radial-gradient(circle 520px at 0% 0%, transparent 0, var(--el-band) 100%),
        repeating-radial-gradient(circle at 0% 0%, transparent 0 20px, color-mix(in srgb, var(--el-brand) 7%, transparent) 20px 21px),
        var(--el-band);
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--el-brand) 8%, transparent);
    color: var(--el-body);
    overflow: hidden;
}

.theme-elegante .pub-hero::before {
    content: none;
}

.theme-elegante .pub-hero .breadcrumb ol {
    padding-top: 26px;
    margin-bottom: 24px;
    color: var(--el-muted);
}

.theme-elegante .pub-hero .breadcrumb a {
    color: var(--el-muted);
}

.theme-elegante .pub-hero .breadcrumb a:hover {
    color: var(--el-brand);
}

.theme-elegante .pub-hero .breadcrumb [aria-current] {
    color: var(--el-ink);
}

.theme-elegante .pub-hero__grid {
    grid-template-columns: minmax(0, 224px) minmax(0, 1fr);
    gap: clamp(24px, 4vw, 44px);
    align-items: center;
    margin-top: 0;
}

.theme-elegante .pub-hero__cover {
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: none;
}

.theme-elegante .pub-hero__body {
    padding-top: 0;
}

.theme-elegante .pub-hero .eyebrow {
    display: block;
    height: auto;
    margin: 0 0 10px;
    padding: 0;
    border-radius: 0;
    background: none;
    font: 600 13.5px/1.3 var(--el-font);
    color: var(--el-brand);
}

.theme-elegante .pub-hero__body .article-head__title {
    max-width: 34ch;
    margin: 0;
    font-family: var(--el-font);
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.14;
    letter-spacing: -.024em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .pub-hero .post-meta {
    gap: 8px 20px;
    margin-top: 16px;
    font-size: 13px;
    color: var(--el-muted);
}

.theme-elegante .pub-hero .post-meta i {
    opacity: 1;
    margin-right: 8px;
}

.theme-elegante .pub-hero__actions {
    margin-top: 24px;
    gap: 10px;
}

/* Same proportions as .el-btn; min-height cancels .btn--lg so the pill ends stay semicircular. */
.theme-elegante .pub-hero__actions .btn {
    gap: 8px;
    height: 48px;
    min-height: 0;
    padding: 0 26px;
    border-radius: 999px;
    font: 600 15px/1 var(--el-font);
    transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.theme-elegante .pub-hero__actions .btn i {
    font-size: 11px;
}

.theme-elegante .pub-hero__actions .btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px -12px rgba(196, 22, 28, .35);
}

.theme-elegante .pub-hero__actions .btn--ghost {
    background: var(--c-paper);
    border: 1px solid var(--el-line);
    color: var(--el-ink-soft);
}

.theme-elegante .pub-hero__actions .btn--ghost:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

.theme-elegante .pub-layout {
    max-width: var(--el-wrap);
    padding: 55px var(--el-gutter) 89px;
    grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr);
    gap: 34px;
}

.theme-elegante .pub-section__title {
    margin: 0 0 21px;
    padding: 0 0 13px;
    border: 0;
    border-bottom: 1px solid var(--el-line);
    font-family: var(--el-font);
    font-size: clamp(21px, 2.2vw, 24px);
    line-height: 1.2;
    letter-spacing: -.018em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .pub-section + .pub-section {
    margin-top: 55px;
}

.theme-elegante .pub-reader__frame {
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
    background: var(--el-dark-soft);
}

/* Kept on screen while the body slides shut (theme.js removes is-closing at the end). */
.theme-elegante .pub-reader__frame.is-closed.is-closing .pub-reader__body {
    display: block;
}

/* Closed: a plain card like the sidebar ones (no dark frame showing at the corners). */
.theme-elegante .pub-reader__frame.is-closed {
    background: var(--c-paper);
}

.theme-elegante .pub-reader__bar {
    gap: 13px 21px;
    padding: 13px 13px 13px 16px;
    background: var(--c-paper);
    border-bottom: 1px solid var(--el-hair);
    font: 400 13.5px/1.3 var(--el-font);
}

.theme-elegante .pub-reader__file {
    gap: 12px;
    color: var(--el-muted);
}

/* File icon: a page with a folded corner, its type on a brand tag across the lower left. */
.theme-elegante .pub-reader__type {
    position: relative;
    display: inline-block;
    flex-shrink: 0;
    width: 28px;
    height: 36px;
}

.theme-elegante .pub-reader__type svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.theme-elegante .pub-reader__page {
    fill: var(--c-paper);
    stroke: color-mix(in srgb, var(--el-ink) 30%, transparent);
    stroke-width: 1.5;
}

.theme-elegante .pub-reader__fold {
    stroke: color-mix(in srgb, var(--el-ink) 30%, transparent);
    stroke-width: 1.5;
}

.theme-elegante .pub-reader__lines {
    stroke: var(--el-line-strong);
    stroke-width: 1.5;
}

.theme-elegante .pub-reader__tag {
    position: absolute;
    left: 0;
    bottom: 6px;
    padding: 2px 3px;
    border-radius: 3px;
    background: var(--el-brand);
    color: var(--c-on-dark);
    font: 700 8px/1 var(--el-font);
    letter-spacing: .04em;
}

.theme-elegante .pub-reader__tools {
    flex-wrap: wrap;
    gap: 8px;
}

.theme-elegante .pub-reader__tools a,
.theme-elegante .pub-reader__toggle {
    gap: 7px;
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--el-line);
    border-radius: 17px;
    background: var(--c-paper);
    color: var(--el-ink-soft);
    font: 600 13px/1 var(--el-font);
    transition: border-color .18s ease, color .18s ease, background .18s ease;
}

.theme-elegante .pub-reader__tools a:hover,
.theme-elegante .pub-reader__toggle:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

.theme-elegante .pub-reader__tools i {
    font-size: 11px;
}

.theme-elegante .pub-reader__type--lg {
    width: 42px;
    height: 54px;
}

.theme-elegante .pub-reader__type--lg .pub-reader__page,
.theme-elegante .pub-reader__type--lg .pub-reader__fold,
.theme-elegante .pub-reader__type--lg .pub-reader__lines {
    stroke-width: 1.2;
}

.theme-elegante .pub-reader__type--lg .pub-reader__tag {
    bottom: 9px;
    padding: 3px 5px;
    border-radius: 4px;
    font-size: 11px;
}

.theme-elegante .pub-reader__fallback {
    background: var(--c-paper);
    color: var(--el-muted);
    font-size: 14px;
}

/* Documents from the post's "Documents" box: one reader each, stacked. */
.theme-elegante .entry-documents {
    display: grid;
    gap: 13px;
}

/* One set of rings through all the document cards, as on the opportunities list: elegante.js
   gives every bar the same centre (--el-ring-x/y); without it each bar is ringed from its own right edge. */
.theme-elegante .entry-documents .pub-reader__bar {
    background:
        radial-gradient(circle var(--el-ring-fade, 420px) at var(--el-ring-x, 100%) var(--el-ring-y, 50%), transparent 0, var(--c-paper) 100%),
        repeating-radial-gradient(circle at var(--el-ring-x, 100%) var(--el-ring-y, 50%), transparent 0 20px, color-mix(in srgb, var(--el-brand) 8%, transparent) 20px 21px),
        var(--c-paper);
}

.theme-elegante .article-main .entry-documents {
    margin-top: 34px;
}

.theme-elegante .pub-reader__named {
    min-width: 0;
}

.theme-elegante .pub-reader__name {
    display: block;
    margin-bottom: 3px;
    color: var(--el-ink);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
}

.theme-elegante .pub-reader__meta {
    font-size: 13px;
}

@media (max-width: 640px) {
    /* Links that can't be shown inline have no fallback panel, so keep their "Open" button. */
    .theme-elegante .pub-reader__frame:not([data-pdf-reader]) .pub-reader__tools {
        display: flex;
    }
}

.theme-elegante .pub-card {
    padding: 26px;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .pub-card__title {
    margin: 0 0 13px;
    font-family: var(--el-font);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.016em;
    color: var(--el-ink);
}

.theme-elegante .pub-facts {
    gap: 0;
    margin: 0;
}

.theme-elegante .pub-facts > div {
    padding: 13px 0;
    border-top: 1px solid var(--el-hair);
}

.theme-elegante .pub-facts dt {
    margin-bottom: 4px;
    font-size: 12.5px;
    color: var(--el-muted);
}

.theme-elegante .pub-facts dd {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--el-ink);
}

.theme-elegante .pub-facts dd a {
    color: var(--el-brand);
}

.theme-elegante .pub-cite {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--el-body);
}

.theme-elegante .pub-aside > .share {
    display: flex;
    align-items: center;
    padding: 13px 26px;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .pub-files a {
    border-color: var(--el-hair);
    border-radius: 12px;
}

.theme-elegante .btn--ghost {
    border-radius: 24px;
}

/* 8. Article detail ======================================================== */

.theme-elegante .article-head {
    padding: 0 0 44px;
    background:
        radial-gradient(circle 520px at 0% 0%, transparent 0, var(--el-band) 100%),
        repeating-radial-gradient(circle at 0% 0%, transparent 0 20px, color-mix(in srgb, var(--el-brand) 7%, transparent) 20px 21px),
        var(--el-band);
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--el-brand) 8%, transparent);
    overflow: hidden;
}

.theme-elegante .article-head__inner {
    max-width: 900px;
    margin-top: 13px;
    padding: 34px var(--el-gutter) 0;
    text-align: center;
}

.theme-elegante .article-head__topic {
    margin: 0;
}

.theme-elegante .article-head__topic span {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 14px;
    border: 1px solid var(--el-line);
    border-radius: 14px;
    background: var(--c-paper);
    font: 600 12.5px/1 var(--el-font);
    color: var(--el-ink-soft);
}

.theme-elegante .article-head__title {
    max-width: 22ch;
    margin: 21px auto 0;
    font-family: var(--el-font);
    font-size: clamp(32px, 4.4vw, 48px);
    line-height: 1.1;
    letter-spacing: -.03em;
    font-weight: 800;
    color: var(--el-ink);
    text-wrap: balance;
}

.theme-elegante .article-head__dek {
    max-width: 52ch;
    margin: 21px auto 0;
    font-size: 18px;
    line-height: 1.55;
    color: var(--el-body);
    text-wrap: pretty;
}

.theme-elegante .article-head__byline {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-top: 26px;
    text-align: left;
}

.theme-elegante .article-head__byline p {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
}

.theme-elegante .article-head__byline strong {
    font-size: 14px;
    color: var(--el-ink);
}

.theme-elegante .article-head__byline span {
    font-size: 12.5px;
    color: var(--el-muted);
}

.theme-elegante .article-head__avatar {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--el-tint);
    font: 700 12.5px/1 var(--el-font);
    color: var(--el-brand);
}

.theme-elegante .article-thumb {
    max-width: var(--el-wrap);
    margin: 34px auto 0;
}

.theme-elegante .article-thumb img {
    width: 100%;
    max-height: 560px;
    border-radius: 16px;
    object-fit: cover;
}

.theme-elegante .article-thumb figcaption {
    margin-top: 13px;
    font-size: 12.5px;
    text-align: right;
    color: var(--el-muted);
}

.theme-elegante .article-layout {
    display: block;
    max-width: 780px;
    padding: 55px var(--el-gutter) 89px;
}

.theme-elegante .article-layout .article-main {
    min-width: 0;
}

/* Also below 960px with a TOC, where the aside stacks above the article. */
.theme-elegante .article-layout .article-aside {
    margin-bottom: 34px;
}

.theme-elegante .article-aside .share {
    display: flex;
    align-items: center;
    gap: 8px;
}

.theme-elegante .article-aside .share__label {
    margin-right: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--el-ink);
}

@media (min-width: 960px) {
    .theme-elegante .article-layout {
        max-width: var(--el-wrap);
    }

    .theme-elegante .article-layout.has-toc {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr);
        gap: 55px;
        align-items: start;
    }

    .theme-elegante .article-layout:not(.has-toc) {
        max-width: 780px;
    }

    .theme-elegante .article-layout.has-toc .article-aside {
        position: sticky;
        top: calc(var(--header-h) + 24px);
    }

    .admin-bar .article-layout.has-toc .article-aside {
        top: calc(var(--header-h) + 32px + 24px);
    }
}

.theme-elegante .article-aside__label {
    margin: 0 0 13px;
    font: 600 13.5px/1.3 var(--el-font);
    color: var(--el-muted);
}

.theme-elegante .article-toc {
    margin-bottom: 26px;
}

.theme-elegante .article-toc ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border-left: 1px solid var(--el-line);
}

.theme-elegante .article-toc a {
    display: block;
    margin-left: -1px;
    padding: 8px 14px 8px 16px;
    border-left: 2px solid transparent;
    color: var(--el-body);
    font-size: 13px;
    line-height: 1.4;
    text-decoration: none;
    transition: color .2s ease, border-color .2s ease;
}

.theme-elegante .article-toc a:hover {
    color: var(--el-ink);
}

.theme-elegante .article-toc a.is-active {
    border-left-color: var(--el-brand);
    color: var(--el-brand);
    font-weight: 600;
}

.theme-elegante .single-post .entry-content :is(h1, h2, h3) {
    scroll-margin-top: calc(var(--header-h) + 24px);
}

.admin-bar .single-post .entry-content :is(h1, h2, h3) {
    scroll-margin-top: calc(var(--header-h) + 32px + 24px);
}

.theme-elegante .single-post .entry-content h2 {
    font-family: var(--el-font);
    font-size: 26px;
    letter-spacing: -.024em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .author-box {
    border-radius: 16px;
    border-color: var(--el-hair);
    background: var(--c-paper);
    box-shadow: var(--el-shadow);
}

/* Authors from the CIPIT Authors plugin: photo (or initials), name, role. */
.theme-elegante .article-head__avatars {
    display: inline-flex;
    flex-shrink: 0;
}

.theme-elegante .article-head__avatars > * + * {
    margin-left: -10px;
}

.theme-elegante .author-avatar-link {
    display: inline-flex;
    flex-shrink: 0;
    border-radius: 50%;
}

/* A hovered photo comes to the front of the overlapping row. */
.theme-elegante .article-head__avatars .author-avatar-link:hover {
    position: relative;
    z-index: 1;
}

.theme-elegante .article-head__byline strong a {
    color: inherit;
    text-decoration: none;
}

.theme-elegante .article-head__byline strong a:hover,
.theme-elegante .article-head__byline strong a:focus-visible {
    color: var(--el-brand);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.theme-elegante .article-head__avatars .article-head__avatar {
    /* The tint is translucent, so lay it over the band colour to stop
       overlapping initials showing through each other. */
    background: linear-gradient(var(--el-tint), var(--el-tint)), var(--el-band);
    box-shadow: 0 0 0 2px var(--el-band);
    object-fit: cover;
}

.theme-elegante .author-box--people {
    flex-direction: column;
    gap: 18px;
    padding: 26px;
    border: 1px solid var(--el-hair);
}

/* Titled like the "Cite this" card above it. */
.theme-elegante .author-box--people .pub-card__title {
    margin: 0;
}

.theme-elegante .author-box__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.theme-elegante .author-box__person {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
}

/* A lone author with a bio keeps the photo level with the name. */
.theme-elegante .author-box__person:has(.author-box__bio) {
    align-items: flex-start;
}

.theme-elegante .author-box__person .author-box__avatar {
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--el-tint);
    object-fit: cover;
    font: 700 14px/1 var(--el-font);
    color: var(--el-brand);
}

.theme-elegante .author-box__person .author-box__name {
    margin: 0 0 2px;
    font-size: 15px;
    line-height: 1.3;
}

.theme-elegante .author-box__name a {
    color: inherit;
    text-decoration: none;
}

.theme-elegante .author-box__name a:hover,
.theme-elegante .author-box__name a:focus-visible {
    color: var(--el-brand);
    text-decoration: underline;
}

.theme-elegante .author-box__person .author-box__role {
    margin: 0;
    font-size: 13px;
    color: var(--el-muted);
}

.theme-elegante .author-box__person .author-box__bio {
    margin: 8px 0 0;
    font-size: 14px;
}

/* Podcast hosts and guests above the share buttons: one per row in the TOC column. */
.theme-elegante .article-people {
    margin-bottom: 26px;
}

/* Each person as wide as their name and role (up to a cap), so short entries leave no gaps. */
.theme-elegante .article-people .author-box__list {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 18px 32px;
}

/* Photo level with the name, however far a long role wraps. */
.theme-elegante .article-people .author-box__person {
    flex: 0 1 auto;
    max-width: 260px;
    align-items: flex-start;
    gap: 12px;
}

.theme-elegante .article-people .author-box__avatar {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    font-size: 13px;
}

.theme-elegante .article-people .author-box__name {
    margin: 1px 0 2px;
    font-size: 14.5px;
    font-weight: 600;
}

.theme-elegante .article-people .author-box__role {
    font-size: 12.5px;
    line-height: 1.45;
    text-wrap: pretty;
}

/* Without a TOC column: people on the left, share icons on the right. */
@media (min-width: 700px) {
    .theme-elegante .article-layout:not(.has-toc) .article-aside--people {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 34px;
    }

    .theme-elegante .article-layout:not(.has-toc) .article-aside--people .article-people {
        flex: 1;
        margin-bottom: 0;
    }

    /* Icons only, level with the photos (below the "In this episode" label). Each button
       still has its own accessible name, and the "Share" label stays for screen readers. */
    .theme-elegante .article-layout:not(.has-toc) .article-aside--people .share {
        flex-shrink: 0;
        margin-top: calc(13.5px * 1.3 + 13px + 3px);
    }

    .theme-elegante .article-layout:not(.has-toc) .article-aside--people .share__label {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

/* "More ..." under a detail page: a plain section on the page colour. */
.theme-elegante .related.section--muted {
    background: none;
    padding-block: 34px 89px;
}

.theme-elegante .related > .wrap {
    max-width: var(--el-wrap);
    padding-inline: var(--el-gutter);
}

@media (max-width: 960px) {
    .theme-elegante .pub-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .theme-elegante .pub-hero__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.theme-elegante .article-main .entry-content {
    padding-top: 0;
    border-top: 0;
}

/* 9. People (team, steering committee) ==================================== */

.theme-elegante .team-toolbar {
    margin-bottom: 34px;
}

.theme-elegante .team-search {
    position: relative;
    display: block;
    flex: 0 1 260px;
}

.theme-elegante .team-search__icon {
    position: absolute;
    left: 13px;
    top: 50%;
    width: 15px;
    height: 15px;
    color: var(--el-muted);
    transform: translateY(-50%);
    pointer-events: none;
}

.theme-elegante .team-search input {
    width: 100%;
    height: 40px;
    padding: 0 16px 0 37px;
    border: 1px solid var(--el-line);
    border-radius: 20px;
    background: var(--c-paper);
    font: 400 13.5px/1 var(--el-font);
    color: var(--el-ink);
}

.theme-elegante .team-search input:focus {
    outline: none;
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
}

.theme-elegante .team-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 26px 21px;
}

@media (max-width: 960px) {
    .theme-elegante .team-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .theme-elegante .team-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
}

.theme-elegante .team-card {
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.theme-elegante .team-card[hidden] {
    display: none;
}

.theme-elegante .team-card:hover {
    transform: var(--el-card-lift);
    border-color: var(--el-card-line-hover);
    box-shadow: var(--el-shadow-hover);
}

.theme-elegante .team-card:hover .team-photo {
    transform: none;
}

.theme-elegante .team-photo-container {
    background: var(--el-chip);
}

.theme-elegante .photo-placeholder {
    background: repeating-linear-gradient(135deg, var(--el-stripe-1) 0 8px, var(--el-stripe-2) 8px 16px);
    color: color-mix(in srgb, var(--c-contrast) 25%, transparent);
    font-family: var(--el-font);
}

.theme-elegante .team-card-content {
    gap: 4px;
    padding: 21px;
}

.theme-elegante .team-card__name {
    font-family: var(--el-font);
    font-size: 16px;
    letter-spacing: -.012em;
    color: var(--el-ink);
    transition: color .2s ease;
}

.theme-elegante .team-card:hover .team-card__name {
    color: var(--el-brand);
}

.theme-elegante .team-position {
    font: 600 12.5px/1.4 var(--el-font);
    color: var(--el-brand);
}

.theme-elegante .team-card__more {
    display: none;
}

/* Profile page (team, steering committee, fellows): photo on the left, name, role, links and
   bio together on the right. */
.theme-elegante .profile-page {
    max-width: var(--el-wrap);
    padding: 34px var(--el-gutter) 0; /* the newsletter below brings its own top margin */
}

.theme-elegante .profile-page .breadcrumb ol {
    margin-bottom: 34px;
}

.theme-elegante .profile-layout {
    display: grid;
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    gap: clamp(28px, 5vw, 64px);
    align-items: start;
}

.theme-elegante .profile__photo {
    position: sticky;
    top: calc(var(--header-h, 90px) + 24px);
    border-radius: 16px;
    border: 1px solid var(--el-hair);
}

.theme-elegante .profile__main {
    max-width: 72ch;
}

.theme-elegante .profile__name {
    margin: 0;
    font-family: var(--el-font);
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.1;
    letter-spacing: -.028em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .profile__position {
    margin: 10px 0 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--el-brand);
}

.theme-elegante .profile__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.theme-elegante .profile__links a {
    display: inline-flex;
    gap: 8px;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--el-body);
    font-size: 14px;
    font-weight: 600;
}

.theme-elegante .profile__links a:hover {
    color: var(--el-brand);
}

.theme-elegante .profile-bio {
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px solid var(--el-line);
}

.theme-elegante .profile-bio > :first-child {
    margin-top: 0;
}

@media (max-width: 760px) {
    .theme-elegante .profile-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .theme-elegante .profile__photo {
        position: static;
        width: min(200px, 60%);
    }
}

/* Dark call-to-action band. */
.theme-elegante .band-wrap {
    margin-bottom: 55px;
}

.theme-elegante .band {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 26px 34px;
    padding: clamp(26px, 4vw, 44px);
    border-radius: 16px;
    background: var(--el-ink);
    color: var(--c-on-dark);
}

.theme-elegante .band__eyebrow {
    margin: 0 0 8px;
    font: 600 13px/1.3 var(--el-font);
    color: color-mix(in srgb, var(--c-on-dark) 60%, transparent);
}

.theme-elegante .band__title {
    max-width: 22ch;
    margin: 0;
    font-size: clamp(22px, 2.6vw, 28px);
    line-height: 1.16;
    letter-spacing: -.022em;
    font-weight: 800;
    color: var(--c-on-dark);
}

.theme-elegante .band__text {
    max-width: 48ch;
    margin: 13px 0 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: color-mix(in srgb, var(--c-on-dark) 75%, transparent);
}

.theme-elegante .band__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
}

/* 10. Contact ============================================================== */

.theme-elegante .contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 26px;
    align-items: stretch;
}

@media (max-width: 900px) {
    .theme-elegante .contact-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Both columns share the row height: the map takes up the slack on the left,
   the message box on the right. */
.theme-elegante .contact-side {
    display: flex;
    flex-direction: column;
    gap: 13px;
}

.theme-elegante .contact-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 21px 26px;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
    font-size: 15px;
    line-height: 1.5;
    color: var(--el-ink);
}

.theme-elegante .contact-card__icon {
    display: grid;
    flex: none;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--el-tint);
    color: var(--el-brand);
    font-size: 13px;
}

.theme-elegante .contact-card__label {
    margin: 0 0 4px;
    font: 600 12.5px/1.3 var(--el-font);
    color: var(--el-brand);
}

.theme-elegante .contact-card address {
    font-style: normal;
}

.theme-elegante .contact-card a {
    color: var(--el-ink);
    font-weight: 600;
    text-decoration: none;
}

.theme-elegante .contact-card a:hover {
    color: var(--el-brand);
}

.theme-elegante .contact-card--social {
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}

.theme-elegante .contact-card--social .contact-card__label {
    margin: 0;
    white-space: nowrap;
}

.theme-elegante .contact-card--social .contact-social {
    flex: none;
}

.theme-elegante .contact-social {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.theme-elegante .contact-social a {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--el-tint);
    color: var(--el-brand);
    font-size: 13px;
    transition: background .18s ease, color .18s ease;
}

.theme-elegante .contact-social a:hover {
    background: var(--el-brand);
    color: var(--c-on-dark);
}

.theme-elegante .contact__map {
    position: relative;
    flex: 1 1 auto;
    min-height: 220px;
    overflow: hidden;
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .contact__map iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.theme-elegante .contact-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: clamp(26px, 4vw, 34px);
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .contact-form__title {
    margin: 0;
    font-size: 24px;
    letter-spacing: -.022em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .contact-form__hint {
    margin: -8px 0 0;
    font-size: 13px;
    color: var(--el-muted);
}

.theme-elegante :is(.contact-form__row, .comment-form__row) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

@media (max-width: 560px) {
    .theme-elegante :is(.contact-form__row, .comment-form__row) {
        grid-template-columns: minmax(0, 1fr);
    }
}

.theme-elegante :is(.contact-form, .comment-form) .field {
    display: grid;
    gap: 6px;
}

.theme-elegante :is(.contact-form, .comment-form) .field > span {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--el-ink);
}

.theme-elegante :is(.contact-form, .comment-form) :is(input[type="text"], input[type="email"], select, textarea) {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--el-line);
    border-radius: 10px;
    background: var(--el-chip);
    font: 400 14.5px/1.4 var(--el-font);
    color: var(--el-ink);
    transition: border-color .18s ease, background .18s ease;
}

.theme-elegante :is(.contact-form, .comment-form) textarea {
    min-height: 140px;
    resize: vertical;
}

/* Drop the native select chrome so it matches the text inputs; own chevron. */
.theme-elegante :is(.contact-form, .comment-form) .field select {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 42px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236F696C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 12px 8px;
    cursor: pointer;
}

.theme-elegante :is(.contact-form, .comment-form) .field select:hover:not(:focus) {
    border-color: rgba(0, 0, 0, .18);
}

.theme-elegante :is(.contact-form, .comment-form) .field select::-ms-expand {
    display: none;
}

/* Style the open list too where the browser allows it (Chromium's
   customizable select); elsewhere the native popup stays. */
@supports (appearance: base-select) {
    .theme-elegante :is(.contact-form, .comment-form) .field select,
    .theme-elegante :is(.contact-form, .comment-form) .field select::picker(select) {
        appearance: base-select;
    }

    .theme-elegante :is(.contact-form, .comment-form) .field select::picker-icon {
        display: none;
    }

    .theme-elegante :is(.contact-form, .comment-form) .field select::picker(select) {
        margin-block: 6px;
        padding: 6px;
        border: 1px solid var(--el-line);
        border-radius: 12px;
        background: var(--c-paper);
        box-shadow: var(--el-shadow-hover);
    }

    .theme-elegante :is(.contact-form, .comment-form) .field select option {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
        border-radius: 8px;
        font: 400 14.5px/1.4 var(--el-font);
        color: var(--el-ink);
        cursor: pointer;
    }

    .theme-elegante :is(.contact-form, .comment-form) .field select option:is(:hover, :focus-visible) {
        outline: none;
        background: var(--el-chip);
    }

    .theme-elegante :is(.contact-form, .comment-form) .field select option:checked {
        font-weight: 700;
        color: var(--el-brand);
    }

    .theme-elegante :is(.contact-form, .comment-form) .field select option::checkmark {
        order: 1;
        margin-left: auto;
        color: var(--el-brand);
    }
}

.theme-elegante :is(.contact-form, .comment-form) :is(input, select, textarea):focus {
    outline: none;
    background-color: var(--c-paper);
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
}

.theme-elegante .contact-form .field:has(textarea) {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.theme-elegante .contact-form textarea {
    flex: 1 1 auto;
}

.theme-elegante .contact-form .el-btn {
    align-self: flex-start;
}

.theme-elegante .contact-form__trap {
    position: absolute;
    left: -9999px;
    height: 0;
    overflow: hidden;
}

.theme-elegante .contact-card address,
.theme-elegante .contact-card p {
    margin: 0;
}

/* Blog comments: the list, then the form in a card like the contact form. */
.theme-elegante .comments {
    display: grid;
    gap: 26px;
    margin-top: 55px;
}

.theme-elegante .comments__title {
    margin: 0;
    font-size: 22px;
    letter-spacing: -.02em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .comment-list,
.theme-elegante .comment-list .children {
    list-style: none;
    margin: 0;
    padding: 0;
}

.theme-elegante .comment-list .children {
    margin-left: clamp(16px, 5vw, 52px);
}

.theme-elegante .comment-body {
    padding: 21px 0;
    border-bottom: 1px solid var(--el-line);
}

.theme-elegante .comment-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    font-size: 13px;
    color: var(--el-muted);
}

.theme-elegante .comment-author {
    display: flex;
    align-items: center;
    gap: 10px;
}

.theme-elegante .comment-author .avatar {
    border-radius: 50%;
}

.theme-elegante .comment-author .fn {
    font-weight: 700;
    font-style: normal;
    color: var(--el-ink);
}

.theme-elegante .comment-author .says {
    display: none;
}

.theme-elegante .comment-metadata a {
    color: inherit;
    text-decoration: none;
}

.theme-elegante .comment-awaiting-moderation {
    margin: 8px 0 0;
    font-size: 13px;
    color: var(--el-muted);
}

.theme-elegante .comment-content {
    margin-top: 10px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--el-body);
}

.theme-elegante .comment-content p {
    margin: 0 0 10px;
}

.theme-elegante .comment-body .reply a {
    font-size: 13px;
    font-weight: 700;
    color: var(--el-brand);
    text-decoration: none;
}

.theme-elegante .comment-card {
    padding: clamp(26px, 4vw, 34px);
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .comment-list .comment-card {
    margin-top: 16px;
}

.theme-elegante .comment-reply-title {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin: 0 0 6px;
    font-size: 22px;
    letter-spacing: -.02em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .comment-reply-title small a {
    font-size: 13px;
    font-weight: 700;
    color: var(--el-muted);
}

.theme-elegante .comment-form {
    display: grid;
    gap: 16px;
}

.theme-elegante .comment-form p {
    margin: 0;
}

.theme-elegante .comment-form__hint,
.theme-elegante .comment-form .logged-in-as,
.theme-elegante .cipit-spam-guard-notice {
    margin: 0;
    font-size: 13px;
    color: var(--el-muted);
}

.theme-elegante .cipit-spam-guard-notice a {
    color: inherit;
}

.theme-elegante .comment-form-cookies-consent {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font-size: 13px;
    color: var(--el-body);
}

/* 12. Search, archives, 404 ================================================= */

.theme-elegante .section > .blog-tags:not([role="tablist"]) {
    margin-bottom: 34px;
    padding-bottom: 21px;
    border-bottom: 1px solid var(--el-line);
}

.theme-elegante .result-list {
    max-width: none;
}

.theme-elegante .result {
    gap: 21px;
    padding: 26px 0;
    border-bottom: 1px solid var(--el-hair);
}

.theme-elegante .result:first-child {
    padding-top: 0;
}

.theme-elegante .result__thumb {
    width: 96px;
    height: 96px;
    border-radius: 12px;
    border: 1px solid var(--el-line-soft);
}

.theme-elegante .result .eyebrow {
    margin: 0 0 6px;
    font: 600 12.5px/1.3 var(--el-font);
    color: var(--el-brand);
}

.theme-elegante .result__title {
    margin: 0 0 8px;
    font-family: var(--el-font);
    font-size: 20px;
    line-height: 1.25;
    letter-spacing: -.016em;
    font-weight: 700;
}

.theme-elegante .result__title a {
    color: var(--el-ink);
}

.theme-elegante .result__title a:hover {
    color: var(--el-brand);
    text-decoration: none;
}

.theme-elegante .result__excerpt {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--el-body);
}

.theme-elegante .result .post-meta {
    font-size: 12.5px;
    color: var(--el-muted);
}

.theme-elegante .empty-state {
    border-radius: 16px;
    border-color: var(--el-line);
    background: var(--c-paper);
}

/* Notices archive (/notice/): the home page notice cards, plus a date. */
.theme-elegante .notice-archive .el-notices__grid {
    margin-top: 0;
}

.theme-elegante .el-notice__date {
    margin-top: -6px;
    font-size: 13px;
    color: var(--el-muted);
}

/* Plugin items on the article layout (single.php): video player and the item's link buttons. */
.theme-elegante .entry-video {
    aspect-ratio: 16 / 9;
    margin: 0 0 34px;
    overflow: hidden;
    border-radius: 16px;
    background: var(--el-ink);
}

.theme-elegante .entry-video iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.theme-elegante .entry-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin: 34px 0 0;
}

/* Event series page: a left-aligned light header with the series facts as a stat row. */
.theme-elegante .ev-series-hero {
    background:
        radial-gradient(circle 520px at 0% 0%, transparent 0, var(--el-band) 100%),
        repeating-radial-gradient(circle at 0% 0%, transparent 0 20px, color-mix(in srgb, var(--el-brand) 7%, transparent) 20px 21px),
        var(--el-band);
    border-bottom: 1px solid color-mix(in srgb, var(--el-brand) 8%, transparent);
    overflow: hidden;
}

.theme-elegante .ev-series-hero .page-hero__inner {
    padding-top: 34px;
    padding-bottom: 44px;
}

.theme-elegante .ev-series__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 34px;
    align-items: end;
}

.theme-elegante .ev-series__intro .breadcrumb ol {
    margin-bottom: 26px;
}

.theme-elegante .ev-series-hero .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    color: var(--el-brand);
}

.theme-elegante .ev-series-hero .page-hero__title {
    margin: 0;
    text-align: left;
    color: var(--el-ink);
}

.theme-elegante .ev-series-hero .page-hero__intro {
    margin-left: 0;
    text-align: left;
}

.theme-elegante .ev-series-hero .ev-hero__actions {
    margin-top: 26px;
}

.theme-elegante .ev-series__stats {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    margin: 0;
    overflow: hidden;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .ev-series__stats > div {
    display: flex;
    flex-direction: column-reverse;
    gap: 6px;
    padding: 21px 26px;
    border: 0;
    border-left: 1px solid var(--el-hair);
    text-align: left;
}

.theme-elegante .ev-series__stats > div:first-child {
    border-left: 0;
}

.theme-elegante .ev-series__stats dt {
    font-size: 13px;
    color: var(--el-body);
}

.theme-elegante .ev-series__stats dd {
    margin: 0;
    font-size: 32px;
    line-height: 1;
    letter-spacing: -.03em;
    font-weight: 800;
    color: var(--el-brand);
}

@media (max-width: 900px) {
    .theme-elegante .ev-series__hero {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* Movement is decoration here: switch it off for people who ask for less. */
@media (prefers-reduced-motion: reduce) {
    .theme-elegante :is(.book-card, .book-cover, .blog-card, .blog-card-image, .podcast-card, .ev-card,
        .team-card, .about-theme, .el-btn, .search-bar .btn, .listen-links a) {
        transition: none;
    }

    .theme-elegante :is(.book-card:hover .book-cover, .blog-card:hover .blog-card-image, .podcast-card:hover,
        .ev-card:hover, .team-card:hover, .about-theme:hover, a.el-btn:hover, .search-bar .btn:hover) {
        transform: none;
    }
}

/* Opportunities ---------------------------------------------------------------- */

.theme-elegante .opps-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 13px;
    padding: clamp(34px, 5vw, 55px) 26px;
    text-align: center;
    background: var(--c-paper);
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
}

.theme-elegante .opps-empty__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--el-tint);
    color: var(--el-brand);
    font-size: 16px;
}

.theme-elegante .opps-empty h2 {
    margin: 8px 0 0;
    font-size: 22px;
    letter-spacing: -.02em;
    font-weight: 800;
    color: var(--el-ink);
}

.theme-elegante .opps-empty p {
    max-width: 52ch;
    margin: 0;
    font-size: 15.5px;
    line-height: 1.6;
    color: var(--el-body);
}

.theme-elegante .opps-empty__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 11px;
    margin-top: 13px;
}

/* Opportunities from the CIPIT Opportunities plugin: the list's own look ships with the plugin. */
.theme-elegante .opps-closed {
    margin-top: 55px;
}

.theme-elegante .opps-ways {
    padding-top: 34px;
    padding-bottom: 89px;
}

.theme-elegante .opps-ways__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 0;
}

.theme-elegante .opps-ways__grid .about-theme,
.theme-elegante .opps-ways__grid .about-theme:nth-child(n+4) {
    grid-column: auto;
}

.theme-elegante .about-theme__more {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--el-brand);
}

.theme-elegante .about-theme__more i {
    font-size: 10px;
}

@media (max-width: 960px) {
    .theme-elegante .opps-ways__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .theme-elegante .opps-ways__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Showcase banner (plugin): text reads left to right, tag is a small pill. */
body.theme-elegante .showcase-container .slide-action-group {
    align-items: flex-start;
    text-align: left;
}

body.theme-elegante .showcase-container .slide-tag {
    padding: 0 12px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    border-radius: 13px;
    font: 600 12.5px/1 var(--el-font);
    letter-spacing: 0;
}

/* A 16:9 box is too short for tag, title and button on a phone, and the
   arrows land on the title. Let the slide grow, keep the dots clear of the
   button, and leave paging to swipe and the dots. */
@media (max-width: 640px) {
    body.theme-elegante .showcase-container .slide-content-wrap {
        aspect-ratio: auto;
        min-height: 240px;
    }

    body.theme-elegante .showcase-container .slide-details {
        padding: 24px 20px 48px;
    }

    body.theme-elegante .showcase-container .slide-title {
        font-size: 22px;
    }

    body.theme-elegante .showcase-container .nav-arrow {
        display: none;
    }
}

/* A bold first paragraph pasted from Word is the panel's title. */
.theme-elegante .tab-content-panel.prose > p.is-bold-heading:first-child,
.theme-elegante .tab-content-panel.prose > p.is-bold-heading:first-child * {
    font-family: var(--el-font) !important;
    font-size: clamp(22px, 2.4vw, 28px) !important;
    line-height: 1.2;
    letter-spacing: -.022em;
    font-weight: 800 !important;
    color: var(--el-ink) !important;
    text-align: left !important;
}

.theme-elegante .tab-content-panel.prose > p.is-bold-heading:first-child {
    margin: 0 0 26px;
}


/* Reading text: left-aligned and unhyphenated, as in the design. The Nexus theme justified copy,
   which opens wide gaps in narrow columns. Centred and right-aligned paragraphs keep their alignment. */
.theme-elegante .prose {
    font-size: 17px;
    line-height: 1.7;
    color: var(--el-ink-soft);
}

.theme-elegante .prose :is(p, li, div:not([class])),
.theme-elegante .prose p[align],
.theme-elegante .prose [style*="text-align: justify"],
.theme-elegante .prose [style*="text-align: left"] {
    text-align: left !important;
    -webkit-hyphens: manual;
    hyphens: manual;
}

.theme-elegante .prose p[align="center"],
.theme-elegante .prose p[style*="text-align: center"] {
    text-align: center !important;
}

.theme-elegante .prose p[align="right"],
.theme-elegante .prose p[style*="text-align: right"] {
    text-align: right !important;
}

.theme-elegante .tab-content-panel.prose {
    font-size: 15.5px;
}

.theme-elegante .article-main .entry-content {
    max-width: 720px;
}

/* Post content on detail pages (posts, publications, events, team bios) and in tab panels is
   justified. Hyphenation splits long words at line ends so the word gaps stay even; phones keep
   ragged-right, as their column is too narrow to justify cleanly. Tables, headings typed as bold
   paragraphs and centred/right-aligned text are left alone. */
@media (min-width: 560px) {
    .theme-elegante :is(.article-main .entry-content, .pub-main .entry-content, .ev-prose, .profile-bio, .tab-content-panel.prose) :is(p, li, div:not([class])):not(table *, .is-bold-heading, [align="center"], [align="right"], [style*="text-align: center"], [style*="text-align: right"]) {
        text-align: justify !important;
        -webkit-hyphens: auto;
        hyphens: auto;
        hyphenate-limit-chars: 6 3 2;
    }
}

.theme-elegante .tab-content-panel.prose > p.is-bold-heading:first-child::after {
    content: none;
}

/* Videos plugin: cards match the Research Outputs cards they share tabs with
   (same grid gap, spacing under the thumbnail, and red bold 0.8rem title); the
   plugin's own 15px top margin is reset. */
.theme-elegante .video-grid-layout {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px 26px;
    margin-bottom: 0;
}

@media (max-width: 960px) {
    .theme-elegante .video-grid-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .theme-elegante .video-grid-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* The plugin's black letterbox background is painted under the border too, and
   --c-line is translucent here, so the hairline showed up black. Keep it inside. */
.theme-elegante .video-thumb-wrapper {
    background-clip: padding-box;
    transition: transform .2s ease, box-shadow .2s ease;
}

/* Hover as the other unboxed cards: the thumbnail frame lifts, the picture does not zoom.
   !important: theme.css flattens plugin output (no shadows or hover lifts). */
.theme-elegante .video-thumb-wrapper:hover {
    transform: var(--el-card-lift) !important;
    box-shadow: var(--el-shadow-hover) !important;
}

.theme-elegante .video-thumb-wrapper:hover .grid-thumb {
    transform: scale(1.08); /* the plugin's resting crop */
}

.theme-elegante .video-card-details {
    padding: 0.9rem 0 0;
}

.theme-elegante .video-card-details .video-card-title {
    margin: 0;
    color: var(--primary-color, var(--el-brand));
    font: 700 0.8rem/1.3 var(--el-font);
    letter-spacing: 0;
    transition: color 0.3s ease;
}

.theme-elegante .video-thumb-wrapper:hover + .video-card-details .video-card-title {
    color: var(--primary-hover, var(--el-brand));
}

/* Section home pages (Research, Publications, News & Events, About Us) ------ */

.theme-elegante .section-home__intro {
    max-width: 720px;
    margin: 0 auto 55px;
}

.theme-elegante .section-home__group + .section-home__group {
    margin-top: 55px;
}

/* Groups of one or two links sit side by side, their cards stacked. */
.theme-elegante .section-home--columns .section-home__groups {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px 21px;
}

.theme-elegante .section-home--columns .section-home__group + .section-home__group {
    margin-top: 0;
}

.theme-elegante .section-home--columns .section-home__grid {
    grid-template-columns: minmax(0, 1fr);
}

/* Share row tracks across the columns so cards in the same row match in
   height. Columns mode holds at most two links per group: heading + 2 rows. */
@supports (grid-template-rows: subgrid) {
    @media (min-width: 961px) {
        .theme-elegante .section-home--columns .section-home__groups {
            row-gap: 21px;
        }

        .theme-elegante .section-home--columns .section-home__group {
            display: grid;
            grid-row: span 3;
            grid-template-rows: subgrid;
        }

        .theme-elegante .section-home--columns .section-home__heading {
            margin: 0;
        }

        .theme-elegante .section-home--columns .section-home__grid {
            grid-row: span 2;
            grid-template-rows: subgrid;
        }
    }
}

.theme-elegante .section-home__heading {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 0 0 21px;
    font: 800 22px/1.2 var(--el-font);
    letter-spacing: -.02em;
    color: var(--el-ink);
}

.theme-elegante .section-home__heading i {
    color: var(--el-brand);
    font-size: 18px;
}

.theme-elegante .section-home__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 21px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.theme-elegante .section-home__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    padding: 21px 55px 21px 21px;
    border: 1px solid var(--el-hair);
    border-radius: 16px;
    background: var(--c-paper);
    box-shadow: var(--el-shadow);
    color: var(--el-ink);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.theme-elegante .section-home__card:hover {
    border-color: var(--el-card-line-hover);
    box-shadow: var(--el-shadow-hover);
    transform: var(--el-card-lift);
    text-decoration: none;
}

.theme-elegante .section-home__card-title {
    font: 700 17px/1.3 var(--el-font);
    letter-spacing: -.01em;
}

.theme-elegante .section-home__card:hover .section-home__card-title {
    color: var(--el-brand);
}

.theme-elegante .section-home__card-text {
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--el-body);
}

.theme-elegante .section-home__card-arrow {
    position: absolute;
    top: 24px;
    right: 21px;
    font-size: 14px;
    color: var(--el-muted);
    transition: color .18s ease, transform .18s ease;
}

.theme-elegante .section-home__card:hover .section-home__card-arrow {
    color: var(--el-brand);
    transform: translateX(3px);
}

.theme-elegante .section-home__latest {
    padding-top: 0;
    padding-bottom: 89px;
}

@media (max-width: 960px) {
    .theme-elegante .section-home__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .theme-elegante .section-home--columns .section-home__groups {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 600px) {
    .theme-elegante .section-home__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* 16px form fields on phones and tablets: iOS Safari zooms the page when a
   focused field is smaller, and leaves it zoomed. */
@media (max-width: 899px), (pointer: coarse) {
    .theme-elegante :is(input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="submit"], [type="button"], [type="range"]), select, textarea) {
        font-size: 16px;
    }
}

/* Databases tab (Research Outputs on IP & Innovation): a flat row like the other tabs' cards,
   the database site's preview in the theme's thumbnail frame beside its title and text. */
.theme-elegante .db-card {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 28px;
    align-items: center;
}

.theme-elegante .db-card__shot {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    border: 1px solid var(--el-line-soft);
    border-radius: 12px;
    background: var(--el-placeholder);
}

.theme-elegante .db-card__shot img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0;
    object-fit: cover;
}

.theme-elegante .db-card__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}

.theme-elegante .tab-content-panel.prose .db-card .db-card__body > p {
    margin: 0;
    text-align: left !important;
    -webkit-hyphens: manual;
    hyphens: manual;
}

.theme-elegante .tab-content-panel .db-card__title {
    margin: 0;
    font: 700 15px/1.35 var(--el-font);
    text-wrap: pretty;
}

.theme-elegante .db-card__title a {
    color: var(--el-brand);
    text-decoration: none;
    transition: color .2s;
}

.theme-elegante .db-card:hover .db-card__title a {
    color: var(--el-brand-dark);
}

.theme-elegante .tab-content-panel .db-card .db-card__text {
    color: var(--el-body);
    font-size: 13.5px;
    line-height: 1.6;
}

.theme-elegante .tab-content-panel .db-card .db-card__sections {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    color: var(--el-subtle);
    font-size: 13px;
    line-height: 1.5;
}

.theme-elegante .db-card__sections a {
    color: var(--el-ink-soft);
    font-weight: 600;
    text-decoration: none;
    transition: color .18s ease;
}

.theme-elegante .db-card__sections a:hover {
    color: var(--el-brand);
}

/* The document reader's button. */
.theme-elegante .db-card__open {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    margin-top: 4px;
    padding: 0 14px;
    border: 1px solid var(--el-line);
    border-radius: 17px;
    background: var(--c-paper);
    color: var(--el-ink-soft);
    font: 600 13px/1 var(--el-font);
    text-decoration: none;
    transition: border-color .18s ease, color .18s ease;
}

.theme-elegante .db-card__open:hover {
    border-color: color-mix(in srgb, var(--el-brand) 45%, transparent);
    color: var(--el-brand);
}

.theme-elegante .db-card__open i {
    font-size: 11px;
}

@media (max-width: 760px) {
    .theme-elegante .db-card {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
}

/* [dashboard-grid] (Visualisation Dashboards tabs): flat cards like the Research Outputs grids,
   16:9 preview in the theme's thumbnail frame, small red title, three-line excerpt and a quiet
   "Open dashboard" link pinned to the bottom so the cards in a row line up. */
.theme-elegante .dash-grid {
    display: grid;
    grid-template-columns: repeat(var(--dash-cols, 3), minmax(0, 1fr));
    gap: 34px 26px;
    margin: 2rem 0;
}

.theme-elegante .dash-card {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    min-width: 0;
}

.theme-elegante .dash-card__thumb {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    margin-bottom: .15rem;
    border: 1px solid var(--el-line-soft);
    border-radius: 12px;
    background: var(--el-chip);
}

.theme-elegante .dash-card__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0;
    object-fit: cover;
    object-position: top center;
}

.theme-elegante .dash-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: repeating-linear-gradient(135deg, var(--el-stripe-1) 0 8px, var(--el-stripe-2) 8px 16px);
    color: color-mix(in srgb, var(--el-ink) 22%, transparent);
    font-size: 2rem;
}

.theme-elegante .tab-content-panel .dash-card .dash-card__title,
.theme-elegante .dash-card .dash-card__title {
    margin: 0;
    padding: 0;
    border: 0;
    font: 700 .8rem/1.3 var(--el-font);
    letter-spacing: 0;
    text-align: left;
    text-wrap: pretty;
}

.theme-elegante .dash-card__title a {
    color: var(--el-brand);
    text-decoration: none;
    word-break: normal;
    overflow-wrap: break-word;
    transition: color .3s ease;
}

.theme-elegante .dash-card:hover .dash-card__title a,
.theme-elegante .dash-card__title a:focus-visible {
    color: var(--el-brand-dark);
}

.theme-elegante .tab-content-panel.prose .dash-card p.dash-card__excerpt,
.theme-elegante .dash-card .dash-card__excerpt {
    display: -webkit-box;
    margin: -.2rem 0 0;
    overflow: hidden;
    color: var(--el-body);
    font-size: .8rem;
    line-height: 1.55;
    text-align: left !important;
    -webkit-hyphens: manual;
    hyphens: manual;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.theme-elegante .dash-card__open {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    color: var(--el-ink-soft);
    font: 600 12.5px/1.3 var(--el-font);
    text-decoration: none;
    transition: color .18s ease;
}

.theme-elegante .dash-card__open i {
    font-size: 10px;
}

.theme-elegante .dash-card__open:hover {
    color: var(--el-brand);
}

@media (max-width: 1024px) {
    .theme-elegante .dash-grid {
        grid-template-columns: repeat(min(var(--dash-cols, 3), 2), minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .theme-elegante .dash-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .theme-elegante .dash-card__title a,
    .theme-elegante .dash-card__open {
        transition: none;
    }
}

/* Card hover in the plugin grids (Research Outputs, Dashboards, Databases): unboxed cards, so the
   image frame lifts as on the theme's book and blog cards; the red titles darken (in each section).
   !important: theme.css flattens plugin output (no shadows or hover lifts). */
.theme-elegante :is(.cipit-ro-thumb, .dash-card__thumb, .db-card__shot) {
    transition: transform .2s ease, box-shadow .2s ease;
}

.theme-elegante :is(.cipit-ro-card:hover .cipit-ro-thumb, .dash-card:hover .dash-card__thumb, .db-card:hover .db-card__shot) {
    transform: var(--el-card-lift) !important;
    box-shadow: var(--el-shadow-hover) !important;
}

/* [cipit_resources] cards (theme.css .focus-card): boxed like the rest. */
.theme-elegante .focus-card {
    border-color: var(--el-hair);
    border-radius: 16px;
    box-shadow: var(--el-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.theme-elegante a.focus-card:hover {
    transform: var(--el-card-lift);
    border-color: var(--el-card-line-hover);
    box-shadow: var(--el-shadow-hover);
}
