/*
Theme Name: Astra Child
Template: astra
Author:
Description: RT Lab child theme
Version: 1.0
*/

/* Google Fonts — @import must be first */
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:wght@400;500&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&display=swap');

/* ============================================================
   RT LAB — THEME STYLES

   TABLE OF CONTENTS
   ─────────────────
   00. Design Tokens
   01. Base & Layout
   02. Publication / News / Events Grid
   03. Citations
   04. Book Chapters
   05. Team
   06. Research Listing
   07. Beyond Chemistry
   08. Gallery
   09. Shared Pagination
   10. Contact Form (WPForms #3362)
   11. Timeline (EAEL Feature List)
   12. Responsive Overrides
   ============================================================ */


/* ============================================================
   00. DESIGN TOKENS
   ============================================================ */

:root {

    /* Colours */
    --rt-black:         #000000;
    --rt-white:         #ffffff;
    --rt-grey-light:    #e6e6e6;
    --rt-grey-mid:      #ccc;
    --rt-grey-text:     #555;
    --rt-grey-subtle:   #888;
    --rt-cream:         #F4EFDF;
    --rt-accent:        #3d5a80;
    --rt-accent-dark:   #1a1208;

    /* Borders */
    --rt-border:        1px solid var(--rt-black);
    --rt-border-light:  1px solid #e5e5e5;

    /* Typography */
    --rt-ff-title:      'Lora', Georgia, serif;
    --rt-fs-xs:         12px;
    --rt-fs-sm:         13px;
    --rt-fs-base:       14px;
    --rt-fs-md:         15px;
    --rt-fs-lg:         16px;
    --rt-fs-xl:         18px;
    --rt-fs-2xl:        22px;
    --rt-fs-3xl:        24px;
    --rt-fs-4xl:        38px;
    --rt-lh:            1.7;

    /* Spacing */
    --rt-gap-sm:        12px;
    --rt-gap-md:        20px;
    --rt-gap-lg:        40px;
    --rt-gap-xl:        60px;

    /* Shape */
    --rt-radius:        0px;
    --rt-radius-pill:   999px;

    /* Motion */
    --rt-ease:          cubic-bezier(.4, 0, .2, 1);
    --rt-dur:           .2s;

    /* Component sizing */
    --rt-card-img-h:        200px;
    --rt-team-img-ratio:    1 / 1;
    --rt-bc-image-size:     520px;
    --rt-bc-gap:            60px;
    --rt-gallery-card-h:    320px;
    --rt-gallery-card-h-md: 220px;
    --rt-gallery-card-h-sm: 160px;
}


/* ============================================================
   01. BASE & LAYOUT
   ============================================================ */

html,
body {
    height: 100%;
    padding: 0 2px;
}

#page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.site-footer {
    margin-top: auto;
}

/* ── Text selection ── */
* {
    -webkit-user-select: auto;
    user-select: auto;
    -webkit-tap-highlight-color: transparent;
    box-sizing: border-box; /* ensures padding never causes overflow */
}

button,
[role="button"],
nav,
.nav,
.menu,
.bc-lightbox__close,
.bc-lightbox__arrow,
.rt-lightbox-close,
.rt-lightbox-prev,
.rt-lightbox-next,
.rt-page-btn,
.bc-read-more,
.read-more-btn,
.pub-btn,
a.pub-btn,
.citations-search-btn,
.ctcc-f__toggle,
.ctcc-f__chevron,
#wpforms-submit-3362,
.eael-feature-list-icon-box {
    -webkit-user-select: none;
    user-select: none;
}

button::-moz-focus-inner { border: 0; }

*:focus,
*:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

input,
textarea,
select,
button {
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
}


/* ============================================================
   02. PUBLICATION / NEWS / EVENTS GRID
   ============================================================ */

.pub-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: var(--rt-border);
    border-left: var(--rt-border);
}

.pub-card {
    display: flex;
    flex-direction: column;
    border-right: var(--rt-border);
    border-bottom: var(--rt-border);
    padding-bottom: 20px;
    min-width: 0; /* prevent grid blowout */
}

