
:root { --idm-max: 1180px; }
body.idm-theme { overflow-x: hidden; }
.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: 10px 12px; border:1px solid rgba(0,0,0,.18); border-radius: 999px; }
.idm-search-form button { padding: 10px 16px; border:0; border-radius:999px; cursor:pointer; }
.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; }
  .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; }
.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; }
.utility-spacer { flex: 1; }
.header-search-wrap { width: min(260px, 100%); }
.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: 10px 14px; border:1px solid rgba(0,0,0,.16); 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.05rem; white-space:nowrap; }
.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; }
  .idm-menu-toggle { display:inline-flex; }
  .idm-primary-nav { position:absolute; top:100%; right:20px; width:min(280px, calc(100vw - 40px)); background:#fff; border:1px solid rgba(0,0,0,.12); padding:18px; display:none; z-index:40; }
  .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; }
  .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 72px; }
.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: clamp(280px, 44vw, 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:16px 18px;}
}
.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;}
