
:root { --idm-max: 1180px; }
body.idm-theme { overflow-x: clip; }
* { box-sizing: border-box; }
img, video, iframe, embed, object { max-width: 100%; }
.site-shell { max-width: var(--idm-max); margin: 0 auto; padding: 0 20px; }
.site-header-dynamic { border-bottom: 1px solid rgba(0,0,0,.08); }
.site-header-dynamic .utility-row,
.site-header-dynamic .branding-row { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.site-header-dynamic .utility-row { padding: 16px 0 8px; }
.site-header-dynamic .branding-row { padding: 18px 0 26px; }
.site-title-text { font-size: clamp(2rem, 5vw, 4rem); font-weight: 700; text-transform: uppercase; letter-spacing: -0.06em; line-height: 1; margin: 0; }
.site-title-text a { text-decoration:none; color: inherit; }
.site-description-text { margin: 6px 0 0; opacity: .7; }
.idm-menu, .idm-utility-menu, .idm-footer-menu { margin:0; padding:0; list-style:none; display:flex; gap:24px; align-items:center; flex-wrap:wrap; }
.idm-menu li, .idm-utility-menu li, .idm-footer-menu li { margin:0; }
.idm-menu a, .idm-utility-menu a, .idm-footer-menu a { text-decoration:none; color:inherit; }
.idm-menu a:hover, .idm-utility-menu a:hover, .idm-footer-menu a:hover { text-decoration:underline; }
.idm-search-form { display:flex; align-items:center; gap:10px; }
.idm-search-form input[type="search"] { min-width: 180px; padding: 5px 12px; border:1.5px solid #111; border-radius: 0; }
.idm-search-form button { padding: 5px 12px; border:1.5px solid #111; border-left:0; border-radius:0; cursor:pointer; background:#fff; }
.main-content-area { padding: 40px 0 60px; }
.idm-page-header { max-width: 900px; margin: 0 auto 40px; text-align:center; }
.idm-page-header h1, .idm-page-header h2 { margin-bottom: 10px; }
.idm-editable-content { max-width: 820px; margin: 0 auto; }
.idm-home-intro { max-width: 900px; margin: 0 auto 56px; text-align:center; }
.idm-home-posts { margin-top: 48px; }
.idm-section-title { margin: 0 0 24px; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.idm-post-grid, .wp-block-post-template.columns-4 { list-style:none; margin:0; padding:0; display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 28px; }
 .idm-post-grid.two-col { grid-template-columns: repeat(2, minmax(0,1fr)); }
.idm-post-card img, .wp-block-post-featured-image img { width:100%; height:auto; display:block; }
.idm-post-card .taxonomy-category, .taxonomy-category { margin-bottom: 12px; text-transform: uppercase; letter-spacing: .06em; }
.idm-post-card h3, .idm-post-card h4 { margin: 0 0 10px; }
.idm-post-card a { text-decoration:none; color:inherit; }
.idm-post-card a:hover { text-decoration:underline; }
.idm-post-meta { font-size: .85rem; opacity:.75; }
.idm-single-header { max-width: 980px; margin: 0 auto 28px; }
.idm-single-content { max-width: 820px; margin: 0 auto; }
.idm-single-content img { height:auto; }
.idm-related-posts { margin-top: 56px; padding-top: 28px; border-top: 1px solid rgba(0,0,0,.08); }
.pagination, .nav-links { margin-top: 36px; display:flex; gap: 12px; flex-wrap:wrap; }
.pagination .page-numbers, .nav-links .page-numbers { padding: 8px 12px; border:1px solid rgba(0,0,0,.1); text-decoration:none; }
.site-footer-dynamic { border-top: 1px solid rgba(0,0,0,.08); padding: 36px 0; }
.site-footer-dynamic .footer-row { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.site-footer-dynamic p { margin:0; }
.wp-caption, .wp-block-image { max-width: 100%; }
.gallery { display:grid; gap:16px; }
@media (max-width: 991px) { .idm-post-grid, .wp-block-post-template.columns-4 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 700px) {
  .site-header-dynamic .utility-row, .site-header-dynamic .branding-row, .site-footer-dynamic .footer-row { flex-direction:column; align-items:flex-start; }
  .site-footer-dynamic .footer-row { gap: 12px; }
  .idm-post-grid, .wp-block-post-template.columns-4, .idm-post-grid.two-col { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .idm-search-form { width:100%; }
  .idm-search-form input[type="search"] { flex:1; min-width:0; width:100%; }
}


.idm-home-hero {
  position: relative;
  min-height: 420px;
  margin: 0 0 56px;
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(0,0,0,.52) 0%, rgba(0,0,0,.32) 38%, rgba(0,0,0,.08) 100%);
}
.idm-home-hero__inner {
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 48px 56px;
}
.idm-home-hero__title {
  max-width: 560px;
  margin: 0;
  color: #fff;
  font-size: clamp(2.5rem, 6vw, 5.25rem);
  line-height: .95;
  letter-spacing: -0.06em;
  text-transform: uppercase;
  text-align: left;
}
.idm-featured-post {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: 28px;
  align-items: stretch;
  margin: 0 0 32px;
}
.idm-featured-post__image img {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
  display: block;
  border-radius: 18px;
}
.idm-featured-post__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.idm-featured-post__title {
  margin: 0 0 10px;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  line-height: 1.05;
}
.idm-featured-post__title a { text-decoration:none; color:inherit; }
.idm-featured-post__title a:hover { text-decoration:underline; }
.idm-featured-post__excerpt { margin-top: 14px; }
@media (max-width: 700px) {
  .idm-home-hero { min-height: 300px; border-radius: 18px; }
  .idm-home-hero__inner { min-height: 300px; padding: 28px; }
  .idm-featured-post { grid-template-columns: 1fr; }
  .idm-featured-post__image img { min-height: 240px; }
}


:root {
  --idm-serif: "Ibarra Real Nova", Georgia, serif;
  --idm-sans: "Libre Franklin", Arial, sans-serif;
}
body.idm-theme { font-family: var(--idm-sans); }
.site-title-text,
.site-title-text a,
.idm-home-featured__title,
.idm-single-title { font-family: var(--idm-serif); }
.idm-section-title,
.idm-card-title,
.idm-card-title a,
.idm-card-meta,
.idm-single-meta,
.idm-single-content,
.idm-single-content p,
.idm-home-featured__text,
.idm-get-started__text,
.taxonomy-category,
.idm-post-card,
.site-description-text,
.site-footer-dynamic p { font-family: var(--idm-sans); }
.idm-menu a,
.idm-utility-menu a,
.idm-footer-menu a,
.idm-menu li,
.idm-footer-menu li,
.idm-menu-toggle { font-family: var(--idm-sans); }
.idm-section-title,
.idm-card-title,
.idm-card-title a { font-weight: 700; }
.idm-home-featured,
.idm-top-stories,
.idm-get-started { margin: 0 0 72px; }
.idm-home-featured__grid {
  display: grid;
  grid-template-columns: 1fr minmax(520px, 880px);
  column-gap: 40px;
  row-gap: 26px;
  align-items: start;
}
.idm-home-featured__copy { padding-top: 12px; }
.idm-home-featured__title {
  margin: 0;
  font-size: clamp(3rem, 5.8vw, 5rem);
  line-height: .92;
  letter-spacing: -0.05em;
  text-transform: none;
}
.idm-home-featured__media img {
  display: block;
  width: 100%;
  height: auto;
}
.idm-home-featured__text {
  grid-column: 2;
  columns: 2;
  column-gap: 56px;
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.55;
}
.idm-home-featured__text p { margin: 0; break-inside: avoid; }
.idm-section-title {
  font-size: clamp(2.35rem, 3.2vw, 3.3rem);
  line-height: 1;
  margin: 0 0 34px;
}
.idm-post-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
.idm-post-card .wp-block-post-featured-image { margin: 0 0 12px; }
.idm-post-card .wp-block-post-featured-image img {
  width: 100%;
  aspect-ratio: 1 / 1.12;
  object-fit: cover;
}
.idm-post-card:nth-child(1) .wp-block-post-featured-image img,
.idm-post-card:nth-child(3) .wp-block-post-featured-image img {
  aspect-ratio: 1 / 1;
}
.idm-card-title {
  font-size: clamp(1.3rem, 1.9vw, 1.95rem);
  line-height: 1.16;
  margin: 0 0 10px;
}
.idm-card-title a { text-decoration: none; color: inherit; }
.idm-card-title a:hover { text-decoration: underline; }
.idm-card-meta {
  font-size: 0.95rem;
  font-weight: 400;
}
.idm-post-card .taxonomy-category {
  margin-bottom: 10px;
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: .02em;
}
.idm-get-started__grid {
  display: grid;
  grid-template-columns: 1fr minmax(520px, 880px);
  column-gap: 40px;
  row-gap: 26px;
  align-items: start;
}
.idm-get-started__title-wrap { padding-top: 12px; }
.idm-get-started__media img { display: block; width: 100%; height: auto; }
.idm-get-started__text {
  grid-column: 2;
  columns: 2;
  column-gap: 56px;
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.55;
}
.idm-get-started__text p { margin: 0; }
.idm-single-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(340px, .75fr);
  gap: 44px;
  align-items: center;
  margin: 8px 0 34px;
}
.idm-single-title {
  margin: 0 0 22px;
  font-size: clamp(3.25rem, 7vw, 6rem);
  line-height: .92;
  letter-spacing: -0.055em;
}
.idm-single-meta {
  font-size: 1rem;
  line-height: 1.4;
}
.idm-meta-sep::before { content: ""; display: inline-block; width: .45rem; }
.idm-single-featured-image,
.idm-single-featured-image img { margin: 0; width: 100%; display: block; }
/* Show full image on event pages — no cropping */
.idm-single-event .idm-single-featured-image img {
  aspect-ratio: unset;
  height: auto;
  object-fit: unset;
  max-height: 680px;
  object-fit: contain;
  background: #000;
}
/* Non-event single posts keep the square crop */
.idm-single-article:not(.idm-single-event) .idm-single-featured-image img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.idm-single-content {
  width: min(60vw, 980px);
  max-width: 60%;
  margin: 0 auto;
  font-size: clamp(1.1rem, 1.45vw, 1.28rem);
  line-height: 1.65;
}
.idm-single-content > *:first-child { margin-top: 0; }
.idm-single-content h2,
.idm-single-content h3,
.idm-single-content h4,
.idm-single-content strong { font-weight: 700; }
@media (max-width: 1100px) {
  .idm-home-featured__grid,
  .idm-get-started__grid { grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); }
  .idm-single-content { width: min(72vw, 900px); max-width: 72%; margin: 0 auto; }
}
@media (max-width: 820px) {
  .idm-home-featured__grid,
  .idm-get-started__grid,
  .idm-single-hero { grid-template-columns: 1fr; }
  .idm-post-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .idm-home-featured__text,
  .idm-get-started__text { grid-column: auto; columns: 1; }
  .idm-single-content { width: 100%; max-width: 100%; margin-left: 0; }
}


/* v4 header, footer, stories, calendar */
.site-header-dynamic { border-bottom: 1px solid rgba(0,0,0,.12); }
.site-header-dynamic .utility-row { padding: 14px 0 8px; justify-content: flex-end; display: flex; align-items: center; gap: 16px; }
.header-social-wrap { display: flex; align-items: center; gap: 8px; }
.utility-spacer { flex: 1; }
.header-search-wrap { width: min(260px, 100%); }
.header-search-wrap input[type="search"],
.header-search-wrap .search-field {
    border: 1.5px solid #111;
    padding: 5px 12px;      /* same vertical padding as .header-social-icon */
    font-family: var(--idm-sans, sans-serif);
    font-size: .9rem;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
    color: #111;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
    height: auto;
}
.header-search-wrap input[type="search"]:focus,
.header-search-wrap .search-field:focus {
    outline: 2px solid #111;
    outline-offset: -2px;
}
.site-header-dynamic .branding-row { padding: 20px 0 24px; gap: 30px; }
.site-branding-wrap { display:flex; align-items:center; gap:16px; min-width:0; }
.site-logo-square { width: 52px; height: 52px; display:flex; align-items:center; justify-content:center; flex: 0 0 52px; text-decoration:none; }
.site-logo-square img, .site-logo-square .custom-logo { width:52px; height:52px; object-fit:cover; display:block; }
.site-logo-placeholder { display:block; width:52px; height:52px; background:#e7e7e7; border:1px solid rgba(0,0,0,.14); }
.site-title-text { font-size: clamp(1.7rem, 3vw, 2.6rem); text-transform:none; letter-spacing:-0.04em; }
.site-description-text { font-size:.9rem; margin-top:4px; }
.idm-primary-nav { margin-left:auto; }
.idm-menu, .idm-footer-menu { gap: 28px; }
.idm-menu a, .idm-footer-menu a { letter-spacing: .02em; }
.idm-menu-toggle { display:none; border:0; background:transparent; padding:4px; width:38px; height:38px; align-items:center; justify-content:center; flex-direction:column; gap:6px; cursor:pointer; }
.idm-menu-toggle span { display:block; width:22px; height:1.8px; background:#111; }
.idm-search-form { display:block; width:100%; }
.idm-search-form input[type="search"] { width:100%; min-width:0; padding: 5px 12px; border:1.5px solid #111; border-radius:0; font-family:var(--idm-sans); }
.idm-home-featured__title, .idm-single-title, .idm-calendar-item__title, .idm-calendar-item__date { font-family: var(--idm-serif); }
.idm-calendar-item__content, .idm-calendar-item__content p { font-family: var(--idm-sans); }
.idm-top-stories--below-single { margin-top: 88px; }
.idm-stories-grid { margin-bottom: 18px; }
.idm-calendar-list { border-top:1px solid rgba(0,0,0,.14); }
.idm-calendar-item { padding: 22px 0; border-bottom:1px solid rgba(0,0,0,.14); }
.idm-calendar-item__header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:8px; }
.idm-calendar-item__title { margin:0; font-size: clamp(1.5rem, 2vw, 2.25rem); line-height:1.05; }
.idm-calendar-item__title a { color:inherit; text-decoration:none; }
.idm-calendar-item__title a:hover { text-decoration:underline; }
.idm-calendar-item__date { font-size:1.25rem; white-space:nowrap; font-weight:700; letter-spacing:-.01em; }
.idm-calendar-item__content { width: 80%; max-width: 80%; line-height:1.6; }
.site-footer-dynamic .footer-row { gap: 42px; }
.idm-footer-menu { justify-content:center; }
@media (max-width: 900px) {
  .site-header-dynamic .utility-row { display:none !important; }
  .idm-menu-toggle { display:inline-flex; }
  .site-shell.branding-row { position:relative; overflow:visible; }
  .idm-primary-nav { position:absolute; top:100%; left:16px; right:16px; width:auto; background:#fff; border:1px solid rgba(0,0,0,.12); padding:0; display:none; z-index:9999; box-shadow:0 4px 12px rgba(0,0,0,.08); }
  .idm-primary-nav.is-open { display:block; }
  .site-header-dynamic .branding-row { position:relative; }
  .idm-menu { flex-direction:column; align-items:flex-start; gap:18px; }
}
@media (max-width: 700px) {
  .site-header-dynamic .branding-row { flex-direction:row; align-items:center; padding-left:16px; padding-right:16px; }
  .site-branding-wrap { min-width:0; flex:1; }
  .site-title-text { font-size: clamp(1.45rem, 6vw, 2rem); }
  .site-description-text { display:none; }
  .site-footer-dynamic .footer-row { align-items:flex-start; }
  .idm-calendar-item__header { flex-direction:column; gap:8px; }
}

/* v5 about/contact/home refinements */
.idm-menu, .idm-footer-menu { gap: 24px; }
.idm-home-static-box { margin: 0 0 56px; overflow:hidden; }
.idm-home-static-box__inner {
  position: relative;
  display: block;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}
.idm-home-static-box__inner img {
  display: block;
  width: 100%;
  height: auto;
  min-height: clamp(240px, 40vw, 480px);
  max-height: 520px;
  object-fit: cover;
}
.idm-home-static-box__title {
  position: absolute;
  left: clamp(28px, 5vw, 64px);
  bottom: clamp(24px, 6vw, 56px);
  margin: 0;
  max-width: min(70%, 620px);
  color: #fff;
  font-family: var(--idm-serif);
  font-size: clamp(2.7rem, 6.2vw, 5.7rem);
  line-height: .92;
  letter-spacing: -0.05em;
}
.idm-about-page,
.idm-contact-page { padding-top: 8px; }
.idm-about-hero,
.idm-contact-hero { margin: 0 0 56px; max-width: 820px; }
.idm-about-title {
  margin: 0 0 18px;
  font-family: var(--idm-serif);
  font-size: clamp(3rem, 6vw, 5.25rem);
  line-height: .92;
  letter-spacing: -0.05em;
}
.idm-about-intro,
.idm-contact-credit { font-family: var(--idm-sans); font-size: 1.1rem; line-height: 1.65; }
.idm-contact-credit { margin: 0 0 14px; opacity: .7; }
.idm-authors-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 34px 28px;
  margin-bottom: 72px;
}
.idm-author-card img {
  width: 100%;
  aspect-ratio: 1 / 1.1;
  object-fit: cover;
  display:block;
  margin-bottom: 16px;
}
.idm-author-card h3,
.idm-faq-item h3,
.idm-contact-block h3 {
  margin: 0 0 8px;
  font-family: var(--idm-sans);
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.15;
}
.idm-author-card__role,
.idm-contact-list li span {
  display:block;
  margin: 0 0 10px;
  font-family: var(--idm-sans);
  font-weight: 700;
}
.idm-author-card p,
.idm-faq-item p,
.idm-contact-block p,
.idm-contact-list li,
.idm-contact-list strong {
  font-family: var(--idm-sans);
  line-height: 1.6;
}
.idm-faq-list { border-top: 1px solid rgba(0,0,0,.14); margin-bottom: 72px; }
.idm-faq-item { padding: 24px 0; border-bottom: 1px solid rgba(0,0,0,.14); }
.idm-contact-columns {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 40px;
}
.idm-contact-list { list-style:none; margin:0; padding:0; border-top:1px solid rgba(0,0,0,.14); }
.idm-contact-list li { display:flex; flex-direction:column; gap:4px; padding:16px 0; border-bottom:1px solid rgba(0,0,0,.14); }
.idm-contact-blocks { border-top:1px solid rgba(0,0,0,.14); }
.idm-contact-block { padding:18px 0; border-bottom:1px solid rgba(0,0,0,.14); }
@media (max-width: 1000px) {
  .idm-authors-grid,
  .idm-contact-columns { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .idm-menu, .idm-footer-menu { gap: 18px; }
  .idm-home-static-box__title { max-width: 80%; }
  .idm-authors-grid,
  .idm-contact-columns { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .idm-post-grid, .wp-block-post-template.columns-4, .idm-post-grid.two-col, .idm-post-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
  .idm-card-title { font-size: 1.05rem; }
  .idm-calendar-item__content { width: 100%; max-width: 100%; }
}


/* v10 menu and events updates */
.idm-menu,
.idm-footer-menu { gap: 14px; }
.idm-menu li,
.idm-footer-menu li { display:flex; align-items:center; }
.idm-menu li + li::before,
.idm-footer-menu li + li::before {
  content: "|";
  display: inline-block;
  margin: 0 10px 0 0;
  color: rgba(0,0,0,.55);
  font-family: var(--idm-sans);
  font-weight: 700;
}
.idm-menu a,
.idm-footer-menu a {
  font-family: var(--idm-sans);
  font-weight: 700;
  text-transform: uppercase;
  font-size: .92rem;
}
@media (max-width: 900px) {
  .idm-menu li + li::before { content: none; }
}

.idm-calendar-hero {
  display:grid;
  grid-template-columns: minmax(0,1.1fr) minmax(320px,.9fr);
  gap: 34px;
  align-items:center;
  margin: 0 0 48px;
}
.idm-calendar-hero__copy h1 {
  margin: 0 0 16px;
  font-family: var(--idm-serif);
  font-size: clamp(3rem, 6vw, 5.5rem);
  line-height: .92;
  letter-spacing: -.05em;
}
.idm-calendar-hero__copy p {
  margin: 0;
  max-width: 56ch;
  font-family: var(--idm-sans);
  font-size: 1.06rem;
  line-height: 1.65;
}
.idm-calendar-hero__media img {
  display:block;
  width:100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.idm-single-event {
  max-width: 1180px;
  margin: 0 auto;
}
.idm-single-event .idm-single-hero__copy {
  align-self: start;
}
.idm-event-date-display {
  margin: 0 0 18px;
  font-family: var(--idm-serif);
  font-size: clamp(1.6rem, 2.2vw, 2.45rem);
  line-height: 1.05;
}
.idm-signup-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top: 26px;
  padding: 14px 22px;
  border: 1px solid #111;
  text-decoration:none;
  color:#111;
  font-family: var(--idm-sans);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.idm-signup-button:hover {
  background:#111;
  color:#fff;
  text-decoration:none;
}
@media (max-width: 820px) {
  .idm-calendar-hero { grid-template-columns: 1fr; }
}


/* v14 mobile menu and page updates */
@media (max-width: 900px) {
  .idm-primary-nav{padding:0;overflow:hidden;}
  .idm-menu{width:100%;gap:0;}
  .idm-menu li{display:block;width:100%;}
  .idm-menu li + li{border-top:1px solid rgba(0,0,0,.12);}
  .idm-menu li + li::before{content:none;}
  .idm-menu a{display:block;width:100%;padding:11px 16px;font-size:.95rem;}
}
.idm-contact-page .idm-page-editor-content{padding-bottom:24px;}

/* v16 consistency and front-end editor */
body.idm-theme,
body.idm-theme p,
body.idm-theme li,
body.idm-theme label,
body.idm-theme input,
body.idm-theme textarea,
body.idm-theme select,
body.idm-theme button,
body.idm-theme .idm-page-editor-content,
body.idm-theme .idm-page-editor-content p,
body.idm-theme .idm-contact-page,
body.idm-theme .idm-membership-page,
body.idm-theme .idm-membership-page p,
body.idm-theme .idm-project-card p,
body.idm-theme .idm-contact-block p,
body.idm-theme .idm-contact-list,
body.idm-theme .idm-contact-list li,
body.idm-theme .idm-author-card__content,
body.idm-theme .idm-author-card__content p,
body.idm-theme .idm-single-content,
body.idm-theme .idm-single-content p,
body.idm-theme .idm-calendar-item__content,
body.idm-theme .idm-calendar-item__content p,
body.idm-theme .idm-edit-hub,
body.idm-theme .idm-front-editor-guard,
body.idm-theme .idm-editor-form {
  font-family: var(--idm-sans);
}

.idm-page-header h1,
.idm-membership-page .idm-page-header h1,
.idm-edit-hub h1,
.idm-calendar-hero__title,
.idm-single-title,
.idm-calendar-item__title,
.idm-calendar-item__date {
  font-family: var(--idm-serif);
}

.idm-editor-form {
  max-width: 920px;
}
.idm-editor-form input[type="text"],
.idm-editor-form input[type="url"],
.idm-editor-form input[type="date"],
.idm-editor-form input[type="file"],
.idm-editor-form textarea,
.idm-editor-form select {
  width: 100%;
  border: 1px solid rgba(0,0,0,.14);
  padding: 12px 14px;
  font-family: var(--idm-sans);
  font-size: 1rem;
  box-sizing: border-box;
}
.idm-editor-form label { display:block; margin:0 0 6px; font-weight:700; }
.idm-editor-card { border:1px solid rgba(0,0,0,.12); padding:20px; margin:0 0 18px; }
.idm-editor-card legend { font-family: var(--idm-serif); font-size: 1.2rem; padding:0 8px; }
.idm-form-success, .idm-form-error { padding: 14px 16px; margin: 0 0 16px; }
.idm-form-success { background:#eef7ee; }
.idm-form-error { background:#fbefef; }
.idm-edit-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }

@media (max-width: 900px) {
  .idm-primary-nav { right:0; left:0; width:100%; border-left:0; border-right:0; padding:0; }
  .idm-primary-nav .idm-menu { width:100%; gap:0; }
  .idm-primary-nav .idm-menu > li { width:100%; border-bottom:1px solid rgba(0,0,0,.14); list-style:none; margin:0; }
  .idm-primary-nav .idm-menu > li:last-child { border-bottom:0; }
  .idm-primary-nav .idm-menu > li > a { display:block; width:100%; padding:16px 20px; }
}

/* v21 updates */
.idm-home-intro {
  max-width: 1100px;
  margin: 0 0 2.25rem;
  text-align: left;
}
.idm-home-intro p {
  margin: 0;
  font-family: var(--wp--preset--font-family--libre-franklin, Arial, sans-serif);
  font-size: 1rem;
  line-height: 1.7;
  max-width: 60rem;
}
.idm-editor-taxonomy-field {
  border: 1px solid rgba(0,0,0,.12);
  padding: 14px 16px;
  margin: 0 0 1rem;
}
.idm-editor-taxonomy-field legend {
  font-weight: 700;
}
.idm-checkbox-option {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 16px 10px 0;
  font-family: var(--wp--preset--font-family--libre-franklin, Arial, sans-serif);
}
.idm-editor-richtext {
  margin: 0 0 1rem;
}
.idm-editor-richtext label {
  display: block;
  margin-bottom: 8px;
  font-weight: 700;
}
.idm-article-subtitle {
  font-family: var(--wp--preset--font-family--libre-franklin, Arial, sans-serif);
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0 0 1.25rem;
}
.idm-articles-filter-wrap {
  margin: 1rem 0 2rem;
}
.idm-articles-filter {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.idm-articles-filter label,
.idm-articles-filter select {
  font-family: var(--wp--preset--font-family--libre-franklin, Arial, sans-serif);
}
.idm-post-card--lead {
  margin-bottom: 2.25rem;
}
.idm-post-card--lead .idm-card-title {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
}
.idm-post-grid--rest {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (max-width: 900px) {
  .idm-post-grid--rest {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.idm-form-help {
  margin: -0.5rem 0 1rem;
  color: rgba(0,0,0,.72);
  font-size: 0.95rem;
  font-family: var(--wp--preset--font-family--libre-franklin, Arial, sans-serif);
}
.idm-edit-content-items {
  border-top: 1px solid rgba(0,0,0,.12);
}
.idm-edit-content-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(0,0,0,.12);
}
.idm-edit-content-main {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.idm-edit-content-title {
  font-family: var(--wp--preset--font-family--libre-franklin, Arial, sans-serif);
  font-weight: 700;
}
.idm-edit-content-type {
  font-family: var(--wp--preset--font-family--libre-franklin, Arial, sans-serif);
  font-size: 0.9rem;
  color: rgba(0,0,0,.65);
  text-transform: uppercase;
  letter-spacing: .04em;
}
@media (max-width: 640px) {
  .idm-edit-content-item {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* Experimental Version 1 */
:root{--idm-section-space:88px;--idm-border:#e4e1da;--idm-text:#111;}
body.idm-theme{color:var(--idm-text);}
.idm-home-intro,.idm-linked-projects,.idm-top-stories,.idm-get-started,.idm-calendar-group,.idm-articles-list,.idm-edit-content-section{margin-bottom:var(--idm-section-space);}
.idm-home-intro,.idm-linked-projects,.idm-top-stories,.idm-get-started,.idm-calendar-group,.idm-edit-content-section{padding-top:0;border-top:0;}
.idm-home-intro{text-align:left;max-width:760px;margin-top:10px;}
.idm-section-title{font-size:clamp(2.7rem,3.9vw,4rem);line-height:.96;margin-bottom:28px;}
.idm-card-title{font-size:clamp(1.45rem,2vw,2.2rem);line-height:1.08;}
.idm-card-excerpt{font-size:1rem;line-height:1.65;color:rgba(17,17,17,.82);margin-top:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.idm-post-card,.idm-project-card,.idm-calendar-item,.idm-edit-content-item{transition:transform .2s ease,opacity .2s ease;}
.idm-post-card:hover,.idm-project-card:hover{transform:translateY(-2px);}
.idm-post-card:hover .wp-block-post-featured-image img,.idm-project-card:hover img{transform:scale(1.02);transition:transform .3s ease;}
.idm-menu a,.idm-footer-menu a{transition:opacity .2s ease;}
.idm-menu a:hover,.idm-footer-menu a:hover{opacity:.68;text-decoration:none;}
.idm-post-card .wp-block-post-featured-image{overflow:hidden;}
.idm-post-card .taxonomy-category{font-weight:700;letter-spacing:.06em;}
.idm-single-title{font-size:clamp(3.5rem,7vw,6.5rem);}
.idm-single-content{font-size:clamp(1.12rem,1.45vw,1.32rem);line-height:1.78;}
.idm-single-content h2{font-size:clamp(1.9rem,2.6vw,2.6rem);line-height:1.08;margin:2.3rem 0 1rem;}
.idm-single-content h3{font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.12;margin:2rem 0 .8rem;}
.idm-card-role{opacity:.7;}
.idm-articles-filter-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px;}
.idm-filter-chip{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:1px solid var(--idm-border);text-decoration:none;color:inherit;font-family:var(--idm-sans);font-weight:700;text-transform:uppercase;font-size:.8rem;letter-spacing:.04em;}
.idm-filter-chip.is-active,.idm-filter-chip:hover{background:#111;color:#fff;text-decoration:none;}
.idm-editor-form,.idm-front-editor-guard{max-width:900px;margin:0 auto 56px;}
.idm-form-help{font-size:.92rem;opacity:.78;}
.idm-form-actions{display:flex;gap:12px;flex-wrap:wrap;}
.idm-signup-button--secondary{background:#fff;color:#111;border-color:#bcb8af;}
.idm-signup-button--danger{border-color:#8a1d1d;color:#8a1d1d;}
.idm-signup-button--danger:hover{background:#8a1d1d;color:#fff;}
.idm-calendar-item__meta{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 10px;font-family:var(--idm-sans);font-size:.95rem;font-weight:700;}
.idm-event-location{font-family:var(--idm-sans);font-size:1rem;}
@media (max-width:900px){.idm-primary-nav{padding:0;}.idm-menu{width:100%;gap:0;}.idm-menu li{width:100%;padding:16px 18px;border-bottom:1px solid var(--idm-border);}.idm-menu li + li::before{display:none;}.idm-primary-nav{border:1px solid var(--idm-border);} }
@media (max-width:700px){.idm-home-intro,.idm-linked-projects,.idm-top-stories,.idm-get-started,.idm-calendar-group,.idm-articles-list,.idm-edit-content-section{margin-bottom:58px;padding-top:20px;}.idm-section-title{font-size:clamp(2rem,8vw,2.8rem);} }


/* v23 requested adjustments */
.idm-articles-page .idm-post-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
.idm-home-events-preview .idm-calendar-list { border-top:0; }
.idm-author-articles { margin-top:48px; }
@media (max-width: 900px) {
  .idm-articles-page .idm-post-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}


.idm-section-title-link{color:inherit;text-decoration:none;}
.idm-section-title-link:hover,.idm-section-title-link:focus{text-decoration:none;color:inherit;}
.idm-card-title.idm-title--long,.idm-calendar-item__title.idm-title--long{font-size:clamp(1.15rem,1.5vw,1.7rem);line-height:1.16;}
.idm-single-title.idm-title--long{font-size:clamp(2.4rem,4.6vw,4.2rem);line-height:1.04;}


.idm-single-event-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;align-items:center;}
.idm-single-event-actions .idm-signup-button{margin:0;}

/* ================================================================
   NEWSLETTER SECTION
   ================================================================ */
.idm-newsletter-section {
    background: transparent;
    padding: 1.2rem 0 2.5rem;
    margin-top: 0;
    border-top: 1px solid rgba(0,0,0,.1);
}
.idm-newsletter-inner {
    max-width: 640px;
    text-align: center;
}
.idm-newsletter-heading {
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin-bottom: 0.5rem;
}
.idm-newsletter-subtext {
    color: var(--color-text-light, #555);
    margin-bottom: 1.5rem;
}
.idm-newsletter-form {
    width: 100%;
}
.idm-newsletter-row {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
}
.idm-newsletter-row input[type="email"] {
    flex: 1 1 260px;
    padding: 0.65rem 1rem;
    border: 1.5px solid var(--color-border, #ccc);
    border-radius: 4px;
    font-size: 1rem;
    background: #fff;
}
.idm-newsletter-row input[type="email"]:focus {
    outline: none;
    border-color: var(--color-primary, #111);
}

/* ================================================================
   PAST EVENTS – more link
   ================================================================ */
.idm-more-past-events {
    margin-top: 1.25rem;
}
.idm-more-past-link {
    display: inline-block;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--color-primary, #111);
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    padding: 0;
}
.idm-more-past-link:hover {
    text-decoration: underline;
}

/* ================================================================
   ABOUT PAGE BANNER
   ================================================================ */
.idm-about-banner {
    margin: 2.5rem 0;
}

/* ================================================================
   PROJECT PAST EVENTS SECTION
   ================================================================ */
.idm-project-past-events {
    margin-top: 2rem;
    border-top: 1px solid var(--color-border, #e5e5e5);
    padding-top: 2rem;
}

/* ================================================================
   LINKS PAGE
   ================================================================ */
.idm-links-page {
    display: flex;
    justify-content: center;
    padding: 3rem 20px 5rem;
    min-height: 60vh;
}
.idm-links-card {
    width: 100%;
    max-width: 480px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.idm-links-logo {
    margin-bottom: 1.25rem;
}
.idm-links-logo img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}
.idm-links-title {
    font-family: var(--idm-serif, serif);
    font-size: clamp(1.6rem, 5vw, 2.2rem);
    letter-spacing: -0.04em;
    line-height: 1.1;
    margin: 0 0 6px;
    text-align: center;
}
.idm-links-subtitle {
    font-size: .95rem;
    opacity: .65;
    margin: 0 0 2rem;
    text-align: center;
}
.idm-links-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}
.idm-link-button {
    display: block;
    width: 100%;
    padding: 14px 20px;
    border: 1.5px solid #111;
    text-align: center;
    text-decoration: none;
    color: #111;
    font-family: var(--idm-sans, sans-serif);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: .02em;
    transition: background .15s, color .15s;
    box-sizing: border-box;
}
.idm-link-button:hover {
    background: #111;
    color: #fff;
    text-decoration: none;
}
.idm-links-empty {
    color: #888;
    text-align: center;
    margin-top: 1rem;
}

/* ================================================================
   GLOBAL BUTTON COLOUR FIXES — remove any blue browser defaults
   ================================================================ */
.idm-signup-button,
.idm-link-button,
.idm-more-past-link,
body.idm-theme button {
    -webkit-appearance: none;
    appearance: none;
    color: #111;
    background-color: transparent;
}
.idm-signup-button:focus,
.idm-link-button:focus,
body.idm-theme button:focus,
body.idm-theme input:focus,
body.idm-theme select:focus,
body.idm-theme textarea:focus {
    outline: 2px solid #111;
    outline-offset: 2px;
}
/* Override any WP or browser blue on links used as buttons */
a.idm-signup-button,
a.idm-link-button {
    color: #111;
}
a.idm-signup-button:hover,
a.idm-link-button:hover {
    color: #fff;
    background: #111;
}

/* ================================================================
   MOBILE HEADER TIGHTENING
   ================================================================ */
@media (max-width: 900px) {
  .site-shell.branding-row {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* ================================================================
   NEWSLETTER FORM — email input matches button style
   ================================================================ */
.idm-newsletter-row {
    align-items: stretch;
}
.idm-newsletter-row input[type="email"] {
    border: 1.5px solid #111;
    border-radius: 0;
    padding: 14px 18px;
    font-family: var(--idm-sans, sans-serif);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: .01em;
    background: #fff;
    color: #111;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
}
.idm-newsletter-row input[type="email"]:focus {
    outline: 2px solid #111;
    outline-offset: -2px;
    border-color: #111;
}
.idm-newsletter-row .idm-signup-button {
    margin-top: 0;
    white-space: nowrap;
}

/* ================================================================
   LINKS PAGE — more space between logo and buttons
   ================================================================ */
.idm-links-logo {
    margin-bottom: 2rem;
}
.idm-links-subtitle {
    margin-bottom: 2.5rem;
}

/* ================================================================
   EVENT SIGNUP FORM TOGGLE
   ================================================================ */
.idm-event-form-toggle-wrap {
    border: 1px solid rgba(0,0,0,.14);
    padding: 16px 20px;
    margin-top: 18px;
}
.idm-toggle-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-weight: 600;
    font-family: var(--idm-sans, sans-serif);
}
.idm-toggle-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #111;
    cursor: pointer;
    flex-shrink: 0;
}

/* ================================================================
   OPINION FORM
   ================================================================ */
.idm-opinion-form-page {
    padding-bottom: 4rem;
}
.idm-opinion-header {
    margin-bottom: 2rem;
    max-width: 820px;
}
.idm-opinion-kicker {
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .6;
    margin: 0 0 8px;
    font-family: var(--idm-sans, sans-serif);
    font-weight: 700;
}
.idm-opinion-subheading {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    opacity: .55;
    margin: 0 0 18px;
    font-family: var(--idm-sans, sans-serif);
}
.idm-opinion-intro {
    font-size: 1.1rem;
    line-height: 1.65;
    max-width: 700px;
}
.idm-opinion-guidelines {
    margin-bottom: 2.5rem;
    max-width: 700px;
}
.idm-opinion-guidelines ul {
    padding-left: 1.5rem;
    line-height: 1.8;
}
.idm-char-count {
    display: block;
    font-size: .85rem;
    opacity: .55;
    margin-top: 4px;
    font-family: var(--idm-sans, sans-serif);
}
.idm-opinion-consent {
    margin-top: 16px;
}

/* ================================================================
   MANAGE FORMS TABLE
   ================================================================ */
.idm-forms-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .9rem;
    font-family: var(--idm-sans, sans-serif);
}
.idm-forms-table th,
.idm-forms-table td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(0,0,0,.1);
    text-align: left;
    vertical-align: top;
}
.idm-forms-table th {
    font-weight: 700;
    text-transform: uppercase;
    font-size: .78rem;
    letter-spacing: .05em;
    background: rgba(0,0,0,.03);
}
.idm-forms-table tr:hover td {
    background: rgba(0,0,0,.02);
}

/* ================================================================
   CAROUSEL
   ================================================================ */
.idm-carousel {
    position: relative;
    margin: 0 0 56px;
    overflow: hidden;
    background: #000;
    /* Responsive aspect ratio: wider on desktop, squarer on mobile */
    aspect-ratio: 16/7;
}
@media (max-width: 700px) {
    .idm-carousel { aspect-ratio: 4/3; }
}
.idm-carousel__track {
    position: relative;
    width: 100%;
    height: 100%;
}
.idm-carousel__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .6s ease;
    pointer-events: none;
}
.idm-carousel__slide.is-active {
    opacity: 1;
    pointer-events: auto;
}
.idm-carousel__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.idm-carousel__link {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
}
.idm-carousel__caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    padding: 28px 32px 24px;
    background: linear-gradient(to top, rgba(0,0,0,.62) 0%, transparent 100%);
    color: #fff;
    font-family: var(--idm-serif, serif);
    font-size: clamp(1.2rem, 3vw, 2rem);
    letter-spacing: -0.03em;
    line-height: 1.2;
    font-weight: 700;
}
@media (max-width: 700px) {
    .idm-carousel__caption { padding: 18px 18px 16px; font-size: clamp(1rem, 5vw, 1.4rem); }
}
.idm-carousel__controls {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 10;
}
.idm-carousel__btn {
    background: rgba(255,255,255,.25);
    border: none;
    color: #fff;
    font-size: 1.6rem;
    line-height: 1;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: background .15s;
    -webkit-appearance: none;
    appearance: none;
}
.idm-carousel__btn:hover { background: rgba(255,255,255,.5); }
.idm-carousel__dots {
    display: flex;
    gap: 8px;
    align-items: center;
}
.idm-carousel__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,.45);
    padding: 0;
    cursor: pointer;
    transition: background .2s, transform .2s;
    -webkit-appearance: none;
    appearance: none;
}
.idm-carousel__dot.is-active {
    background: #fff;
    transform: scale(1.35);
}

/* ================================================================
   PROJECTS GRID — two columns on landing page
   ================================================================ */
.idm-projects-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
@media (max-width: 700px) {
    .idm-projects-grid--two {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ================================================================
   TOP STORIES — mobile: 2 shown, rest hidden, "Read more" button
   ================================================================ */
.idm-stories-more-wrap {
    margin-top: 16px;
    text-align: left;
}
@media (min-width: 701px) {
    /* On desktop all 4 always visible, toggle irrelevant */
    .idm-story-hidden { display: block !important; }
    .idm-stories-more-wrap { display: none !important; }
}

/* ================================================================
   MOBILE MENU — denser item spacing
   ================================================================ */
@media (max-width: 900px) {
    .idm-menu a {
        padding: 9px 16px !important;
        font-size: .92rem !important;
    }
    .idm-menu li + li {
        border-top: 1px solid rgba(0,0,0,.08);
    }
}

/* ================================================================
   GET STARTED TITLE — linked
   ================================================================ */
.idm-get-started__title-link {
    text-decoration: none;
    color: inherit;
}
.idm-get-started__title-link:hover .idm-section-title {
    text-decoration: underline;
}

/* ================================================================
   PARAGRAPH SPACING — ensure new paragraphs are visually separated
   in all reading contexts
   ================================================================ */
.idm-single-content p,
.entry-content p,
.post-content p,
.idm-page-editor-content p,
.idm-project-detail-content p {
    margin-top: 0;
    margin-bottom: 1.35em;
}
.idm-single-content p:last-child,
.entry-content p:last-child,
.post-content p:last-child,
.idm-page-editor-content p:last-child {
    margin-bottom: 0;
}
/* Ensure block-level elements in content also get spacing */
.idm-single-content > * + *,
.entry-content > * + *,
.post-content > * + * {
    margin-top: 1.35em;
}
.idm-single-content > *:first-child,
.entry-content > *:first-child,
.post-content > *:first-child {
    margin-top: 0;
}
/* Headings inside content */
.idm-single-content h2,
.idm-single-content h3,
.idm-single-content h4,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
    margin-top: 1.8em;
    margin-bottom: .45em;
}
/* Lists */
.idm-single-content ul,
.idm-single-content ol,
.entry-content ul,
.entry-content ol {
    margin-bottom: 1.35em;
    padding-left: 1.6em;
}
.idm-single-content li,
.entry-content li {
    margin-bottom: .35em;
}

/* ================================================================
   CAROUSEL — updated: no arrows, dots only, no bottom gap
   ================================================================ */
.idm-carousel {
    margin-bottom: 0 !important;
}
/* Hide prev/next arrow buttons entirely */
.idm-carousel__btn--prev,
.idm-carousel__btn--next {
    display: none !important;
}
/* Controls bar: just the dots, minimal height */
.idm-carousel__controls {
    bottom: 10px;
}
/* Dots: smaller, line-style instead of circles */
.idm-carousel__dot {
    width: 24px;
    height: 3px;
    border-radius: 0;
    background: rgba(255,255,255,.4);
}
.idm-carousel__dot.is-active {
    background: #fff;
    transform: none;
}

/* ================================================================
   CAROUSEL TITLE — serif, flush below carousel, no gap
   ================================================================ */
.idm-carousel-title {
    font-family: var(--idm-serif, serif);
    font-size: clamp(2rem, 5vw, 3.5rem);
    letter-spacing: -0.04em;
    line-height: 1.05;
    font-weight: 700;
    margin: 0 0 var(--idm-section-space, 72px);
    padding: 24px 0 0;
}
@media (max-width: 700px) {
    .idm-carousel-title {
        font-size: clamp(1.6rem, 8vw, 2.4rem);
        padding-top: 18px;
    }
}

/* ================================================================
   TOP STORIES — "Read more" + "All articles" side by side
   ================================================================ */
.idm-stories-more-wrap {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.idm-stories-all-link {
    opacity: .6;
    font-weight: 500;
}
.idm-stories-all-link:hover {
    opacity: 1;
    text-decoration: underline;
}

/* ================================================================
   CAROUSEL TITLE — no space to intro text below
   ================================================================ */
.idm-carousel-title {
    margin-bottom: 0 !important;
}
.idm-home-intro {
    margin-top: 20px !important;
}

/* ================================================================
   HOME EVENTS BUTTON — below intro text
   ================================================================ */
.idm-home-intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}
.idm-home-events-btn {
    margin-top: 0 !important;
}

/* ================================================================
   TOP STORIES — "All articles" link, black, no toggle button
   ================================================================ */
.idm-stories-more-wrap {
    margin-top: 20px;
}
.idm-stories-all-link {
    color: #111 !important;
    opacity: 1 !important;
    font-weight: 700;
    font-family: var(--idm-sans, sans-serif);
    text-decoration: none;
    letter-spacing: .01em;
}
.idm-stories-all-link:hover {
    text-decoration: underline;
}

/* ================================================================
   ARTICLES PAGE — search bar
   ================================================================ */
.idm-articles-header {
    margin-bottom: 20px;
}
.idm-articles-search-form {
    margin-bottom: 18px;
}
.idm-articles-search-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.idm-articles-search-row input[type="search"] {
    flex: 1 1 240px;
    padding: 12px 16px;
    border: 1.5px solid #111;
    font-family: var(--idm-sans, sans-serif);
    font-size: .95rem;
    background: #fff;
    color: #111;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}
.idm-articles-search-row input[type="search"]:focus {
    outline: 2px solid #111;
    outline-offset: -2px;
}
.idm-articles-clear-search {
    font-size: .85rem;
    color: #111;
    text-decoration: none;
    opacity: .6;
    white-space: nowrap;
}
.idm-articles-clear-search:hover { opacity: 1; text-decoration: underline; }
.idm-articles-no-results {
    padding: 24px 0;
    font-family: var(--idm-sans, sans-serif);
}
.idm-articles-no-results a {
    color: #111;
    font-weight: 700;
    margin-left: 8px;
}

/* ================================================================
   ARTICLES PAGE — category filter chips, neater
   ================================================================ */
.idm-articles-filter-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 32px;
    align-items: center;
}
.idm-filter-chip {
    padding: 7px 14px !important;
    font-size: .78rem !important;
    letter-spacing: .05em !important;
    white-space: nowrap;
    line-height: 1.3;
}

/* ================================================================
   MEMBERSHIP FORM — prevent overflow/spill
   ================================================================ */
.idm-membership-page {
    overflow-x: hidden;
}
.idm-membership-content,
.idm-membership-content .idm-membership-form {
    max-width: 760px;
    width: 100%;
    box-sizing: border-box;
}
.idm-membership-form input,
.idm-membership-form textarea,
.idm-membership-form select {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}
.idm-membership-form .idm-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
}
@media (max-width: 600px) {
    .idm-membership-form .idm-form-grid {
        grid-template-columns: 1fr;
    }
    .idm-membership-content,
    .idm-membership-content .idm-membership-form {
        max-width: 100%;
        padding: 0;
    }
}

/* ================================================================
   ARTICLES PAGE — mobile: show only top 2, rest hidden
   ================================================================ */
@media (min-width: 701px) {
    .idm-article-hidden { display: block !important; }
    .idm-articles-mobile-more { display: none !important; }
}
.idm-articles-mobile-more {
    margin-top: 16px;
}

/* ================================================================
   STICKY MOBILE HEADER
   ================================================================ */
@media (max-width: 900px) {
    .site-header-dynamic {
        position: sticky;
        top: 0;
        z-index: 100;
        background: #fff;
    }
}

/* ================================================================
   STICKY HEADER — all devices
   ================================================================ */
.site-header-dynamic {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
}
/* Remove the old mobile-only rule */
@media (max-width: 900px) {
    .site-header-dynamic {
        position: sticky;
        top: 0;
        z-index: 100;
        background: #fff;
    }
}

/* ================================================================
   HEADER SOCIAL ICONS
   ================================================================ */
.header-social-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    /* no margin-right:auto — utility-row uses justify-content:flex-end, social wrap comes first */
}
.header-social-icon {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #111;
    text-decoration: none;
    border: 1.5px solid #111;
    padding: 5px 8px;
    line-height: 1;
    transition: background .15s, color .15s;
}
.header-social-icon:hover {
    background: #111;
    color: #fff;
}
.header-social-icon svg {
    flex-shrink: 0;
}
/* Hide label text in desktop utility row */
.utility-row .header-social-icon span {
    display: none;
}

/* ================================================================
   MOBILE MENU — v15 clean style
   ================================================================ */
/* Social icons visible in utility row on desktop, hidden on mobile
   (utility-row itself is already hidden at ≤900px) */

/* ================================================================
   PROJECTS — title left + cards right (like membership)
   ================================================================ */
.idm-projects-membership-inner {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    align-items: start;
}
.idm-projects-membership-right {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
@media (max-width: 900px) {
    .idm-projects-membership-inner {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .idm-projects-membership-right {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }
}
@media (max-width: 600px) {
    .idm-projects-membership-right {
        grid-template-columns: 1fr;
    }
}

/* ================================================================
   NEWSLETTER — inputs + button unified row, matching border style
   ================================================================ */

/* Outer wrapper: inputs + button in one flex row */
.idm-newsletter-form-row {
    display: flex;
    align-items: stretch;
    width: 100%;
    overflow: hidden; /* prevent any child from spilling */
}

/* The three text inputs grouped */
/* Newsletter form: inputs + button in one flex row */
.idm-newsletter-form-row {
    display: flex;
    align-items: stretch;
    gap: 8px;
    max-width: 900px;
    flex-wrap: nowrap;
}
.idm-newsletter-row {
    display: flex;
    align-items: stretch;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
}
/* Name input */
.idm-newsletter-row input[name="idm_newsletter_sub_name"] {
    flex: 2 1 140px;
    min-width: 0;
}
/* Email input */
.idm-newsletter-row input[name="idm_newsletter_sub_email"] {
    flex: 2 1 160px;
    min-width: 0;
}
/* Position (third) input — widest on desktop */
.idm-newsletter-row input[name="idm_newsletter_sub_position"] {
    flex: 3 1 180px;
    min-width: 0;
}
/* Shared input style */
.idm-newsletter-row input {
    box-sizing: border-box;
    padding: 13px 12px;
    border: 1px solid #111;
    font-family: var(--idm-sans, sans-serif);
    font-size: .88rem;
    font-weight: 500;
    color: #111;
    background: #fff;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
    line-height: 1.4;
    height: auto;
}
.idm-newsletter-row input:focus {
    outline: 2px solid #111;
    outline-offset: -2px;
    position: relative;
    z-index: 1;
}
/* Subscribe button: beside the inputs */
.idm-newsletter-form-row .idm-signup-button {
    flex: 0 0 auto;
    margin-top: 0 !important;
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    padding: 13px 20px;
}

/* ── Mobile ── */
@media (max-width: 700px) {
    .idm-newsletter-form-row {
        flex-direction: column;
        flex-wrap: wrap;
        gap: 8px;
        max-width: 100%;
    }
    .idm-newsletter-row {
        flex-direction: column;
        gap: 8px;
        width: 100%;
        flex: none;
    }
    .idm-newsletter-row input[name="idm_newsletter_sub_name"],
    .idm-newsletter-row input[name="idm_newsletter_sub_email"],
    .idm-newsletter-row input[name="idm_newsletter_sub_position"] {
        flex: none;
        width: 100%;
        min-width: 0;
    }
    .idm-newsletter-form-row .idm-signup-button {
        width: 100% !important;
        justify-content: center;
        display: flex !important;
        align-self: auto;
        padding: 14px 20px;
        margin-top: 0 !important;
        box-sizing: border-box;
    }
}

/* ================================================================
   FOOTER INSTITUTION ROW
   ================================================================ */
.footer-institution-row {
    padding: 12px 0 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    align-items: center;
    justify-content: flex-start; /* left-aligned with site name */
    width: 100%;
}
@media (max-width: 700px) {
    .footer-institution-row {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 6px;
        justify-content: flex-start !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .footer-institution-link {
        text-align: left;
        margin-left: 0;
    }
}
.footer-institution-link {
    font-family: var(--idm-sans, sans-serif);
    font-size: .82rem;
    color: #111;
    text-decoration: none;
    opacity: .55;
    letter-spacing: .02em;
}
.footer-institution-link:hover {
    opacity: 1;
    text-decoration: underline;
}

/* ================================================================
   MANAGE FORMS — per-event sections, table actions
   ================================================================ */
.idm-manage-event-section {
    margin-bottom: 40px;
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(0,0,0,.08);
}
.idm-manage-event-title {
    font-family: var(--idm-sans, sans-serif);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 12px;
}
.idm-manage-count {
    font-weight: 400;
    opacity: .55;
    font-size: .9em;
}
.idm-forms-table-wrap {
    overflow: hidden;
}
.idm-forms-table-actions {
    margin-bottom: 10px;
}

/* ================================================================
   FOOTER — right column with copyright + social icons
   ================================================================ */
.footer-right-col {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
}
.footer-social-icons {
    display: flex;
    gap: 10px;
    align-items: center;
}
.footer-social-icon {
    display: flex;
    align-items: center;
    color: #111;
    text-decoration: none;
    border: 1px solid #111;
    padding: 6px 8px;
    transition: background .15s, color .15s;
}
.footer-social-icon:hover {
    background: #111;
    color: #fff;
}
@media (max-width: 700px) {
    .footer-right-col {
        align-items: flex-start;
    }
}

/* ================================================================
   EDIT HUB — categorised sections
   ================================================================ */
.idm-edit-hub-sections {
    display: flex;
    flex-direction: column;
    gap: 36px;
    margin-top: 32px;
}
.idm-edit-hub-section .idm-section-title {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 12px;
    opacity: .55;
    font-family: var(--idm-sans, sans-serif);
    font-weight: 700;
}
.idm-edit-hub-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.idm-edit-hub-buttons .idm-signup-button {
    margin-top: 0;
}

/* ================================================================
   NEWSLETTER — unified border thickness across all fields
   ================================================================ */
.idm-newsletter-form .idm-newsletter-row input,
.idm-newsletter-form .idm-newsletter-row input[type="text"],
.idm-newsletter-form .idm-newsletter-row input[type="email"] {
    border: 1px solid #111 !important;
    border-radius: 0 !important;
}
/* Subscribe button border already 1px solid #111 — matches */

/* ================================================================
   FOOTER INSTITUTION ROW — left-aligned with site name, all sizes
   ================================================================ */

/* ================================================================
   ABOUT PAGE — second intro paragraph block
   ================================================================ */
.idm-about-intro-2 {
    margin-top: 1.5rem;
}
.idm-about-intro-2 p {
    margin-bottom: 1.2em;
    line-height: 1.75;
}
.idm-about-intro-2 p:last-child {
    margin-bottom: 0;
}

/* ================================================================
   AUTHOR PROFILE — spacing between bio and events section
   ================================================================ */
.idm-author-events {
    margin-top: 2.5rem;
}

/* ================================================================
   YOUTUBE SOCIAL ICON — black like other socials
   ================================================================ */
.header-social-icon.idm-social-youtube,
.footer-social-icon.idm-social-youtube {
    color: #111;
    border-color: #111;
}
.header-social-icon.idm-social-youtube svg path,
.footer-social-icon.idm-social-youtube svg path {
    fill: currentColor !important;
    stroke: none;
}
.header-social-icon.idm-social-youtube:hover,
.footer-social-icon.idm-social-youtube:hover {
    background: #111;
    color: #fff;
}

/* ================================================================
   FOOTER SOCIALS ROW — earlier layout
   ================================================================ */
.footer-socials-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 8px 0 12px;
}
@media (max-width: 700px) {
    .footer-socials-row {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* ================================================================
   YOUTUBE EMBED — responsive 16:9
   ================================================================ */
.idm-youtube-embed {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    margin: 2rem 0;
    background: #000;
}
.idm-youtube-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}


/* ================================================================
   THINK TANK FEATURES
   ================================================================ */

/* ── Policy briefs ── */
.idm-publications-intro { opacity:.7; max-width:640px; }
.idm-briefs-grid {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    gap:32px; margin-top:32px;
}
.idm-brief-card { display:flex; flex-direction:column; }
.idm-brief-card__image img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.idm-brief-card__topic {
    font-size:.72rem; text-transform:uppercase; letter-spacing:.08em;
    opacity:.55; margin:12px 0 4px; font-family:var(--idm-sans);
}
.idm-brief-card h2 { font-size:1.25rem; margin:4px 0 6px; letter-spacing:-.02em; }
.idm-brief-card h2 a { text-decoration:none; color:inherit; }
.idm-brief-card h2 a:hover { text-decoration:underline; }
.idm-brief-card__meta { font-size:.82rem; opacity:.6; font-family:var(--idm-sans); margin:0 0 8px; }
.idm-brief-card__excerpt { font-size:.92rem; line-height:1.6; }

/* ── Annual report stats ── */
.idm-report-stats {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:24px; margin:32px 0;
}
.idm-report-stat {
    text-align:center; padding:28px 16px; border:1px solid rgba(0,0,0,.12);
}
.idm-report-stat__num {
    display:block; font-family:var(--idm-serif,serif); font-size:2.6rem;
    font-weight:700; letter-spacing:-.04em; line-height:1;
}
.idm-report-stat__label {
    display:block; margin-top:8px; font-size:.78rem; text-transform:uppercase;
    letter-spacing:.07em; opacity:.6; font-family:var(--idm-sans);
}
.idm-report-ambassadors { max-width:680px; line-height:1.7; }

/* ── Reading time ── */
.idm-reading-time {
    font-size:.82rem; font-family:var(--idm-sans); opacity:.55;
    text-transform:uppercase; letter-spacing:.05em; margin:8px 0 20px;
}

/* ── Open positions ── */
.idm-positions-list { display:flex; flex-direction:column; gap:20px; margin-top:24px; }
.idm-position-card { border:1px solid rgba(0,0,0,.12); padding:24px; }
.idm-position-card h3 { margin:0 0 8px; font-size:1.15rem; }
.idm-position-card p { margin:0; line-height:1.6; }

/* ── Video archive ── */
.idm-video-archive {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
    gap:36px; margin-top:24px;
}
.idm-video-card h3 { font-size:1.1rem; margin:12px 0 4px; }
.idm-video-card h3 a { text-decoration:none; color:inherit; }
.idm-video-card h3 a:hover { text-decoration:underline; }
.idm-video-card .idm-youtube-embed { margin:0; }
.idm-video-date { font-size:.82rem; opacity:.6; font-family:var(--idm-sans); margin:0; }

/* ── Dark mode toggle button ── */
.idm-darkmode-toggle {
    display:inline-flex; align-items:center; justify-content:center;
    border:1.5px solid #111; background:transparent; color:#111;
    padding:5px 8px; cursor:pointer; transition:background .15s,color .15s;
}
.idm-darkmode-toggle:hover { background:#111; color:#fff; }
@media (max-width:900px){ .idm-darkmode-toggle:not(.idm-mobile-darkmode) { display:none; } }

/* ── DARK MODE THEME ── */
html.idm-dark body.idm-theme,
html.idm-dark .site-header-dynamic,
html.idm-dark .idm-primary-nav,
html.idm-dark .site-footer-dynamic {
    background:#101114 !important; color:#e8e6e1 !important;
}
html.idm-dark body.idm-theme a,
html.idm-dark .idm-menu a,
html.idm-dark .site-title-text a,
html.idm-dark .idm-section-title a,
html.idm-dark .idm-card-title a,
html.idm-dark h1, html.idm-dark h2, html.idm-dark h3,
html.idm-dark .idm-calendar-item__title a { color:#e8e6e1 !important; }
html.idm-dark .header-social-icon,
html.idm-dark .footer-social-icon,
html.idm-dark .idm-darkmode-toggle,
html.idm-dark .idm-signup-button {
    color:#e8e6e1 !important; border-color:#e8e6e1 !important; background:transparent;
}
html.idm-dark .idm-signup-button:hover,
html.idm-dark .header-social-icon:hover,
html.idm-dark .footer-social-icon:hover,
html.idm-dark .idm-darkmode-toggle:hover { background:#e8e6e1 !important; color:#101114 !important; }
html.idm-dark input, html.idm-dark textarea, html.idm-dark select {
    background:#1a1b1f !important; color:#e8e6e1 !important; border-color:#555 !important;
}
html.idm-dark .header-search-wrap input[type="search"] { border-color:#e8e6e1 !important; }
html.idm-dark .idm-report-stat,
html.idm-dark .idm-position-card,
html.idm-dark .idm-project-card,
html.idm-dark .idm-calendar-item { border-color:rgba(255,255,255,.18) !important; }
html.idm-dark .idm-carousel__caption { color:#fff; }
html.idm-dark img { opacity:.92; }


/* ================================================================
   POLICY BRIEF — single academic page
   ================================================================ */
.idm-brief-article {
    max-width: 760px;
    margin: 0 auto;
    padding: 40px 0 80px;
}
.idm-brief-header { margin-bottom: 0; }
.idm-brief-meta-topic {
    font-family: var(--idm-sans, sans-serif);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    opacity: .55;
    margin: 0 0 16px;
}
.idm-brief-title {
    font-family: var(--idm-serif, serif);
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    letter-spacing: -.03em;
    line-height: 1.1;
    margin: 0 0 20px;
    font-weight: 700;
}
.idm-brief-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    font-family: var(--idm-sans, sans-serif);
    font-size: .88rem;
    color: rgba(17,17,17,.65);
    margin-bottom: 14px;
}
.idm-brief-byline__author { font-weight: 600; color: #111; }
.idm-brief-doi {
    font-family: var(--idm-sans, sans-serif);
    font-size: .82rem;
    opacity: .6;
    margin: 0 0 20px;
}
.idm-brief-doi a { color: inherit; text-decoration: underline; }
.idm-brief-download-wrap { margin: 20px 0 0; }
.idm-brief-download-btn {
    display: inline-flex !important;
    align-items: center;
}
.idm-brief-rule {
    border: none;
    border-top: 2px solid #111;
    margin: 32px 0;
}
.idm-brief-abstract h2 {
    font-family: var(--idm-sans, sans-serif);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-weight: 700;
    margin: 0 0 10px;
}
.idm-brief-abstract p {
    font-size: 1rem;
    line-height: 1.75;
    color: rgba(17,17,17,.82);
    border-left: 3px solid #111;
    padding-left: 20px;
    margin: 0 0 32px;
}
.idm-brief-body { margin-top: 32px; }
.idm-brief-footer {
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid rgba(0,0,0,.1);
}

/* ================================================================
   MOBILE NAV FOOTER — socials + dark mode at bottom of dropdown
   ================================================================ */
.idm-mobile-nav-footer {
    display: none; /* hidden on desktop */
}
@media (max-width: 900px) {
    .idm-mobile-nav-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 14px 20px 18px;
        border-top: 1px solid rgba(0,0,0,.1);
        gap: 12px;
        /* Prevent any overflow */
        overflow: hidden;
        width: 100%;
        box-sizing: border-box;
    }
    .idm-mobile-nav-socials {
        display: flex;
        gap: 8px;
        flex-wrap: nowrap;
        align-items: center;
    }
    .idm-mobile-darkmode {
        display: inline-flex !important; /* show inside mobile menu */
        flex-shrink: 0;
    }
}
/* Sync dark mode moon/sun icons in mobile duplicate */
html.idm-dark .idm-mobile-darkmode .idm-dm-sun  { display: none !important; }
html.idm-dark .idm-mobile-darkmode .idm-dm-moon { display: block !important; }
.idm-mobile-darkmode .idm-dm-moon { display: none; }
.idm-mobile-darkmode .idm-dm-sun  { display: block; }

/* ================================================================
   BRIEF SINGLE — open access, reads, citation modal, A4 cover
   ================================================================ */
.idm-brief-meta-row {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: 16px; margin: 14px 0 20px;
}
.idm-brief-oa-badge {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--idm-sans); font-size: .82rem;
    font-weight: 600; color: #111; border: 1px solid #111; padding: 5px 10px;
}
.idm-brief-reads {
    display: flex; align-items: center; gap: 6px;
    font-family: var(--idm-sans); font-size: .82rem; opacity: .6;
}
.idm-brief-doi-badge { font-family: var(--idm-sans); font-size: .82rem; opacity: .6; }
.idm-brief-doi-badge a { color: inherit; text-decoration: underline; }
.idm-brief-actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 20px 0 28px; }
.idm-brief-actions .idm-signup-button { margin-top: 0 !important; }
/* A4 cover image: 1:√2 ratio */
.idm-brief-cover {
    width: 100%;
    max-width: 480px;
    aspect-ratio: 1 / 1.414;
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid rgba(0,0,0,.1);
}
.idm-brief-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Citation modal */
.idm-cite-modal {
    position: fixed; inset: 0; background: rgba(0,0,0,.5);
    display: none; align-items: center; justify-content: center;
    z-index: 99999; padding: 20px;
}
.idm-cite-modal__box {
    background: #fff; max-width: 600px; width: 100%;
    padding: 32px; position: relative;
}
.idm-cite-modal__box h2 { margin: 0 0 16px; font-size: 1.2rem; font-family: var(--idm-sans); }
.idm-cite-modal__close {
    position: absolute; top: 16px; right: 16px;
    background: none; border: none; font-size: 1.4rem; cursor: pointer; line-height: 1; color: #111;
}
.idm-cite-apa {
    font-family: var(--idm-sans); font-size: .92rem; line-height: 1.7;
    background: rgba(0,0,0,.04); padding: 16px; border-left: 3px solid #111;
}

/* ================================================================
   PUBLICATIONS ARCHIVE — A4 card cover, filters, search
   ================================================================ */
.idm-publications-filters { margin-bottom: 28px; }
.idm-publications-search-row {
    display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px;
}
.idm-publications-search-input {
    flex: 1 1 200px; padding: 12px 14px;
    border: 1.5px solid #111; font-family: var(--idm-sans);
    font-size: .9rem; background: #fff; color: #111;
    outline: none; -webkit-appearance: none; border-radius: 0;
}
.idm-publications-search-input:focus { outline: 2px solid #111; outline-offset: -2px; }
.idm-publications-select {
    padding: 12px 14px; border: 1.5px solid #111; font-family: var(--idm-sans);
    font-size: .9rem; background: #fff; color: #111;
    outline: none; cursor: pointer; border-radius: 0;
}
.idm-publications-clear { font-size: .85rem; opacity: .6; align-self: center; color: #111; text-decoration: none; }
.idm-publications-clear:hover { opacity: 1; text-decoration: underline; }
.idm-publications-no-results { padding: 24px 0; }
/* A4 card cover in grid */
.idm-brief-card__cover-link { display: block; }
.idm-brief-card__cover {
    width: 100%;
    aspect-ratio: 1 / 1.414;
    overflow: hidden;
    background: rgba(0,0,0,.05);
}
.idm-brief-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.idm-brief-card:hover .idm-brief-card__cover img { transform: scale(1.03); }
.idm-brief-card__cover--placeholder { background: linear-gradient(135deg, rgba(0,0,0,.06) 0%, rgba(0,0,0,.12) 100%); }

/* ================================================================
   ARTICLES — quadratic image ratio everywhere
   ================================================================ */
.idm-post-card .wp-block-post-featured-image,
.idm-post-card figure.wp-block-post-featured-image {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    display: block;
}
.idm-post-card .wp-block-post-featured-image img,
.idm-post-card figure.wp-block-post-featured-image img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}

/* ================================================================
   BRIEF SINGLE — overrides: all text black, mobile layout fix
   ================================================================ */
.idm-brief-article,
.idm-brief-article h1,
.idm-brief-article h2,
.idm-brief-article h3,
.idm-brief-article p,
.idm-brief-article span,
.idm-brief-article a,
.idm-brief-byline,
.idm-brief-byline__author,
.idm-brief-byline__org,
.idm-brief-byline__date,
.idm-brief-byline__region,
.idm-brief-doi-badge,
.idm-brief-reads,
.idm-brief-meta-topic,
.idm-brief-abstract p {
    color: #111 !important;
    opacity: 1 !important;
}
.idm-brief-doi-badge a { color: #111 !important; }
.idm-brief-oa-badge { border-color: #111; color: #111 !important; }
/* Fix: ensure article uses full width, not mobile-squeezed */
.idm-brief-single { width: 100%; max-width: 100%; }
.idm-brief-article { max-width: 780px; margin: 40px auto; padding: 0 0 80px; width: 100%; }
@media (max-width: 700px) { .idm-brief-article { margin: 20px 0; } }

/* PDF viewer */
.idm-brief-pdf-viewer { margin-top: 36px; }
.idm-brief-pdf-viewer h2 { font-family: var(--idm-sans); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; margin: 0 0 12px; color: #111; }
.idm-brief-pdf-embed { width: 100%; }
.idm-brief-pdf-embed iframe { width: 100%; height: 800px; border: 1px solid rgba(0,0,0,.15); display: block; }
@media (max-width: 700px) { .idm-brief-pdf-embed iframe { height: 500px; } }
.idm-brief-pdf-fallback { font-size: .85rem; margin-top: 8px; }
.idm-brief-pdf-fallback a { color: #111; text-decoration: underline; }

/* ================================================================
   BOARD MEMBER DESCRIPTION — 3-line clamp
   ================================================================ */
.idm-author-card p:not(.idm-author-card__role),
.idm-author-card__content > p:last-child {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ================================================================
   CONTACT PAGE — Google Maps embed
   ================================================================ */
.idm-contact-map { margin-top: 48px; }
.idm-map-embed { width: 100%; overflow: hidden; }
.idm-map-embed iframe { display: block; width: 100%; height: 400px; border: 0; }

/* ================================================================
   ARTICLES PAGE — publications section
   ================================================================ */
.idm-articles-publications { margin-top: 64px; padding-top: 48px; border-top: 1px solid rgba(0,0,0,.1); }

/* ================================================================
   BRIEF SINGLE — image next to abstract, dark mode, smaller image
   ================================================================ */
.idm-brief-intro-grid {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 32px;
    align-items: start;
    margin-bottom: 32px;
}
@media (max-width: 700px) {
    .idm-brief-intro-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}
/* Smaller A4 cover beside abstract */
.idm-brief-cover-small {
    width: 200px;
    aspect-ratio: 1 / 1.414;
    overflow: hidden;
    border: 1px solid rgba(0,0,0,.12);
    flex-shrink: 0;
}
.idm-brief-cover-small img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media (max-width: 700px) {
    .idm-brief-cover-small {
        width: 100%;
        max-width: 260px;
    }
}

/* Dark mode for brief single page */
html.idm-dark .idm-brief-article,
html.idm-dark .idm-brief-article h1,
html.idm-dark .idm-brief-article h2,
html.idm-dark .idm-brief-article h3,
html.idm-dark .idm-brief-article p,
html.idm-dark .idm-brief-article span,
html.idm-dark .idm-brief-article li,
html.idm-dark .idm-brief-byline,
html.idm-dark .idm-brief-byline__author,
html.idm-dark .idm-brief-byline__org,
html.idm-dark .idm-brief-byline__date,
html.idm-dark .idm-brief-byline__region,
html.idm-dark .idm-brief-doi-badge,
html.idm-dark .idm-brief-reads,
html.idm-dark .idm-brief-meta-topic,
html.idm-dark .idm-brief-abstract p,
html.idm-dark .idm-brief-abstract h2 {
    color: #e8e6e1 !important;
}
html.idm-dark .idm-brief-oa-badge {
    color: #e8e6e1 !important;
    border-color: #e8e6e1 !important;
}
html.idm-dark .idm-brief-rule { border-top-color: rgba(255,255,255,.2); }
html.idm-dark .idm-brief-abstract p { border-left-color: #e8e6e1; }
html.idm-dark .idm-brief-cover-small { border-color: rgba(255,255,255,.15); }
html.idm-dark .idm-brief-footer a { color: #e8e6e1 !important; }
html.idm-dark .idm-cite-modal__box { background: #1a1b1f; color: #e8e6e1; }
html.idm-dark .idm-cite-modal__box h2 { color: #e8e6e1; }
html.idm-dark .idm-cite-apa { background: rgba(255,255,255,.06); border-left-color: #e8e6e1; color: #e8e6e1; }
html.idm-dark .idm-cite-modal__close { color: #e8e6e1; }
html.idm-dark .idm-brief-doi-badge a { color: #e8e6e1 !important; }

/* Contact map */
.idm-contact-map-desc {
    font-family: var(--idm-sans);
    font-size: .95rem;
    line-height: 1.65;
    max-width: 600px;
    margin-bottom: 12px;
}
.idm-contact-map-address {
    font-family: var(--idm-sans);
    font-size: .88rem;
    opacity: .7;
    margin-bottom: 20px;
    line-height: 1.7;
}

/* ================================================================
   PAST FEATURED SPEAKERS
   ================================================================ */
.idm-speakers-section {
    padding: var(--idm-section-space, 72px) 0;
    text-align: center;
}
.idm-speakers-header { margin-bottom: 48px; }
.idm-speakers-title {
    font-family: var(--idm-serif, serif);
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    letter-spacing: -.03em;
    font-weight: 700;
    margin: 0 0 12px;
}
.idm-speakers-subheading {
    font-family: var(--idm-sans, sans-serif);
    font-size: 1rem;
    opacity: .65;
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.6;
}
.idm-speakers-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 36px 28px;
    max-width: 960px;
    margin: 0 auto;
}
.idm-speaker-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 148px;
}
.idm-speaker-photo {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(0,0,0,.1);
    margin-bottom: 14px;
    background: rgba(0,0,0,.07);
    flex-shrink: 0;
}
.idm-speaker-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}
.idm-speaker-photo__placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0,0,0,.08), rgba(0,0,0,.16));
}
.idm-speaker-name {
    font-family: var(--idm-sans, sans-serif);
    font-weight: 700;
    font-size: .9rem;
    margin: 0 0 5px;
    line-height: 1.3;
    color: #111;
}
.idm-speaker-title {
    font-family: var(--idm-sans, sans-serif);
    font-size: .78rem;
    line-height: 1.4;
    opacity: .6;
    margin: 0;
    color: #111;
}
@media (max-width: 600px) {
    .idm-speaker-card { width: 120px; }
    .idm-speaker-photo { width: 88px; height: 88px; }
    .idm-speakers-grid { gap: 28px 16px; }
}
/* Dark mode */

html.idm-dark .idm-speaker-name,
html.idm-dark .idm-speaker-title { color: #e8e6e1; }

/* ================================================================
   SPEAKERS — mobile horizontal scroll, 3 visible
   ================================================================ */
@media (max-width: 700px) {
    .idm-speakers-grid {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        justify-content: flex-start;
        gap: 20px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 8px;
        margin: 0 calc(-1 * var(--idm-shell-padding, 16px));
        padding-left:  var(--idm-shell-padding, 16px);
        padding-right: var(--idm-shell-padding, 16px);
    }
    .idm-speaker-card {
        flex: 0 0 auto;
        width: calc((100% - 40px) / 3); /* 3 visible, accounting for 2 gaps */
        min-width: 96px;
        scroll-snap-align: start;
    }
    .idm-speaker-photo {
        width: 72px;
        height: 72px;
    }
    .idm-speaker-name { font-size: .78rem; }
    .idm-speaker-title { font-size: .68rem; }
}

/* ================================================================
   REDUCE SPACE — speakers to newsletter
   ================================================================ */
.idm-speakers-section {
    padding-bottom: 32px !important;
}


/* ================================================================
   FRONT PAGE — recent publications section
   ================================================================ */
.idm-home-publications { margin-top: var(--idm-section-space, 56px); }