.pub-card img {
    width: 100%;
    height: var(--rt-card-img-h);
    object-fit: cover;
    display: block;
    border: none;
    padding: 10px;
}

.pub-card h3 {
    font-size: var(--rt-fs-xl);
    font-weight: 400;
    margin: 16px 16px 8px;
    word-break: break-word;
}

.pub-card p {
    font-size: var(--rt-fs-base);
    line-height: var(--rt-lh);
    margin: 0 16px;
    flex-grow: 0;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

.pub-card .card-date {
    font-size: var(--rt-fs-sm);
    color: var(--rt-grey-text);
    margin: 6px 16px 0;
}

.pub-btn,
a.pub-btn {
    display: inline-block;
    margin: auto 16px 0;
    padding-top: 12px;
    align-self: flex-start;
    background: none;
    border: none;
    color: var(--rt-black) !important;
    text-decoration: none !important;
    font-size: var(--rt-fs-base);
    font-style: normal !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    cursor: pointer;
    transition: opacity var(--rt-dur) var(--rt-ease);
}

.pub-btn:hover,
a.pub-btn:hover { opacity: 0.6; }


/* ============================================================
   03. CITATIONS
   ============================================================ */

.citations-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    gap: var(--rt-gap-md);
    flex-wrap: wrap;
}

.citations-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: var(--rt-fs-md);
}

.citations-count { font-weight: 500; }

.citation-text a {
    color: var(--rt-black);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: rgba(0,0,0,.4);
    transition: text-decoration-color var(--rt-dur);
}
.citation-text a:hover { text-decoration-color: rgba(0,0,0,1); }

.scholar-link {
    text-decoration: none;
    color: var(--rt-black);
    font-weight: 400;
    transition: opacity var(--rt-dur);
}
.scholar-link:hover { text-decoration: underline; }

.citations-controls {
    display: flex;
    align-items: center;
    gap: var(--rt-gap-sm);
    flex-wrap: wrap;
}

.citations-controls input[type="text"],
.citations-controls select {
    padding: 8px 10px;
    font-size: var(--rt-fs-base);
    border: var(--rt-border);
    background: var(--rt-cream);
    outline: none;
    border-radius: var(--rt-radius);
}

.citations-controls input::placeholder { color: #666; }

.citations-search-btn {
    padding: 12px 16px;
    background: #343434;
    color: var(--rt-white);
    border: none;
    font-size: var(--rt-fs-base);
    cursor: pointer;
    border-radius: var(--rt-radius);
    transition: opacity var(--rt-dur);
}
.citations-search-btn:hover { opacity: 0.75; }

/* Clear (✕) button */
.citations-clear-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: var(--rt-grey-light);
    color: var(--rt-black);
    border: var(--rt-border);
    text-decoration: none;
    font-size: 15px;
    flex-shrink: 0;
    transition: background var(--rt-dur), color var(--rt-dur);
}
.citations-clear-btn:hover {
    background: var(--rt-black);
    color: var(--rt-white);
}

/* No-results block */
.citations-no-results {
    padding: 60px 20px;
    text-align: center;
    border: var(--rt-border-light);
    margin-top: 20px;
}
.citations-no-results__msg {
    font-size: var(--rt-fs-lg);
    color: var(--rt-grey-text);
    margin-bottom: 20px;
}
.citations-no-results__msg strong {
    color: var(--rt-black);
    font-weight: 600;
}
.citations-no-results__back {
    display: inline-block;
    padding: 10px 28px;
    background: var(--rt-black);
    color: var(--rt-white) !important;
    text-decoration: none !important;
    font-size: var(--rt-fs-base);
    transition: opacity var(--rt-dur);
}
.citations-no-results__back:hover { opacity: 0.7; }

/* Citations row layout */
.citations-row-grid { width: 100%; }

.citations-row-item {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    grid-template-rows: auto auto;
    column-gap: var(--rt-gap-md);
    row-gap: 0px;
    padding: 20px 0;
    border-bottom: var(--rt-border-light);
    align-items: start;
}

