@charset "UTF-8";

/* ==========================================================================
   1. Reset & Base Setting (グラデーション背景の復元)
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
}

body, h1, h2, h3, p, dl, dt, dd, ul, li {
  margin: 0;
  padding: 0;
}

body {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", MeiYo, sans-serif;
  color: #333;
/* 始色：明るめの青緑（#208186）
     終色：ごく薄い青緑がかったオフホワイト（#eaf2f2） */
  background: linear-gradient(to bottom, #208186 0px, #208186 400px, #eaf2f2 1100px, #dce8e8 100%) no-repeat fixed;  /* 背景のグラデーション指定を復元 */
/*  background: linear-gradient(to bottom, #0b5f63 0px, #0b5f63 500px, #ffffff 900px, #ffffff 100%) no-repeat fixed;*/
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
}

.site-wrapper {
  max-width: 1100px;
  margin: 0 auto;
  background: #FFFFFF;
/*  background: transparent;*/
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: #0056b3;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

a:hover {
  opacity: 0.8;
}

ul {
  list-style: none;
}

/* ==========================================================================
   2. Container Layout
   ========================================================================== */
.container {
  padding: 20px;
  display: flex;
  gap: 20px;
  background: transparent;
}

.sidebar {
  width: 250px;
  flex-shrink: 0;
}

.main-content {
  flex: 1;
  min-width: 0;
/*  background: #FFFFFF;*/
}

/* ==========================================================================
   3. SideBar Style
   ========================================================================== */
.side-nav ul {
  background: #e6f2f2;
  border-radius: 2px;
  overflow: hidden;
}

.side-nav li {
  border-bottom: 1px solid #d0e4e4;
}

.side-nav a {
  display: block;
  padding: 8px 12px;
  color: #003333;
  font-weight: bold;
  font-size: 0.88rem;
  background: #e6f2f2;
  transition: background 0.2s ease, color 0.2s ease;
}

.side-nav a:hover {
  background: #1d7393;
  color: #ffffff;
}

.side-nav .badge {
  display: block;
  font-size: 0.7rem;
  font-weight: normal;
  color: #0066cc;
  margin-top: 2px;
}

.side-nav a:hover .badge {
  color: #ffffff;
}

nav li a.is-active {
  background: #ff8000 !important;
  color: #ffffff !important;
  pointer-events: none;
}
nav li a.is-active .badge {
  color: #ffffff !important;
}

/* サイドバー・メニュー下のフライヤーボックス */
.side-flyer-box {
	background: #e6f2f2;
	border:solid 1px #DDDDDD;
/*  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);*/
  border-radius: 4px;
  padding: 10px;
  margin-top: 15px;
  text-align: center;
}

.flyer-img-side {
  width: 140px;
  height: auto;
  border: 1px solid #ccc;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  margin-bottom: 8px;
}

.btn-pdf-side {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: #0b5f63;
  color: #fff;
  font-size: 0.8rem;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 4px;
  border: 1px solid rgba(255,255,255,0.3);
  width: 100%;
}

.btn-pdf-side .material-symbols-outlined {
  font-size: 16px;
}

.side-widgets {
  margin-top: 15px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

/*SNS*/
.sns {
	margin: 20px 0;
	padding: 20px;
	text-align: center;
	border: solid 2px #999999;
	border-radius: 5px;
	background: #EEEEEE;
}
.sns p {
	margin:0 0 8px -10px;
	font-size: 0.7rem;
}
.sns ul {
	display: flex;
	justify-content:center;
	width: 90%;
	gap:30px;
}
.sns img {
	width: 60px;
	height: auto;
}

/*市民公開講座*/
.btn-side0 {
  display: block;
  background: #483d8b;
  color: #fff;
  padding: 8px 12px;
  margin-bottom: 6px;
  font-size: 0.85rem;
  border-radius: 4px;
  text-align: center;
}
/*講演集PDF*/
.btn-side1 {
  display: block;
  background: #FF3333;
  color: #fff;
  padding: 8px 12px;
  margin-bottom: 6px;
  font-size: 0.85rem;
  border-radius: 4px;
  text-align: center;
}
.txt-side1 {
	font-size: 0.7rem;
	line-height: 1.2;
}

.btn-side {
  display: block;
  background: #1d7393;
  color: #fff;
  padding: 8px 12px;
  margin-bottom: 6px;
  font-size: 0.85rem;
  border-radius: 4px;
  text-align: center;
}

.office-info {
  background: #ffffff;
  padding: 12px;
  border-radius: 4px;
  font-size: 0.78rem;
  line-height: 1.4;
}

.office-info h3 {
  font-size: 0.85rem;
  color: #0b5f63;
  border-bottom: 1px solid #0b5f63;
  padding-bottom: 4px;
  margin-bottom: 6px;
}

.office-info h3 span {
  font-size: 0.75rem;
  font-weight: normal;
}

.office-info .zip {
  color: #666;
  margin-bottom: 4px;
}

/* ==========================================================================
   4. Main Visual (image.jpg As Background)
   ========================================================================== */
.hero-visual {
  /* 最背面に image.jpg をカバー表示 */
  background: #0b5f63 url('../img/image.jpg') no-repeat center top / cover;
  padding: 20px;
  color: #fff;
  margin-bottom: 25px;
}
.hero-visual-temp {
  margin-bottom: 0;
}
.hero-header-title {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
}

.img-logo {
  height: 50px;
  width: auto;
}

.header-titles {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.img-title-en {
  height: 18px;
  width: auto;
  display: block;
}

.main-title img {
  max-width: 100%;
  height: auto;
}

.hero-theme-area {
  margin-bottom: 20px;
}

.img-theme-large {
  width: 90%;
  height: auto;
}

.hero-info-grid {
  width: 100%;
  margin-bottom: 20px;
}

.hero-details {
  width: 80%;
  display: flex;
  gap:20px;
}

.img-tokitokoro {
  width: 80%;
  height: auto;
  margin-bottom: 5px;
}

.img-date {
  width: 40%;
  height: auto;
  margin-top: 40px;
}

/* 演題・参加登録の日付案内ボックス */
.schedule-notice-box {
  width: 100%;
  background: rgba(255, 255, 255, 0.95);
  border: 2px solid #ffaa00;
  border-radius: 6px;
  padding: 10px 15px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.schedule-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.88rem;
}

.schedule-label {
  background: #006633;
  color: #fff;
  font-weight: bold;
  font-size: 0.78rem;
  padding: 2px 8px;
  border-radius: 3px;
  white-space: nowrap;
  width: 100px;
  text-align: center;
}

.schedule-date {
  color: #006633;
  font-weight: bold;
  font-size: 1rem;
}

/* ==========================================================================
   5. Main Content - News & Banner Area (Background White / No Borders)
   ========================================================================== */
.news-section {
  background: #ffffff;
  padding: 0;
  margin-bottom: 25px;
  border-radius: 4px;
  overflow: hidden;
}

.temp-section {
  background: #ffffff;
  padding: 0;
  margin-top: -24px;
  margin-bottom: 25px;
  overflow: hidden;
}

.section-title {
  background: #ff8000;
  color: #fff;
  padding: 8px 15px;
  font-size: 1.05rem;
  font-weight: bold;
  display: flex;
}

.section-title span {
  font-size: 1.15rem;
  margin-right: 8px;
}

.news-scroll-box {
  max-height: 300px;
  overflow-y: auto;
  padding: 15px;
}

.news-list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px 15px;
  font-size: 0.88rem;
}

.news-list dt {
  color: #ff6b6b;
  font-weight: bold;
  white-space: nowrap;
}

.news-list dd {
  border-bottom: 1px dashed #eee;
  padding-bottom: 6px;
  margin-bottom: 6px;
}

.bnr-section {
  background: #ffffff;
  border-radius: 4px;
  overflow: hidden;
}

.bnr_ad2 {
  display: flex;
  flex-wrap: wrap;
  padding: 15px;
  gap: 10px;
}

.bnr_ad2 img {
  width: 180px;
  height: auto;
}

/* ==========================================================================
   6. Footer & Mobile
   ========================================================================== */
.site-footer {
  text-align: center;
  padding: 20px;
  color: #fff;
  font-size: 0.8rem;
  background: #08494c;
}

.site-footer a {
  color: #ffffff;
}

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

@media (max-width: 850px) {
  body {
    background: #0b5f63;
  }

  .container {
    flex-direction: column;
    padding: 10px;
  }

  .sidebar {
    display: none;
  }

  .hero-header-title {
    flex-direction: column;
    align-items: flex-start;
  }

  .schedule-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }

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

  .drawer-checkbox {
    display: none;
  }

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

  .bottom-bar-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    height: 100%;
    cursor: pointer;
    font-size: 0.75rem;
  }

  .drawer-content {
    position: fixed;
    bottom: 60px;
    left: 10px;
    width: 280px;
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    background: #ffffff;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s ease;
  }

  .mobile-nav a {
    display: block;
    padding: 10px;
    color: #003333;
    font-weight: bold;
    border-bottom: 1px solid #eee;
  }

  .drawer-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 998;
    opacity: 0;
    visibility: hidden;
  }

  .drawer-checkbox:checked ~ .drawer-content,
  .drawer-checkbox:checked ~ .drawer-overlay {
    opacity: 1;
    visibility: visible;
  }
}


