.ad-home_middle { display:flex;flex-direction:column;align-items:center;margin:2.5rem auto;padding:1.5rem 0;border-top:1px solid #dedee5; }
.ad-home_middle img { width:auto;max-width:min(300px,100%);max-height:480px;object-fit:contain;height:auto; }

/* Preserve native artwork proportions in all ad placements. */
.ad-slot img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}

.ad-home_top img {
  width: min(728px, 100%);
  max-height: none;
}

.ad-home_middle {
  width: 100%;
  margin: .5rem 0 0;
  padding: 0;
  border: 0;
}

.magazine-home .sidebar-promotion .ad-home_middle {
  align-items: stretch;
}

.magazine-home .sidebar-promotion .ad-home_middle img {
  width: auto;
  max-width: 100%;
  max-height: 440px;
  margin-inline: auto;
  object-fit: contain;
}

.ad-article_sidebar img {
  width: auto;
  max-width: 100%;
  max-height: none;
  height: auto;
  object-fit: contain;
}

@media (max-width: 680px) {
  .ad-home_top img {
    width: auto;
    max-width: 100%;
  }
}

/* Shared page width and a single masthead/navigation system. */
.wrap { width: calc(100% - 48px); max-width: 1200px; margin-inline: auto; }
.site-header.publication-header { display: block; padding: 0; border: 0; }
.publication-header .header-identity-row { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 18px 0; }
.publication-header .brand { margin: 0; flex: 0 0 208px; }
.publication-header .brand img { width: 208px; height: auto; }
.publication-header .header-promotion { flex: 0 1 728px; width: 728px; min-width: 0; }
.publication-header .header-promotion .ad-home_top { width: 100%; margin: 0; padding: 0; }
.publication-header .header-navigation-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; background: #283081; color: #fff; }
.publication-header .desktop-nav { display: flex; align-items: center; gap: 16px; font-size: 13px; }
.publication-header .desktop-nav > a,
.publication-header .desktop-nav .topics-menu > summary { display: inline-flex; align-items: center; min-height: 48px; padding: 0 4px; color: #fff; white-space: nowrap; }
.publication-header .desktop-nav > a:hover,
.publication-header .desktop-nav > a:focus-visible,
.publication-header .desktop-nav .topics-menu > summary:hover,
.publication-header .desktop-nav .topics-menu > summary:focus-visible,
.publication-header .desktop-nav > a[aria-current="page"] { color: #65b8f0; font-weight: 700; }
.publication-header .desktop-nav .topics-menu summary::after { color: #65b8f0; }
.publication-header .desktop-nav .topics-menu-panel { left: auto; right: 0; transform: none; color: #202337; }
.publication-header .desktop-nav .topics-menu-panel a { color: #202337; }
.publication-header .desktop-nav .topics-menu-panel a:hover,
.publication-header .desktop-nav .topics-menu-panel a:focus-visible { color: #0f75bc; }
.publication-header .header-actions { display: flex; align-items: center; flex: 0 0 auto; gap: 6px; }
.publication-header .search-toggle,
.publication-header .menu-toggle { min-height: 44px; border: 1px solid rgb(255 255 255 / .45); border-radius: 3px; background: transparent; color: #fff; }
.publication-header .search-toggle:hover,
.publication-header .menu-toggle:hover { background: #0f75bc; }
.publication-header a:focus-visible,
.publication-header button:focus-visible,
.publication-header .topics-menu summary:focus-visible { outline: 3px solid #8ed0ff; outline-offset: 2px; }
@media (max-width: 1000px) {
  .site-header.publication-header { display: block; padding: 0; }
  .publication-header .header-identity-row { display: flex; flex-direction: column; align-items: stretch; gap: 14px; padding: 14px 0; }
  .publication-header .brand { flex: 0 0 auto; }
  .publication-header .brand img { width: 165px; }
  .publication-header .header-promotion { flex: 0 0 auto; width: 100%; max-width: 728px; align-self: center; }
  .publication-header .header-navigation-row { width: 100%; margin-inline: 0; padding-inline: 10px; }
  .publication-header .desktop-nav { display: none; }
  .publication-header .header-actions { width: 100%; justify-content: flex-end; }
  .publication-header .menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
}
@media (max-width: 639px) {
  .wrap { width: calc(100% - 32px); }
  .publication-header .brand img { width: 145px; }
  .publication-header .header-identity-row { gap: 12px; padding: 12px 0; }
  .publication-header .header-navigation-row { padding-inline: 16px; }
}
