/* Plugin-owned editorial ad placements. V37 theme CSS is unchanged. */
.kcom-ad-placement[hidden] { display: none !important; }
.kcom-ad-placement {
  max-width: 255px;
  min-width: 0;
  margin: 22px 0 0;
  padding: 15px 0 0;
  border: 0;
  border-top: 1px solid #e3ebea;
  background: transparent;
  box-shadow: none;
  font-size: 12px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.kcom-ad-placement__label {
  display: block;
  margin-bottom: 9px;
  color: #748886;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .07em;
}
.kcom-ad-placement .kcom-ad-campaign {
  display: block;
  color: #087873;
  text-decoration: none;
}
.kcom-ad-placement .kcom-ad-campaign:focus-visible {
  outline: 2px solid #d5a500;
  outline-offset: 3px;
}
.kcom-ad-placement .kcom-ad-campaign__image {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  margin: 0;
  border: 1px solid #e1e9e7;
  border-radius: 0;
  box-shadow: none;
}
.kcom-ad-placement .kcom-ad-campaign__name {
  display: block;
  margin-top: 8px;
  color: #26383a;
  font-size: 12px;
  font-weight: 600;
}
.kcom-ad-placement--right { margin-top: 24px; }
.kcom-ad-placement--float {
  float: right;
  clear: right;
  width: min(225px, 31%);
  margin: 0 0 24px 30px;
}
@media (max-width: 760px) {
  .kcom-ad-placement--float {
    float: none;
    clear: both;
    width: auto;
    max-width: 320px;
    margin: 18px auto 28px;
  }
  .kcom-ad-placement--right { max-width: 320px; margin: 18px 0; }
}

/* V2H: TIPS single articles use the same spacious reading proportions as GUIDE.
 * Do not modify the article body, membership/paywall nodes, or other page types.
 * Absolute aside is outside the padded reading column, so prose cannot flow
 * underneath the banner as it did with V2G's float:right fallback.
 */
body.single-kakenhi_tips .content-shell:not(.content-shell--app),
body.single-kakenhi-tips .content-shell:not(.content-shell--app) {
  width: 100%;
  max-width: 1240px !important;
  box-sizing: border-box;
}
body.single-kakenhi_tips .kcom-tips-editorial-layout,
body.single-kakenhi-tips .kcom-tips-editorial-layout {
  --kcom-tips-rail: clamp(205px, 22vw, 255px);
  --kcom-tips-gap: clamp(24px, 3.5vw, 48px);
  box-sizing: border-box !important;
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 1190px !important;
  margin-inline: auto !important;
  padding-right: calc(var(--kcom-tips-rail) + var(--kcom-tips-gap)) !important;
}
body.single-kakenhi_tips .kcom-tips-editorial-layout > .kcom-ad-placement--tips-rail,
body.single-kakenhi-tips .kcom-tips-editorial-layout > .kcom-ad-placement--tips-rail {
  position: absolute !important;
  top: 34px;
  right: 0;
  float: none !important;
  clear: none !important;
  box-sizing: border-box;
  width: var(--kcom-tips-rail) !important;
  max-width: var(--kcom-tips-rail) !important;
  margin: 0;
}
body.single-kakenhi_tips .kcom-tips-editorial-layout > :not(.kcom-ad-placement),
body.single-kakenhi-tips .kcom-tips-editorial-layout > :not(.kcom-ad-placement) {
  min-width: 0;
  max-width: 100%;
}
body.single-kakenhi_tips .kcom-tips-editorial-layout .km-reading-body,
body.single-kakenhi-tips .kcom-tips-editorial-layout .km-reading-body {
  font-size: 16px;
  line-height: 1.78;
  min-width: 0;
  overflow-wrap: break-word;
}
@media (max-width: 820px) {
  body.single-kakenhi_tips .kcom-tips-editorial-layout,
  body.single-kakenhi-tips .kcom-tips-editorial-layout {
    max-width: 870px !important;
    padding-right: 0 !important;
  }
  body.single-kakenhi_tips .kcom-tips-editorial-layout > .kcom-ad-placement--tips-rail,
  body.single-kakenhi-tips .kcom-tips-editorial-layout > .kcom-ad-placement--tips-rail {
    position: static !important;
    width: min(255px, 100%) !important;
    max-width: 100% !important;
    margin: 28px 0 14px;
  }
  body.single-kakenhi_tips .kcom-tips-editorial-layout .km-reading-body,
  body.single-kakenhi-tips .kcom-tips-editorial-layout .km-reading-body { font-size: 15px; }
}
