@charset "UTF-8";

/* モダンな最小限リセット */
*, *::before, *::after {
	box-sizing: border-box;
}

body, h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ul, ol, figure {
	margin: 0;
	padding: 0;
}

ul, ol {
	list-style: none;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}
/* リセット補足 */
a {
/*	text-decoration: none;*/
}
a:link, a:visited {
/*	color: #000;*/
}
a:hover {
	color: #F00;
}
figure {
	margin: 0;
}
ul, dd {
	margin: 0;
	padding: 0;
}
/* --------------------------------------------------
   ベース・グラデーション設定
-------------------------------------------------- */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", "Meiryo", sans-serif;
/*	font-family:"メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;*/
  color: #333333;
  line-height: 1.6;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #e0f2fe 100%);
  background-attachment: fixed;
  min-height: 100vh;
}

/* --------------------------------------------------
   レイアウトコンテナ
-------------------------------------------------- */
.site-wrapper {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.container {
  display: flex;
  gap: 20px;
}

/* --------------------------------------------------
   左カラム：サイドバー ＆ 言語切り替え
-------------------------------------------------- */
.sidebar {
  width: 260px;
  flex-shrink: 0;
  background-color: #ffffff;
  padding: 20px 15px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  align-self: flex-start;
}

/* 言語切り替えボタンのスタイル */
.lang-switch {
  display: flex;
  gap: 5px;
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 2px solid #e2e8f0;
}

.lang-btn {
  flex: 1;
  text-align: center;
  padding: 6px 0;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  color: #4a5568;
  background-color: #edf2f7;
  border-radius: 4px;
  transition: background-color 0.2s, color 0.2s;
}

.lang-btn.is-active,
.lang-btn:hover {
  background-color: #0056b3;
  color: #ffffff;
}

.side-nav ul {
  list-style: none;
}

.side-nav li {
  border-bottom: 1px dotted #ccc;
}

.side-nav a {
  display: block;
  padding: 10px 8px;
  color: #1a365d;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 700;
  transition: background-color 0.2s, color 0.2s;
}

.side-nav a:hover,
.side-nav a.is-active {
  background-color: #0056b3;
  color: #ffffff;
}

.side-widgets {
  margin-top: 25px;
  border-top: 2px solid #e2e8f0;
  padding-top: 15px;
}

.office-info {
  margin-bottom: 15px;
  font-size: 0.8rem;
  color: #4a5568;
  line-height: 1.5;
}

.office-info h3 {
  font-size: 0.85rem;
  color: #1a365d;
  border-left: 3px solid #0056b3;
  padding-left: 6px;
  margin-bottom: 5px;
}

.office-info a {
/*  color: #0056b3;
  text-decoration: underline;*/
}

.side-poster {
	margin: 40px 0;
	text-align: center;
}
.side-poster a:hover {
	opacity: 0.6;
}
/* --------------------------------------------------
   右カラム：メインエリア
-------------------------------------------------- */
.main-content {
  flex: 1;
  min-width: 0;
}

/* メインビジュアル（背景：image.jpg） */
.hero-visual {
  position: relative;
  background: url('img/image.jpg') no-repeat center 20%/ cover;
/*  background: url('img/image.jpg') no-repeat center top/ cover;*/
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  padding: 20px;
  color: #ffffff;
  display: flex;
  flex-direction: column;
}

/* 1. タイトルヘッダー */
.hero-header-title {
  padding: 15px 0 20px 0;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6), 0 0 12px rgba(0, 0, 0, 0.4);
}

.header-inner {
  display: flex;
  flex-direction: row; /* ロゴを左側、タイトルを右側に配置 */
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.header-logo {
  width: 85px; 
  height: auto;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.5));
}

.header-text-group {
  text-align: left;
}

.main-title-ja {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 2.7rem;
  font-weight: 900;
  color: #ffffff;
  letter-spacing: 0;
  line-height: 1.2;
}

.main-title-ja span {
  font-size: 2.0rem;
}

.main-title-en {
  font-family: Arial, sans-serif;
  font-size: 1.2rem;
  color: #f0fdf4;
  margin-top: 4px;
  font-weight: 700;
}

.main-title-en sup {
  font-size: 0.85rem;
}