.citation-number {
    grid-column: 1;
    grid-row: 1;
    font-size: var(--rt-fs-xl);
    font-weight: 600;
    white-space: nowrap;
    display: block;
}

.citation-text {
    grid-column: 2 / 4;
    grid-row: 1;
    margin: 0;
	font-size: 16px;
    line-height: var(--rt-lh);
    min-width: 0;            /* prevent grid blowout */
    word-break: break-word;
    overflow-wrap: break-word;
}

.citation-year {
    grid-column: 2;
    grid-row: 2;
    font-size: var(--rt-fs-md);
    display: block;
}

.citations-row-item .pub-btn {
    grid-column: 3;
    grid-row: 2;
    justify-self: end;
    margin: 0;
    padding-top: 0;
}


/* ============================================================
   04. BOOK CHAPTERS
   ============================================================ */

.bookchapter-list { width: 100%; }

.bookchapter-item {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: var(--rt-gap-md);
    padding: 15px 0;
    border-bottom: var(--rt-border-light);
    align-items: start;
}

.bookchapter-year {
    font-size: var(--rt-fs-2xl);
    font-weight: 500;
    color: #333;
    padding-top: 4px;
}

.bookchapter-title {
    font-size: var(--rt-fs-2xl);
    font-family: var(--rt-ff-title);
    font-weight: 300;
    margin: 0 0 6px;
    line-height: 1.3;
    word-break: break-word;
}

.bookchapter-content {
    font-size: var(--rt-fs-md);
    color: var(--rt-grey-text);
    margin-top: 6px;
    line-height: var(--rt-lh);
}

.bookchapter-publisher {
    margin-top: 6px;
    font-size: var(--rt-fs-base);
    color: #666;
}

.bookchapter-type {
    display: inline-block;
    margin-top: 10px;
    border: 1px solid #bbb;
    border-radius: var(--rt-radius-pill);
    padding: 6px 10px;
    font-size: var(--rt-fs-base);
    color: #444;
    text-transform: capitalize;
}


/* ============================================================
   05. TEAM
   ============================================================ */

.team-group-title {
    font-size: var(--rt-fs-4xl);
    font-weight: 400;
    border-bottom: var(--rt-border);
    padding: 40px 2%;
    text-align: center;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--rt-gap-lg);
    padding: 0 2%;
}

.team-card {
    padding: 10px;
    border: var(--rt-border);
    text-align: left;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
}

.team-photo {
    width: 100%;
    aspect-ratio: var(--rt-team-img-ratio);
    overflow: hidden;
    background: var(--rt-cream);
    margin-bottom: 12px;
}

.team-photo img,
.team-photo__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: none;
}

.team-name {
    font-size: var(--rt-fs-xl);
    font-weight: 600;
    margin-bottom: 6px;
    word-break: break-word;
}

.team-role {
    font-size: var(--rt-fs-base);
    color: var(--rt-grey-text);
    margin: 2px 0;
}

.team-area {
    font-size: var(--rt-fs-sm);
    color: var(--rt-grey-subtle);
    margin-top: auto;
}


/* ============================================================
   06. RESEARCH LISTING
   ============================================================ */

.research-wrapper {
    width: 100%;
    margin: 0 auto;
    padding: 60px 20px;
}

.research-item {
    padding-bottom: var(--rt-gap-xl);
    margin-bottom: var(--rt-gap-xl);
    border-bottom: var(--rt-border);
}

.research-item:last-child { border-bottom: none; }

.research-title {
    font-size: var(--rt-fs-3xl);
    font-family: var(--rt-ff-title);
    font-weight: 600;
    margin-bottom: 25px;
    word-break: break-word;
}

.research-section {
    margin-bottom: 15px;
    font-size: var(--rt-fs-lg);
}

.research-section strong {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}

.research-section ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.research-section li { margin-bottom: 4px; }

.research-section + .research-section {
    border-top: var(--rt-border);
    margin-top: 16px;
    padding-top: 14px;
}

