/* -------- Reset & Base -------- */
* { box-sizing: border-box; margin: 0; padding: 0; }
.page-container {
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN",
    -apple-system, BlinkMacSystemFont,
    "Helvetica Neue", Arial, sans-serif;
  line-height: 1.75;
  color: #1f1f1f;
  background: #F3F4F0;
  letter-spacing: 0.02em;
}

.page-container a {
  color: #4e4e4e;
  text-decoration: underline;
}

/* -------- Layout -------- */
.page {
  max-width: 700px;
  margin: auto;
  padding-top: 100px;
  padding-bottom: 100px;
}

/* -------- Header -------- */
.diary-header {
  border-bottom: 1px solid #f0f0f0;
  margin-bottom: 100px;
}
.eyebrow {
  font-size: 14px;
  letter-spacing: 0.2em;
  color: #6b7280;
  text-transform: uppercase;
}
.titleImg {
  width: 30px;
  display: block;
  margin: 0 auto 100px;
}
.subtitle {
  font-size: 15px;
  color: #6b7280;
  margin-top: 24px;
}
.title-description {
  margin: 32px auto 0;
  max-width: 700px;
  text-align: center;
  font-size: 16px;
  font-weight: 250;
  line-height: 1.9;
  color: #4F4E4E;
}
.header-actions {
  margin-top: 18px;
  display: flex;
  gap: 14px;
  align-items: center;
}
.legacy-link {
  font-size: 14px;
  color: #2563eb;
  text-decoration: none;
  border-bottom: 1px solid #93c5fd;
  padding-bottom: 2px;
}
.legacy-link:hover { color: #1d4ed8; }

/* -------- Filter UI -------- */
.filter-label {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  color: #4e4e4e;
  margin-bottom: 17px;
}
.filters {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  justify-content: center;
}
.filter-btn {
  cursor: pointer;
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid #bfbfbf;
  background: #F3F4F0;
  color: #4e4e4e;
  font-size: 14px;
  transition: all 0.2s ease;
  font-family: inherit;
}
.filter-btn:hover {
  background-color: #0000000d;
  color: #4e4e4e;
}
.filter-btn.active {
  background-color: #4e4e4e;
  color: #fff;
}
.filter-btn.active:hover {
  opacity: 0.9;
}

/* -------- Summary & cards -------- */
.summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  color: #4b5563;
  margin-bottom: 16px;
}
.status { color: #6b7280; font-size: 13px; }

.diary-list {
  display: flex;
  flex-direction: column;
  gap: 32px;
  min-width:auto;
}
.diary-card {
  padding: 30px 40px 40px;
  border: .8px solid #e5e7eb;
  border-radius: 8px;
}
.diary-card a { word-break: break-all; text-decoration: underline; }
.diary-card p a { word-break: break-all; text-decoration: underline; }

/* 著者ごとの枠線色 */
.diary-card.author-h {
  border-color: #8C00D2;   /* 堀元（青紫系） */
}
.diary-card.author-h a {
  color: #8C00D2;   /* 堀元（青紫系） */
  margin-bottom: 16px;
  display: block;
}
.diary-card.author-i {
  border-color: #039095;   /* 飯田（水色系） */
}
.diary-card.author-i a {
  color: #039095;   /* 飯田（水色系） */
  margin-bottom: 16px;
  display: block;
}

.diary-meta {
  display: flex;
  flex-direction: column;
  gap: 40px;
  font-size: 16px;
  color: #4e4e4e;
}
.meta-date { letter-spacing: 0.05em; font-weight: 250;}
.meta-author {
  font-size: 14px;
}
.author-h { color: #8C00D2; }
.author-i { color: #039095; }
.diary-title { color: #4e4e4e; font-weight: 600; font-size: 20px; }
.diary-content { color: #4F4E4E; font-size: 16px; font-weight: 250; line-height: 1.8; margin-top: 40px;}
.diary-content p { margin-bottom: 16px; }
.diary-content img {
  width: 100%;
  height: auto;
  margin: 14px 0;
  border-radius: 10px;
}
.diary-content .youtube-embed {
  display: flex;
  justify-content: center;
  margin: 18px 0;
}
.diary-content .youtube-embed iframe {
  width: 100%;
  max-width: 560px;
  aspect-ratio: 16 / 9;
  height: auto;
  border-radius: 10px;
}
.diary-content blockquote {
  position: relative;
  margin: 24px 0;
  padding: 24px 28px 24px 36px;
  background: rgb(0 0 0 / 4%);
  border-radius: 12px;
  color: #4F4E4E;
  line-height: 1.8;
}
.diary-content blockquote::before {
  content: "";
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: 18px;
  width: 4px;
  background: #BFBFBF;
  border-radius: 2px;
}
.diary-content blockquote p {
  margin: 0 0 14px;
}
.diary-content blockquote p:last-child {
  margin-bottom: 0;
}
.diary-content blockquote a { word-break: break-all; text-decoration: underline; }
.diary-content em.missing-image { color: #b91c1c; font-style: normal; }

/* -------- Misc -------- */
.empty { color: #6b7280; text-align: center; padding: 40px 0; }

/* -------- Password Gate -------- */
.password-gate {
  max-width: 520px;
  margin: 60px auto 0;
  padding: 0 12px;
}

.password-gate__card {
  border: 1px solid #d7d7d7;
  border-radius: 14px;
  padding: 60px 70px;
}

.password-gate__form {
  display: grid;
  gap: 18px;
}

.password-gate__field {
  display: grid;
  gap: 10px;
}

.password-gate__label {
  display: none;
}

.password-gate__input {
  width: 100%;
  height: 56px;
  padding: 0 18px;
  border-radius: 8px;
  border: 1px solid #bfbfbf;
  background: #fff;
  font-size: 16px;
  color: #4e4e4e;
  outline: none;
}

.password-gate__input::placeholder {
  color: #a7a7a7;
}

.password-gate__input:focus {
  border-color: #8a8a8a;
}

.password-gate__submit {
  width: 100%;
  height: 58px;
  border-radius: 999px;
  border: none;
  background: #3f3f3f;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}

.password-gate__submit:hover {
  opacity: 0.9;
}

.password-gate__description {
  margin-top: 18px;
  color: #4e4e4e;
  font-size: 16px;
  line-height: 1.8;
}

.password-gate__text + .password-gate__text {
  margin-top: 10px;
}

.password-gate__actions {
  margin-top: 22px;
}

.password-gate__cta {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 56px;
  width: 100%;
  border-radius: 999px;
  border: 1px solid #bfbfbf;
  background: transparent;
  color: #4e4e4e;
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
}

.password-gate__cta:hover {
  background: rgba(0,0,0,0.05);
}

/* -------- Responsive -------- */
@media (max-width: 720px) {
  .page { margin: 0 10px; }
  .titleImg { width: 24px; margin: 0 auto 55px; }
  .diary-header { margin-bottom: 55px; }
  .diary-card { padding: 30px 20px 40px; }
  .password-gate { margin-top: 40px; }
  .password-gate__card { padding: 22px 18px 20px; }
}