/* スマホ用レスポンシブ調整 */
@media screen and (max-width: 850px) {
  .header-inner {
    gap: 10px;
  }

  .header-logo {
    width: 55px;
  }

  .main-title-ja {
    font-size: 1.5rem;
    line-height: 1.25;
  }

  .main-title-ja span {
    font-size: 1.2rem;
  }

  .main-title-en {
    font-size: 0.75rem;
  }

  .main-title-en sup {
    font-size: 0.55rem;
  }
}

/* --------------------------------------------------
   2. 中段：テーマ画像 ＆ 会期・会場パネルの横並びエリア
-------------------------------------------------- */
.hero-middle-body {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  padding: 10px 0 20px 0;
}

.hero-theme-area {
  width: 38%;
  flex-shrink: 0;
}

.theme-image {
  width: 170%;
  max-width: 450px;
  height: auto;
  display: block;
  filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.6));
}

/* 3. 会期・会場・役員（右上に配置） */
.hero-info-panel {
  width: 58%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
}

.info-item-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.badge-icon {
  background: #f6ad55;
  color: #FFFFFF;
  font-size: 0.8rem;
  font-weight: 900;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.badge-long {
  font-size: 0.68rem;
  line-height: 1.1;
  text-align: center;
}

.info-text {
  font-size: 1.4rem;
  font-weight: 700;
  color: #ffffff;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0px;
}

.date-text .num-large {
  font-size: 2.4rem;
}

.info-text2 {
  font-size: 2.4rem;
  font-weight: 700;
  color: #ffffff;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
}

.pre-congress {
  font-size: 1.2rem;
  color: #fef08a;
  margin-left: 2px;
}

.sub-desc {
  font-size: 0.9rem;
  font-weight: 500;
}

.officer-name {
  font-size: 1.7rem;
  margin-right: 4px;
}

.officer-sub {
  font-size: 0.75rem;
  font-weight: 500;
  color: #e2e8f0;
}

/* 4. 演題募集期間 */
.hero-schedule-box {
  background: rgba(15, 23, 42, 0.88);
  color: #ffffff;
  border-radius: 6px;
  padding: 12px 18px;
  backdrop-filter: blur(2px);
  margin-top: 300px;
/*  margin-top: 10px;*/
}

.schedule-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: #90cdf4;
  margin-bottom: 6px;
  border-bottom: 1px solid #475569;
  padding-bottom: 2px;
}

.schedule-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.schedule-item {
  display: flex;
  flex-direction: column;
  font-size: 0.78rem;
}

.schedule-item .label {
  color: #e2e8f0;
}

.schedule-item .term {
  font-weight: 700;
  color: #feb2b2;
  font-size: 1.2rem;
}

/* 下部コンテンツ */
.news-section {
  background-color: #ffffff;
  padding: 20px;
  margin-top: 20px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  min-height: 640px;
}

.section-title {
  font-size: 1.1rem;
  color: #1a365d;
  border-bottom: 2px solid #3182ce;
  padding-bottom: 5px;
  margin-bottom: 15px;
}

.news-scroll-box {
  max-height: 260px;
  overflow-y: auto;
}

.news-list {
  display: grid;
  grid-template-columns: 100px 1fr;
  row-gap: 10px;
  font-size: 0.88rem;
  margin-bottom: 10px;
}

.news-list dt {
  color: #718096;
  font-weight: 500;
}

.news-list dd a {
/*  color: #2b6cb0;
  text-decoration: none;*/
}

.site-footer {
  text-align: center;
  padding: 20px 0;
  font-size: 0.8rem;
  color: #4a5568;
}

/* レスポンシブ対応 */
.mobile-drawer-wrap {
  display: none;
}

