@charset "UTF-8";
/* ==========================================================================
   AFP Directory — Base Typography & Layout
   ========================================================================== */

body.afp-skin {
  background: var(--afp-bg);
  color: var(--afp-ink);
  font-family: var(--afp-sans-jp);
  font-feature-settings: "palt" 1;
  font-size: var(--afp-fs-md);
  line-height: var(--afp-lh-base);
  letter-spacing: var(--afp-ls-base);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.afp-skin a {
  color: var(--afp-bordeaux);
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size var(--afp-dur-base) var(--afp-ease), color var(--afp-dur-fast) var(--afp-ease);
}
.afp-skin a:hover { background-size: 100% 1px; color: var(--afp-bordeaux-dk); }

.afp-skin img { max-width: 100%; height: auto; display: block; }

/* --- Containers --------------------------------------------------------- */
.afp-container        { max-width: var(--afp-container);        margin: 0 auto; padding: 0 var(--afp-s-5); }
.afp-container-narrow { max-width: var(--afp-container-narrow); margin: 0 auto; padding: 0 var(--afp-s-5); }
.afp-container-wide   { max-width: var(--afp-container-wide);   margin: 0 auto; padding: 0 var(--afp-s-5); }

/* --- Sections ----------------------------------------------------------- */
.afp-section { padding: var(--afp-s-9) 0; }
.afp-section--tint { background: var(--afp-bg-tint); }
.afp-section--sand { background: var(--afp-bg-sand); }
.afp-section--ink  { background: var(--afp-ink); color: var(--afp-bg); }
.afp-section--ink a { color: var(--afp-gold-soft); }
@media (max-width: 768px) {
  .afp-section { padding: var(--afp-s-7) 0; }
}

/* --- Bilingual section heading (jp + small caps en) --------------------- */
.afp-bilingual {
  margin: 0 0 var(--afp-s-6);
  text-align: center;
}
.afp-bilingual__en {
  display: block;
  font-family: var(--afp-serif-en);
  font-style: italic;
  font-weight: 500;
  color: var(--afp-bordeaux);
  letter-spacing: var(--afp-ls-loose);
  font-size: var(--afp-fs-sm);
  text-transform: uppercase;
  margin-bottom: var(--afp-s-2);
}
.afp-bilingual__en::before,
.afp-bilingual__en::after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--afp-bordeaux);
  vertical-align: middle;
  margin: 0 var(--afp-s-3);
}
.afp-bilingual__jp {
  display: block;
  font-family: var(--afp-serif-jp);
  font-weight: 600;
  color: var(--afp-ink);
  font-size: var(--afp-fs-3xl);
  letter-spacing: var(--afp-ls-tight);
  line-height: var(--afp-lh-tight);
}
@media (max-width: 768px) {
  .afp-bilingual__jp { font-size: var(--afp-fs-2xl); }
}

/* --- H1/H2/H3 inside article body --------------------------------------- */
.afp-content h1 {
  font-family: var(--afp-serif-jp);
  font-weight: 700;
  font-size: var(--afp-fs-4xl);
  line-height: var(--afp-lh-tight);
  letter-spacing: var(--afp-ls-tight);
  color: var(--afp-ink);
  margin: 0 0 var(--afp-s-6);
}
.afp-content h2 {
  font-family: var(--afp-serif-jp);
  font-weight: 700;
  font-size: var(--afp-fs-2xl);
  line-height: 1.5;
  letter-spacing: var(--afp-ls-tight);
  color: var(--afp-ink);
  margin: var(--afp-s-9) 0 var(--afp-s-5);
  padding: var(--afp-s-3) 0 var(--afp-s-4) var(--afp-s-5);
  border-left: 4px solid var(--afp-bordeaux);
  background: linear-gradient(to bottom, transparent 0, transparent calc(100% - 1px), var(--afp-line) calc(100% - 1px));
}
.afp-content h3 {
  font-family: var(--afp-sans-jp);
  font-weight: 700;
  font-size: var(--afp-fs-xl);
  line-height: 1.55;
  color: var(--afp-ink);
  margin: var(--afp-s-7) 0 var(--afp-s-4);
  padding-bottom: var(--afp-s-2);
  border-bottom: 1px solid var(--afp-line);
}
.afp-content h4 {
  font-family: var(--afp-sans-jp);
  font-weight: 700;
  font-size: var(--afp-fs-lg);
  color: var(--afp-bordeaux);
  margin: var(--afp-s-6) 0 var(--afp-s-3);
}

.afp-content p { margin: 0 0 var(--afp-s-5); }
.afp-content ul,
.afp-content ol { margin: 0 0 var(--afp-s-5); padding-left: 1.5em; }
.afp-content li { margin-bottom: var(--afp-s-2); }

.afp-content blockquote {
  margin: var(--afp-s-6) 0;
  padding: var(--afp-s-5) var(--afp-s-6);
  border-left: 3px solid var(--afp-gold);
  background: var(--afp-bg-tint);
  color: var(--afp-ink-soft);
  font-family: var(--afp-serif-jp);
}

/* --- Lead paragraph ----------------------------------------------------- */
.afp-lead {
  font-size: var(--afp-fs-lg);
  line-height: 2;
  color: var(--afp-ink-soft);
  margin-bottom: var(--afp-s-6);
}
.afp-lead strong { color: var(--afp-ink); background: linear-gradient(transparent 60%, var(--afp-bordeaux-pale) 60%); padding: 0 .15em; }

/* --- Number lede (大きな数字を見せる時に) ---------------------------------- */
.afp-stat {
  font-family: var(--afp-serif-en);
  font-style: italic;
  color: var(--afp-bordeaux);
  font-weight: 600;
  font-size: 1.4em;
  letter-spacing: 0;
  padding: 0 .1em;
}
