/* ===================================
   LAYOUT.CSS — Grids, Spacing, Structure
   =================================== */

/* ── Page Shell ── */
.ohti446k-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* ── Content Width Constraint ── */
.ohti446k-viewport {
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
  padding-inline: var(--ohti446k-sp-md);
}

.ohti446k-viewport--wide {
  max-width: 1100px;
}

/* ── Intro Section ── */
.ohti446k-intro {
  background: var(--ohti446k-color-white);
  border-bottom: 1px solid var(--ohti446k-color-border-light);
  padding-block: var(--ohti446k-sp-xl) var(--ohti446k-sp-lg);
}

.ohti446k-intro__title {
  font-family: var(--ohti446k-font-serif);
  font-size: var(--ohti446k-fs-xl);
  font-weight: 700;
  color: var(--ohti446k-color-text);
  text-align: center;
  margin-bottom: var(--ohti446k-sp-md);
  line-height: var(--ohti446k-lh-tight);
}

.ohti446k-intro__body {
  font-size: var(--ohti446k-fs-sm);
  line-height: var(--ohti446k-lh-relaxed);
  color: var(--ohti446k-color-text-muted);
  max-width: 800px;
  margin-inline: auto;
  margin-bottom: var(--ohti446k-sp-md);
}

.ohti446k-intro__notice {
  background: var(--ohti446k-color-info-bg);
  border: 1px solid #FF353D;
  border-radius: var(--ohti446k-radius-md);
  padding: var(--ohti446k-sp-sm) var(--ohti446k-sp-md);
  font-size: var(--ohti446k-fs-xs);
  color: var(--ohti446k-color-text-muted);
  line-height: var(--ohti446k-lh-normal);
  max-width: 800px;
  margin-inline: auto;
}

.ohti446k-intro__notice strong {
  color: var(--ohti446k-color-text);
}

/* ── Ranking Section ── */
.ohti446k-ranking {
  background: var(--ohti446k-color-white);
  padding-block: var(--ohti446k-sp-lg);
  border-bottom: 1px solid var(--ohti446k-color-border-light);
}

.ohti446k-ranking__stack {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* ── Articles Section ── */
.ohti446k-articles {
  padding-block: var(--ohti446k-sp-xl) var(--ohti446k-sp-lg);
}

.ohti446k-articles__heading {
  font-family: var(--ohti446k-font-serif);
  font-size: var(--ohti446k-fs-lg);
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ohti446k-color-text);
  margin-bottom: var(--ohti446k-sp-xl);
}

.ohti446k-articles__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ohti446k-sp-lg);
}

/* ── Disclaimer Section ── */
.ohti446k-disclaimer {
  padding-block: var(--ohti446k-sp-lg);
}

.ohti446k-disclaimer__box {
  background: var(--ohti446k-color-info-bg);
  border: 1.5px solid var(--ohti446k-color-info-border);
  border-radius: var(--ohti446k-radius-md);
  padding: var(--ohti446k-sp-lg) var(--ohti446k-sp-xl);
}

.ohti446k-disclaimer__box p {
  font-size: var(--ohti446k-fs-xs);
  color: var(--ohti446k-color-text-muted);
  line-height: var(--ohti446k-lh-relaxed);
  margin-bottom: var(--ohti446k-sp-sm);
}

.ohti446k-disclaimer__box p:last-child {
  margin-bottom: 0;
}

/* ── Content Section ── */
.ohti446k-content {
  background: var(--ohti446k-color-white);
  padding-block: var(--ohti446k-sp-xl);
  border-top: 1px solid var(--ohti446k-color-border-light);
}

.ohti446k-content__heading {
  font-family: var(--ohti446k-font-serif);
  font-size: var(--ohti446k-fs-lg);
  font-weight: 700;
  color: var(--ohti446k-color-text);
  margin-bottom: var(--ohti446k-sp-md);
  line-height: var(--ohti446k-lh-tight);
}

.ohti446k-content__body {
  font-size: var(--ohti446k-fs-sm);
  color: var(--ohti446k-color-text-muted);
  line-height: var(--ohti446k-lh-relaxed);
  margin-bottom: var(--ohti446k-sp-md);
}
/* ── Responsive ── */
@media (max-width: 768px) {

  .ohti446k-intro__title {
    font-size: var(--ohti446k-fs-lg);
  }

  .ohti446k-articles__grid {
    grid-template-columns: 1fr;
  }

  .ohti446k-disclaimer__box {
    padding: var(--ohti446k-sp-md);
  }
}

@media (max-width: 1024px) {
  .ohti446k-viewport {
    padding-inline: var(--ohti446k-sp-lg);
  }
}