.research-content-box {
    margin-top: 30px;
    font-size: var(--rt-fs-lg);
    line-height: 1.8;
}

.research-content-box.collapsed p:nth-of-type(n+3) { display: none; }

.read-more-btn {
    display: inline-block;
    margin-top: 10px;
    font-size: var(--rt-fs-base);
    font-weight: 400;
    cursor: pointer;
    color: var(--rt-black);
    background: none;
    border: none;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-style: normal !important;
    transition: opacity var(--rt-dur);
}
.read-more-btn:hover { opacity: 0.6; }

.research-small-note {
    margin-top: 30px;
    background: var(--rt-cream);
    padding: 20px;
    border-left: 4px solid var(--rt-black);
    font-size: var(--rt-fs-base);
    line-height: var(--rt-lh);
    max-height: 240px;
    overflow-y: auto;
    overflow-x: auto;
    white-space: normal;
}


/* ============================================================
   07. BEYOND CHEMISTRY
   ============================================================ */

.bc-wrapper {
    max-width: 1200px;
    margin: 0 auto;
}

.bc-empty {
    font-size: var(--rt-fs-base);
    color: var(--rt-grey-text);
    text-align: center;
    padding: 3rem 0;
}

.bc-item {
    display: flex;
    gap: var(--rt-bc-gap);
    margin-bottom: var(--rt-gap-xl);
    align-items: flex-start;
}

.bc-image {
    flex: 0 0 var(--rt-bc-image-size);
    width: var(--rt-bc-image-size);
}

.bc-thumb {
    display: block;
    width: 100%;
    height: 580px;
    object-fit: cover;
    object-position: center;
    border: none;
    cursor: zoom-in;
    transition: transform var(--rt-dur) var(--rt-ease),
                box-shadow var(--rt-dur) var(--rt-ease);
}

.bc-content {
    flex: 1;
    min-width: 0;
}

.bc-title {
    font-family: var(--rt-ff-title);
    font-size: var(--rt-fs-3xl);
    font-weight: 400;
    color: var(--rt-accent-dark);
    margin-top: 0;
    margin-bottom: 16px;
    line-height: 1.35;
    word-break: break-word;
}

.bc-desc {
    font-size: var(--rt-fs-base);
    line-height: 1.8;
    color: var(--rt-grey-text);
}

.bc-desc p              { margin-top: 0; margin-bottom: .9em; }
.bc-desc p:last-of-type { margin-bottom: 0; }

.bc-full-content[hidden] { display: none; }
.bc-full-content         { display: block; }

.bc-read-more {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: .75rem;
    padding: 0;
    background: none;
    border: none;
    font-size: var(--rt-fs-sm);
    font-weight: 500;
    color: #343434;
    cursor: pointer;
    text-decoration: none;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-style: normal !important;
    transition: color var(--rt-dur) var(--rt-ease);
}

.bc-read-more:hover,
.bc-read-more:focus-visible {
    background: none;
    color: #343434;
    outline: none;
}

.bc-rm-icon {
    flex-shrink: 0;
    transition: transform var(--rt-dur) var(--rt-ease);
}

.bc-read-more[aria-expanded="true"] .bc-rm-icon { transform: rotate(180deg); }

body .elementor .bc-divider {
    border: none;
    border-top: 1px solid #e0d9cc;
    margin-top: 0;
    margin-bottom: var(--rt-gap-xl);
}

.elementor-kit-812 img { border: none; }

/* Lightbox */
.bc-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0,0,0,.92);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 80px;
    box-sizing: border-box;
}

.bc-lightbox[hidden] { display: none; }

.bc-lightbox__img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border: none;
    box-shadow: 0 8px 60px rgba(0,0,0,.6);
    user-select: none;
}

.bc-lightbox__close {
    position: fixed;
    top: 20px;
    right: 24px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    color: var(--rt-white);
    font-size: 2.2rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: .8;
    transition: opacity .18s ease;
    z-index: 10000;
}
.bc-lightbox__close:hover { opacity: 1; }