/* 準備中 */
.const {
	margin:50px 0 50px 50px;
	font-size:200%;
	color:#999;
	line-height:240%;
}
.const span {
	margin-left:40px;
	font-size:200%;
}

/*
==========================================================================
   7. これまでの踏襲とページ毎の指定
========================================================================== 
*/

/* ■■■■■■■■■ 文字色・背景 ■■■■■■■■■ */
.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: 20px 0 0 2em;
	width:92%;
}
#aisatsu h3 {
	margin:20px 0;
	font-size:120%;
	font-weight:bold;
}
#aisatsu .kaicho {
	margin: 0 10px 50px;
	display: flex;
	justify-content:flex-end;
}
#aisatsu .kaicho img {
	width: 150px;
	height: auto;
}
#aisatsu .kaicho > div {
	position:relative;
	top: 150px;
	right: 10px;
	text-align: right;
}
#aisatsu .bun {
	margin: 0 0 50px;
	font-size:105%;
	line-height:180%;
}
#aisatsu .bun p {
	margin: 1em 0;
	text-indent: 1em;
}

/* ■■■■■■■■■ 開催概要 ■■■■■■■■■ */
#gaiyo {
	margin:0 0 0 2em;
	width:92%;
}
#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 .lflt {
	display: flex;
	justify-content:space-around;
}
#gaiyo .lflt img {
	width: 200px;
	height: auto;
	border: solid 1px #999999;
}
#gaiyo .lflt a:hover {
	opacity: 0.7;
}
#gaiyo dl {
	margin: 30px 0 0;
}
#gaiyo dt {
	padding:5px 0;
	width:100px;
	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 9em;
	padding:3px 0 0 ;
}

