@charset "UTF-8";

/* ==========================================================================
   第44回日本森田療法学会 — ページ個別スタイル
   ========================================================================== */

.contents-area {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width: 991.98px) {
  .contents-area {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  /* テーブルのヘッダー行をSP・タブレットで非表示 */
  .u-table-sp-hide {
    display: none !important;
  }
}

/* ----- ページ見出し ------------------------------------------------------ */
.section-head {
  position: relative;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  padding: 2px 0 10px;
  z-index: 1 !important;
}

.section-head::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 84px;
  height: 3px;
  background: var(--green);
}

.section-head__title {
  font-family: var(--font-ja-base);
  font-size: clamp(1.25rem, 1.05rem + 0.6vw, 1.6rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--ink);
  line-height: 1.3;
}

.section-head__en {
  display: block;
  font-family: var(--font-en-display);
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  color: var(--ink-mute);
  text-transform: uppercase;
  margin-top: 3px;
  line-height: 1.2;
}

/* ----- 本文の共通文字組み ------------------------------------------------ */
#society-main p,
#society-main li,
#society-main dd,
#society-main td {
  text-align: justify;
  text-justify: inter-ideograph;
}

/* 共通セクション見出し（common-utils）の配色を今大会仕様に */
.content-section-title {
  border-top: 2px solid var(--green) !important;
  border-bottom: 1px solid var(--line) !important;
  letter-spacing: 0.06em;
}

/* ==========================================================================
   トップページ index.html
   ========================================================================== */
.topvisual {
  margin: 0 0 8px;
}

/* お知らせ内リンク */
.info dd a {
  color: var(--green-dark);
  text-decoration: underline;
}

.info dd a:hover {
  color: var(--accent);
}

/* ==========================================================================
   大会長挨拶 greeting.html
   ========================================================================== */
.greeting-top {
  display: flex;
  justify-content: flex-end;
  align-items: end;
  gap: 14px;
}

.greeting-top__meta {
  text-align: right;
  max-width: 520px;
}

.greeting-top__conf {
  font-weight: 700;
  font-size: 14px;
  line-height: 1.5;
  color: var(--green-dark);
}

.greeting-top__conf > span {
  display: inline-block;
}

.greeting-top__role {
  font-weight: 700;
  font-size: 14px;
  line-height: 2;
}

.greeting-top__role > span {
  font-weight: 700;
  font-size: 20px;
  line-height: 2;
  padding-left: 0.5em;
  letter-spacing: 0.06em;
}

.greeting-top__org {
  font-size: 12px;
  line-height: 1.4;
  color: var(--ink-soft);
}

.greeting-top__photo {
  width: 120px;
  height: auto;
  overflow: hidden;
  background: var(--bg-soft);
  border: 1px solid var(--line-soft);
}

.greeting-top__photo picture {
  display: block;
}

.greeting-top__photo img {
  width: 100%;
  height: auto;
  display: block;
}

.greeting-top__conf--sub {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-soft);
}

/* 開催テーマ（挨拶文の冒頭） */
.greeting-theme {
  text-align: center;
  margin: 34px 0 0;
  padding: 22px 10px 20px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

#society-main .greeting-theme p {
  text-align: center;
  margin: 0;
}

.greeting-theme__main {
  font-size: clamp(1.2rem, 1.02rem + 0.8vw, 1.6rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
  color: var(--ink);
}

.greeting-theme__sub {
  font-size: clamp(0.95rem, 0.88rem + 0.35vw, 1.1rem);
  letter-spacing: 0.06em;
  line-height: 1.6;
  color: var(--green-dark);
  margin-top: 6px !important;
}

.greeting-body {
  padding: 28px 5px 55px;
  line-height: 2;
}

.greeting-body p {
  text-align: justify;
  text-justify: inter-ideograph;
  text-align-last: left;
  margin-bottom: 1.4rem;
}

@media (max-width: 576px) {
  .greeting-top {
    flex-direction: row-reverse;
    justify-content: flex-start;
    align-items: end;
    gap: 12px;
  }

  .greeting-top__photo {
    flex: 0 0 100px;
    width: 100px;
  }

  .greeting-top__meta {
    text-align: left;
    flex: 1;
  }
}

/* ==========================================================================
   開催概要 outline.html
   ========================================================================== */
.overview {
  margin: 0;
  padding-bottom: 55px;
}

.overview__row {
  padding: 0 0 30px;
}

.overview__dt {
  border-top: 2px solid var(--green);
  border-bottom: 1px solid var(--line);
  font-weight: 700;
  color: var(--green-dark);
  margin-bottom: 10px;
  padding-left: 0.5em;
  line-height: 2;
  letter-spacing: 0.08em;
}

.overview__dd {
  margin: 0;
  line-height: 1.75;
  padding-left: 0.5em;
}

.overview__dd .num {
  font-size: 1.35em;
  font-weight: 700;
  color: var(--accent);
  padding: 0 1px;
}

.overview__theme {
  font-size: 1.12rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

/* ==========================================================================
   会場案内 access.html
   ========================================================================== */
.access-info {
  font-size: 0.95rem;
  line-height: 1.9;
}

.access-info .venue-name {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--green-dark);
}

.access-map {
  margin-top: 14px;
  border: 1px solid var(--line);
}

.access-map iframe {
  width: 100%;
  height: 380px;
  border: 0;
  display: block;
}

@media (max-width: 576px) {
  .access-map iframe {
    height: 260px;
  }
}

/* ==========================================================================
   準備中ページ
   ========================================================================== */
.preparing {
  text-align: center;
  padding: 70px 20px 80px;
}

.preparing__mark {
  font-family: var(--font-en-display);
  font-size: 0.75rem;
  letter-spacing: 0.28em;
  color: var(--ink-mute);
  text-transform: uppercase;
  margin: 0 0 14px;
}

.preparing__text {
  font-size: 1.08rem;
  letter-spacing: 0.06em;
  line-height: 2;
  color: var(--ink-soft);
  margin: 0;
  text-align: center !important;
}

.preparing__note {
  font-size: 0.88rem;
  color: var(--ink-mute);
  margin: 22px 0 0;
  text-align: center !important;
}

/* ==========================================================================
   抄録集（パスワード） abstract-book.html
   ========================================================================== */
.gate {
  max-width: 460px;
  margin: 0 auto;
  padding: 55px 20px 65px;
  text-align: center;
}

.gate__icon {
  font-size: 1.8rem;
  color: var(--green);
  line-height: 1;
  margin: 0 0 12px;
}

.gate__lead {
  font-size: 0.95rem;
  color: var(--ink-soft);
  line-height: 1.9;
  margin: 0 0 22px;
  text-align: center !important;
}

.gate__form {
  display: flex;
  gap: 8px;
  justify-content: center;
}

.gate__input {
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid var(--line);
  background: #fff;
  padding: 9px 12px;
  font-size: 0.95rem;
  letter-spacing: 0.06em;
}

.gate__btn {
  flex: 0 0 auto;
  border: 0;
  background: var(--green);
  color: #fff;
  padding: 9px 20px;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  transition: background-color 0.2s ease;
}

.gate__btn:hover {
  background: var(--green-dark);
}

.gate__error {
  display: none;
  color: #b1361e;
  font-size: 0.88rem;
  margin: 14px 0 0;
  text-align: center !important;
}

.gate__error.is-shown {
  display: block;
}

/* ==========================================================================
   汎用
   ========================================================================== */
.txt-indent {
  padding-left: 1em;
  text-indent: -1em;
  line-height: 1.6;
}

.lead-note {
  font-size: 0.9rem;
  color: var(--ink-mute);
  line-height: 1.8;
}