.bc-lightbox__arrow {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--rt-white);
    font-size: 4rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 16px;
    opacity: .7;
    transition: opacity .18s ease;
    z-index: 10000;
    user-select: none;
}
.bc-lightbox__arrow:hover { opacity: 1; }
.bc-lightbox__prev { left: 0; }
.bc-lightbox__next { right: 0; }


/* ============================================================
   08. GALLERY
   ============================================================ */

.rt-gallery-wrap {
    width: 100%;
    overflow-x: auto;
}

.rt-gallery-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.rt-gallery-cell {
    padding: 4px;
    vertical-align: top;
}

.rt-gallery-cell.rt-empty { pointer-events: none; }

.rt-card.rt-landscape,
.rt-card.rt-wide,
.rt-card.rt-square {
    height: var(--rt-gallery-card-h);
    overflow: hidden;
    position: relative;
}

.rt-card .rt-img {
    width: 100%             !important;
    height: 100%            !important;
    max-width: none         !important;
    max-height: none        !important;
    min-height: 0           !important;
    object-fit: cover       !important;
    object-position: center !important;
    display: block          !important;
    border: none            !important;
    cursor: pointer         !important;
    transition: opacity .25s ease !important;
}
.rt-card .rt-img:hover { opacity: 0.85 !important; }

/* Lightbox */
.rt-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.92);
    z-index: 99999;
    justify-content: center;
    align-items: center;
}
.rt-lightbox.active { display: flex; }

.rt-lightbox-img {
    max-width: 90vw;
    max-height: 90vh;
    width: auto         !important;
    height: auto        !important;
    min-height: 0       !important;
    object-fit: contain !important;
    border-radius: var(--rt-radius);
    box-shadow: 0 8px 40px rgba(0,0,0,.6);
}

.rt-lightbox-close {
    position: fixed;
    top: 20px;
    right: 28px;
    color: var(--rt-white);
    font-size: 36px;
    cursor: pointer;
    line-height: 1;
    z-index: 100000;
    background: none;
    border: none;
    padding: 0;
    opacity: .8;
    transition: opacity var(--rt-dur);
}
.rt-lightbox-close:hover { opacity: 1; }

.rt-lightbox-prev,
.rt-lightbox-next {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rt-white);
    font-size: 48px;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0 16px;
    z-index: 100000;
    line-height: 1;
    opacity: .8;
    transition: opacity var(--rt-dur);
}
.rt-lightbox-prev       { left: 16px; }
.rt-lightbox-next       { right: 16px; }
.rt-lightbox-prev:hover,
.rt-lightbox-next:hover { opacity: 1; }


/* ============================================================
   09. SHARED PAGINATION
   ============================================================ */

.rt-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--rt-gap-md);
    margin-top: var(--rt-gap-lg);
}

.rt-page-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: var(--rt-cream);
    color: var(--rt-black);
    font-size: 28px;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background var(--rt-dur) var(--rt-ease),
                color var(--rt-dur) var(--rt-ease);
}
.rt-page-btn:hover {
    background: #343434;
    color: var(--rt-white);
}

.rt-page-disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.rt-page-counter {
    font-size: var(--rt-fs-lg);
    font-weight: 400;
    color: var(--rt-black);
    min-width: 60px;
    text-align: center;
    letter-spacing: 0.03em;
}

.rt-paged-zone { transition: opacity .15s ease; }


/* ============================================================
   10. CONTACT FORM (WPForms #3362)
   ============================================================ */

#wpforms-3362,
#wpforms-form-3362 {
    background:  transparent !important;
    border:      none !important;
    padding:     0 !important;
    box-shadow:  none !important;
    max-width:   100% !important;
    overflow:    hidden !important;
    box-sizing:  border-box !important;
}

#wpforms-3362 .wpforms-field {
    padding:       0 !important;
    margin-bottom: 12px !important;
    width:         100% !important;
    max-width:     100% !important;
    box-sizing:    border-box !important;
}

#wpforms-3362 .wpforms-field-label { display: none !important; }