@media screen and (max-width: 850px) {
  .container {
    flex-direction: column;
  }

  .sidebar {
    display: none;
  }

  /* スマホ用の大きいタイトル文字サイズの最適化 */
  .main-title-ja {
    font-size: 1.6rem;
    line-height: 1.3;
  }

  .main-title-ja span {
    font-size: 1.3rem;
  }

  .main-title-en {
    font-size: 0.85rem;
  }

  .main-title-en sup {
    font-size: 0.7rem;
  }

  .hero-middle-body {
    flex-direction: column;
    align-items: center;
  }

  .hero-theme-area {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: 25px;
  }

  .theme-image {
    width: 100%;
    max-width: 85%;
  }

  .hero-info-panel {
    width: 100%;
  }

  /* スマホにおける会期・会場の拡大フォントサイズ調整（少し控えめに調整） */
  .info-text {
    font-size: 0.95rem;
  }

  .date-text .num-large {
    font-size: 1.35rem; /* 大きすぎないよう微調整 */
  }

  .info-text2 {
    font-size: 1.35rem; /* 会場名もバランスを統一 */
  }

  .pre-congress {
    font-size: 0.75rem; /* プレコングレスの文字をスッキリ調整 */
  }

  .officer-name {
    font-size: 1.1rem;
  }

  /* スマホにおける演題募集期間のタームサイズ調整 */
  .schedule-item .term {
    font-size: 0.95rem; /* 大きすぎて改行されすぎていた部分を調整 */
  }

  .schedule-grid {
    grid-template-columns: 1fr;
  }

  .mobile-drawer-wrap {
    display: block;
  }

  .drawer-checkbox {
    display: none;
  }

  .fixed-bottom-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 55px;
    background: #1a365d;
    display: flex;
    justify-content: space-around;
    align-items: center;
    z-index: 999;
  }

  .bottom-bar-item {
    color: #ffffff;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.7rem;
    cursor: pointer;
  }

  .drawer-content {
    position: fixed;
    bottom: -100%;
    left: 0;
    width: 100%;
    height: 70vh;
    background: #ffffff;
    z-index: 998;
    transition: bottom 0.3s ease;
    overflow-y: auto;
    padding: 20px;
  }

  .drawer-checkbox:checked ~ .drawer-content {
    bottom: 55px;
  }

  .drawer-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 997;
  }

  .drawer-checkbox:checked ~ .drawer-overlay {
    display: block;
  }

  .mobile-lang {
    margin-bottom: 20px;
  }

  .mobile-nav ul {
    list-style: none;
  }

  .mobile-nav a {
    display: block;
    padding: 12px;
    border-bottom: 1px solid #eee;
    color: #333;
    text-decoration: none;
  }
}

/* 以下、テンプレートページ */
.temp-section {
  background-color: #ffffff;
  padding: 20px;
  margin-top: 20px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
	min-height: 1200px;
	font-weight: 100;
}

/* 準備中 */
.const {
	margin:50px 0 50px 50px;
	font-size:200%;
	color:#999;
	line-height:240%;
}
.const span {
	margin-left:40px;
	font-size:200%;
}
/*
==========================================================================
これまでの踏襲とページ毎の指定
========================================================================== 
*/