/* ■■■■■■■■■ アクセス ■■■■■■■■■ */
#access {
	margin: 20px 0 0 2em;
	width:92%;
}
#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%;
}
.btn_web_kouen {
	display: block;
	padding: 5px 20px;
	width: 300px;
	max-width: 100%;
	border: solid 1px #999999;
	border-radius: 7px;
	background: #99CCFF;
	text-align: center;
}
.btn_web_kouen:hover {
	opacity: 0.7;
}

/* ■■■■■■■■■ 協賛申込 ■■■■■■■■■ */
#spnsr {
	margin: 20px 0 0 2em;
	width:92%;
}
#spnsr h3 {
	margin:30px 0 15px;
	padding:0 0 3px;
	border-bottom:dotted 1px #666;
	font-size:110%;
	font-weight:bold;
	color:#333;
}
#spnsr h3 span {
	font-weight: normal;
	font-size: 85%;
	float: right;
}
#spnsr h4 {
	margin:30px 0 10px;
	font-size:110%;
	font-weight:bold;
}
#spnsr .btn_pdf a {
	display: block;
	margin: 20px 0px;
	padding: 10px;
	width: 70%;
	text-align: center;
	font-size: 130%;
	font-weight: bold;
	background: #CC0033;
	color: #FFFFFF;
	border: solid 1px #999999;
	border-radius: 7px;
}
#spnsr .btn_pdf:hover a {
	opacity: 0.5;
}
#spnsr .btn_form {
	display: flex;
	flex-wrap: wrap;
	gap:20px;
}
#spnsr .btn_form a {
	display: block;
	padding: 10px;
	width: 70%;
	font-size: 130%;
	font-weight: bold;
	text-align: center;
	border: solid 1px #333333;
	background: #0066CC;
	color: #FFFFFF;
}
#spnsr .btn_form a:hover {
	opacity: 0.7;
}
#spnsr .owari {
	pointer-events: none;
	opacity: 0.5;
}
#spnsr dl dt {
	float: left;
}
#spnsr dl dd {
	margin: 0 0 10px 14em;
}
#spnsr .ssl_badge {
	float: right;
}
#spnsr .ssl_badge img {
	width: 150px;
	height: auto;
}