#wpforms-3362 input[type="text"],
#wpforms-3362 input[type="email"],
#wpforms-3362 input[type="tel"],
#wpforms-3362 input[type="number"],
#wpforms-3362 select,
#wpforms-3362 textarea {
    width:              100% !important;
    max-width:          100% !important;
    background:         #FFFBEE !important;
    border:             1px solid #343434 !important;
    border-radius:      0 !important;
    font-family:        var(--rt-ff-title) !important;
    font-size:          var(--rt-fs-md) !important;
    font-weight:        400 !important;
    color:              #343434 !important;
    outline:            none !important;
    box-shadow:         none !important;
    box-sizing:         border-box !important;
    -webkit-appearance: none !important;
    transition:         border-color .2s ease, background .2s ease !important;
}

#wpforms-3362 input[type="text"],
#wpforms-3362 input[type="email"],
#wpforms-3362 input[type="tel"],
#wpforms-3362 input[type="number"],
#wpforms-3362 select {
    height:  56px !important;
    padding: 0 18px !important;
}

#wpforms-3362 textarea {
    min-height:  220px !important;
    padding:     16px 18px !important;
    resize:      vertical !important;
    line-height: var(--rt-lh) !important;
}

#wpforms-3362 .wpforms-field-textarea {
    width:      100% !important;
    max-width:  100% !important;
    box-sizing: border-box !important;
}

#wpforms-3362 input::placeholder,
#wpforms-3362 textarea::placeholder {
    color:       #999 !important;
    font-family: var(--rt-ff-title) !important;
    font-size:   var(--rt-fs-md) !important;
    font-weight: 400 !important;
    opacity:     1 !important;
}

#wpforms-3362 input[type="text"]:focus,
#wpforms-3362 input[type="email"]:focus,
#wpforms-3362 input[type="tel"]:focus,
#wpforms-3362 input[type="number"]:focus,
#wpforms-3362 select:focus,
#wpforms-3362 textarea:focus {
    border-color: var(--rt-black) !important;
    background:   var(--rt-white) !important;
    outline:      none !important;
    box-shadow:   none !important;
}

#wpforms-submit-3362 {
    display:            inline-block !important;
    padding:            14px 48px !important;
    background:         #343434 !important;
    color:              var(--rt-white) !important;
    font-family:        var(--rt-ff-title) !important;
    font-size:          var(--rt-fs-md) !important;
    font-weight:        500 !important;
    letter-spacing:     0.02em !important;
    border:             none !important;
    border-radius:      var(--rt-radius-pill) !important;
    cursor:             pointer !important;
    box-shadow:         none !important;
    text-transform:     none !important;
    transition:         background .2s ease, transform .2s ease !important;
    margin-top:         8px !important;
    -webkit-appearance: none !important;
}
#wpforms-submit-3362:hover {
    background: #1a1a1a !important;
    transform:  translateY(-1px) !important;
}

#wpforms-3362 .wpforms-submit-container {
    padding:    0 !important;
    margin-top: 4px !important;
    text-align: left !important;
}


/* ============================================================
   11. TIMELINE (EAEL Feature List)
   ============================================================ */

ul.eael-feature-list-vertical {
    border-left: none !important;
    position:    relative !important;
}

.eael-feature-list-vertical .connector,
.eael-feature-list-vertical .connector-tablet,
.eael-feature-list-vertical .connector-mobile {
    display: none !important;
}

ul.eael-feature-list-vertical::before {
    content:    '' !important;
    position:   absolute !important;
    top:        0 !important;
    bottom:     0 !important;
    left:       15px !important;
    width:      2px !important;
    background: #343434 !important;
    display:    block !important;
    z-index:    0 !important;
}

.eael-feature-list-vertical .eael-feature-list-icon-box {
    position: relative !important;
    z-index:  1 !important;
}


/* ============================================================
   12. RESPONSIVE OVERRIDES
   ============================================================ */

/* ── Large desktop: ≥ 1440px ── */
@media (min-width: 1440px) {
    html, body { padding: 0 40px; }
}