/* ■■■■■■■■■ 文字色・背景 ■■■■■■■■■ */
.black { color:#000000; }
.red { color:#FF0000; }
.white { color: #FFFFFF; }
.blue { color: #0000FF; }
.navy { color:#000066; }
.gray { color:#CCCCCC; }
.green { color:#009900; }
.orange { color: #FF6600; }
.pink { color:#FF6699; }

/* ■■■■■■■■■ フォント ■■■■■■■■■ */
.s400 { font-size:400%; }
.s200 { font-size:200%; }
.s160 { font-size:160%; }
.s140 { font-size:140%; }
.s130 { font-size:130%; }
.s120 { font-size:120%; }
.s110 { font-size:110%; }
.s90 { font-size:90%; }
.s85 { font-size:85%; }
.s80 { font-size:80%; }
.s70 { font-size:70%; }
.s60 { font-size:60%; }
.s50 { font-size:50%; }

.bold { font-weight: bold; }
.normal { font-weight:normal; }
.italic {
	font-family:YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
	font-style: italic;
}

/* ■■■■■■■■■ 文字配置 ■■■■■■■■■ */
.lh110 { line-height:110%; }
.lh130 { line-height:130%; }
.lh150 { line-height:150%; }

.tright { text-align:right; }
.tleft { text-align:left; }
.tcenter { text-align:center; }
.fleft { float:left; }
.fright { float:right; }

.under { text-decoration: underline; }
.torikeshi { text-decoration:line-through; }

.sage1 { text-indent: 1em; }
.sage10 { margin:0 0 7px 1em; text-indent: -1em; }
.sage13 { margin:0 0 7px 1.3em; text-indent: -1.3em; }
.sage25 { margin:0 0 0px 2.5em; text-indent: -2.5em; }
.sage30 { margin:0 0 0px 3em; text-indent: -3em; }
.sage50 { margin:0 0 0px 5em; text-indent: -5em; }

.ls10 { letter-spacing: -1px; }
.ls15 { letter-spacing: -1.5px; }
.ls20 { letter-spacing: -2px; }

/* マージン・パディング */
.mt5 { margin-top:5px; }
.mt10 { margin-top:10px; }
.mt20 { margin-top:20px; }
.mt30 { margin-top:30px; }

.mr10 { margin-right:10px; }
.mr20 { margin-right:20px; }
.mr30 { margin-right:30px; }

.mb5 { margin-bottom:5px; }
.mb10 { margin-bottom:10px; }
.mb15 { margin-bottom:15px; }
.mb20 { margin-bottom:20px; }
.mb30 { margin-bottom:30px; }

.ml03 { margin-left:0.3em; }
.ml04 { margin-left:0.4em; }
.ml05 { margin-left:0.5em; }
.ml06 { margin-left:0.6em; }
.ml08 { margin-left:0.8em; }
.ml10 { margin-left:1em; }
.ml13 { margin-left:1.3em; }
.ml20 { margin-left:2em; }
.ml30 { margin-left:3em; }
.ml40 { margin-left:4em; }
.ml50 { margin-left:5em; }

/* ■■■■■■■■■ リスト ■■■■■■■■■ */
.deci { margin:0 0 0 20px; list-style-type:decimal; }
.deci2 { margin:0 0 0 20px; list-style-type:decimal-leading-zero; }
.square { margin:0 0 0 20px; list-style-type:square; }
.disc { margin:0 0 0 20px; list-style-type:disc; }
.circle { margin:0 0 0 20px; list-style-type:circle; }
.uproman { margin:0 0 0 20px; list-style-type:upper-roman; }
.lowlatin { margin:0 0 0 20px; list-style-type:lower-latin; }
.uplatin { margin:0 0 0 20px; list-style-type:upper-latin; }

/* ■■■■■■■■■ その他 ■■■■■■■■■ */
.img_border {

	padding:1px;
	border:solid 1px #666;
	background-color: #FFF;
}

/* ■■■■■■■■■ ご挨拶 ■■■■■■■■■ */
#aisatsu {
	margin: 0;
/*	display: flex;
	gap:50px;*/
}
#aisatsu h3 {
	margin: 50px 0 0;
	padding-left: 10px;
	border-left: solid 5px #dc143c;
}
#aisatsu figure {
	text-align: center;
}
#aisatsu figure img {
	width: 150px;
	height: auto;
}
#aisatsu figure p {
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1.2;
}
#aisatsu figure span {
	font-size: 1rem;
}
#aisatsu > div {
/*	width: 50%;*/
}
#aisatsu > div > div {
	margin: 20px 0 0;
}

#aisatsu > div > div p {
	text-indent: 1em;
}
/* ■■■■■■■■■ 開催概要 ■■■■■■■■■ */
#gaiyo {
	margin: 0;
}
#gaiyo h3 {
	margin:35px 0 15px;
	margin-top: 50px;
	padding:0 0 3px;
	border-bottom:dotted 1px #666;
	font-size:110%;
	font-weight:bold;
	color:#333;
	clear:both;
}
#gaiyo dl {
	margin: 30px 0 0;
}
#gaiyo dt {
	padding:5px 0;
	width:140px;
	text-align:center;
	background: #009999;
	border:solid 1px #CCCCCC;
	border-radius:5px;
	font-weight:bold;
	line-height:110%;
	float:left;
	color: #FFFFFF;
}
#gaiyo dt .nimoji {
	letter-spacing:1em;
}
#gaiyo dd {
	margin:0 0 30px 11em;
	padding:3px 0 0 ;
}

/* ■■■■■■■■■ リンク ■■■■■■■■■ */
#link {
	margin: 0;
}
#link ul {
	margin: 0 0 0 30px;
	list-style: disc;
}
#link li {
	margin: 0 0 10px 0;
}

/* ■■■■■■■■■ アクセス ■■■■■■■■■ */
#access {
	margin: 0;
}
#access h3 {
	margin:35px 0 15px;
	padding:0 0 3px;
	border-bottom:dotted 1px #666;
	font-size:110%;
	font-weight:bold;
	color:#333;
}
#access h4 {
	margin:25px 0 10px;
	font-size:110%;
	font-weight:bold;
}
#access h5 {
	margin:15px 0 5px;
	font-size:105%;
	font-weight:bold;
}
#access iframe {
  max-width: 100%;
}