/* ■■■■■■■■■ 汎用・その他 ■■■■■■■■■ */
#etc {
	margin:20px 0 0 2em;
	width:92%;
}
#etc .box {
	padding: 20px;
	border: solid 1px #666666;
	border-radius: 10px;
}
#etc h3 {
	margin:30px 0 15px;
	padding:0 0 3px;
	border-bottom:dotted 1px #666666;
	font-size:110%;
	font-weight:bold;
	color:#333333;
}
#etc h4 {
	margin:20px 0 5px;
	font-size:110%;
	font-weight:bold;
}
#etc h5 {
	margin:20px 0 5px;
	font-size:105%;
	font-weight:bold;
}
#etc .kikan {
	margin: 0 0 10px;
	font-size: 140%;
	font-weight: bold;
	color: #333333;
}
#etc .kikan span {
	font-size: 140%;
}
.img_annai4 img {
	width: 100%;
	height: auto;
}
.nifuda a {
	display: block;
	margin: 20px 0 0;
	padding: 10px;
	width: 200px;
	border: solid 1px #333333;
	border-radius: 5px;
	text-align: center;
	font-weight: bold;
}

/* ==========================================================================
   8. 下層コンテンツ用 スマホ・レスポンシブ共通追加（追加CSS）
   ========================================================================== */
@media (max-width: 850px) {
  /* メインコンテンツパディングの最適化 */
  .temp-section {
    padding: 0 10px 20px 10px;
    margin-top: 0;
  }

  /* 下層領域全般の外枠マージン・幅のリセット */
  #aisatsu, #gaiyo, #access, #spnsr, #etc {
    margin: 15px 0 0 0 !important;
    width: 100% !important;
  }

  /* 会長挨拶（#aisatsu）のレスポンシブ化 */
  #aisatsu .kaicho {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  #aisatsu .kaicho img {
    width: 160px;
    margin-bottom: 15px;
  }
  #aisatsu .kaicho > div {
    position: static !important;
    top: auto !important;
    left: auto !important;
  }
  #aisatsu .bun {
    margin-bottom: 30px;
  }

  /* 開催概要（#gaiyo）dl表記の縦並び化 */
  #gaiyo dl {
    margin-top: 15px;
  }
  #gaiyo dt {
    float: none !important;
    width: 100% !important;
    margin-bottom: 5px;
  }
  #gaiyo dd {
    margin: 0 0 20px 0 !important;
    padding: 0 5px;
  }

  /* 会場アクセス（#access）マップの100%レスポンシブ化 */
  #access iframe {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
  }

  /* 協賛・各種ボタン幅のスマホ最適化 */
  #spnsr .btn_pdf a,
  #spnsr .btn_form a {
    width: 100% !important;
  }
  #spnsr dl dd {
    margin-left: 0 !important;
  }

  /* 準備中テキストのスマホ表示調整 */
  .const {
    margin: 30px 0 !important;
    font-size: 140% !important;
    line-height: 180% !important;
    text-align: center;
  }
  .const span {
    margin-left: 0 !important;
    display: block;
  }
}