/* ── Medium desktop: 1280px–1439px ── */
@media (min-width: 1280px) and (max-width: 1439px) {
    html, body { padding: 0 24px; }
}

/* ── Small laptop / large tablet: 769px–1279px ── */
@media (min-width: 769px) and (max-width: 1279px) {
    html, body { padding: 0 18px; }
}

/* ── Tablet: ≤ 1024px ── */
@media (max-width: 1024px) {
    .pub-grid  { grid-template-columns: repeat(2, 1fr); }
    .team-grid { grid-template-columns: repeat(3, 1fr); gap: var(--rt-gap-md); }

    :root {
        --rt-bc-image-size: 420px;
    }
    .bc-thumb { height: 480px; }
}

/* ── Small tablet: ≤ 900px ── */
@media (max-width: 900px) {
    .bc-item  { flex-direction: column; gap: 28px; }
    .bc-image { flex: none; width: 100%; }
    .bc-thumb { height: 260px; }
}

/* ── Mobile: ≤ 768px ── */
@media (max-width: 768px) {
    html, body { padding: 0 10px; }

    /* Team */
    .team-grid        { grid-template-columns: repeat(2, 1fr); gap: 16px; padding: 0 1%; }
    .team-group-title { font-size: 28px; }

    /* Citations top bar */
    .citations-top-bar  { flex-direction: column; align-items: flex-start; }
    .citations-controls { width: 100%; }
    .citations-controls input,
    .citations-controls select { width: 100%; }

    /* Citations row — fixed overflow:
       - Drop the 3-column layout entirely
       - Stack: number | text / year / button in two columns
       - word-break ensures long DOIs/URLs don't escape */
    .citations-row-item {
        grid-template-columns: 44px 1fr;
        grid-template-rows: auto auto auto;
        column-gap: 10px;
    }

    .citation-number {
        grid-column: 1;
        grid-row: 1;
        font-size: var(--rt-fs-lg);
    }

    .citation-text {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
        word-break: break-word;
        overflow-wrap: break-word;
    }

    .citation-year {
        grid-column: 2;
        grid-row: 2;
    }

    .citations-row-item .pub-btn {
        grid-column: 2;
        grid-row: 3;
        justify-self: start;
        margin: 0;
        padding-top: 4px;
    }

    /* Book chapters */
    .bookchapter-item { grid-template-columns: 1fr; gap: 8px; }
    .bookchapter-year { font-size: var(--rt-fs-xl); }

    /* Beyond Chemistry */
    .bc-image { flex: 0 0 100%; width: 100%; }
    .bc-thumb { height: 350px; }

    /* Gallery */
    .rt-gallery-table,
    .rt-gallery-table tbody,
    .rt-gallery-table tr { display: block; width: 100%; }

    .rt-gallery-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4px;
        margin-bottom: 4px;
    }

    .rt-gallery-cell              { display: block; padding: 2px; width: 100% !important; }
    .rt-gallery-cell[colspan="2"] { grid-column: 1 / -1; }
    .rt-gallery-cell.rt-empty     { display: none; }

    .rt-card.rt-landscape,
    .rt-card.rt-square { height: var(--rt-gallery-card-h-sm); }
    .rt-card.rt-wide   { height: var(--rt-gallery-card-h-md); }

    /* Pagination */
    .rt-page-btn { width: 40px; height: 40px; font-size: 22px; }
}

/* ── Small mobile: ≤ 600px ── */
@media (max-width: 600px) {
    .pub-grid  { grid-template-columns: 1fr; }
    .team-grid { grid-template-columns: 1fr; gap: var(--rt-gap-sm); }
	.citation-text { font-size: 14px; }
    .bc-item    { margin-bottom: 40px; }
    .bc-divider { margin-bottom: 40px; }
    .bc-thumb   { height: 220px; }
    .bc-title   { font-size: 20px; margin-bottom: 12px; }

    .research-wrapper  { padding: 40px 16px; }
    .research-title    { font-size: 20px; }

    .bookchapter-title   { font-size: 20px; }
    .bookchapter-content { font-size: var(--rt-fs-base); }
}