@charset "Shift_JIS";

/* ===============================
   RESET
================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  overflow-y: scroll;
}

body {
  margin: 0;
  padding: 0;
  color: #333;
  background: #f5f7fa;
  font-family: "メイリオ", Meiryo, "MS PGothic", sans-serif;
  font-size: 14px;
  line-height: 1.8;
  text-align: center;
  word-break: break-word;
}

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

a {
  color: #005bac;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  max-width: 100%;
}

.clear {
  clear: both;
}

/* ===============================
   LAYOUT
================================ */
#page {
  width: 960px;
  margin: 0 auto;
  background: #fff;
  text-align: left;
}

#header {
  padding: 20px;
}

#content {
  padding: 20px;
}

#main {
  float: left;
  width: 620px;
}

#nav {
  float: right;
  width: 280px;
}

#footer {
  clear: both;
  padding: 20px;
  border-top: 1px solid #ccc;
  background: #f8fafc;
}

/* ===============================
   HEADER
================================ */
.siteTitle {
  font-size: 32px;
  color: #003b7a;
  margin-bottom: 6px;
}

.catch {
  font-size: 14px;
}

.opening img {
  width: 100%;
}

/* ===============================
   MENU
================================ */
.nl {
  margin-top: 10px;
}

.nl:after {
  content: "";
  display: block;
  clear: both;
}

.nl li {
  float: left;
  width: 25%;
}

.nl li a {
  display: block;
  padding: 12px;
  background: #005bac;
  color: #fff;
  text-align: center;
}

/* ===============================
   SECTION
================================ */
.section {
  margin-bottom: 20px;
  padding: 15px;
  border: 1px solid #ddd;
}

.section h2 {
  font-size: 20px;
  margin-bottom: 10px;
  border-bottom: 2px solid #eee;
}

#main img {
  width: 100%;
}

/* ===============================
   SIDEBAR
================================ */
#nav .section h2 {
  font-size: 18px;
}

/* ===============================
   FOOTER（修正済）
================================ */
#footer .nl {
  margin-bottom: 10px;
}

#footer .nl:after {
  content: "";
  display: block;
  clear: both;
}

#footer .nl li {
  float: left;
  margin-right: 10px;
}

#footer .nl li a {
  background: none;
  color: #005bac;
  padding: 0;
}

#footer address {
  display: block;
  margin-bottom: 8px;
  font-style: normal;
  font-size: 12px;
}

/* ===============================
   更新日（重要修正）
================================ */
.last-updated {
  clear: both;
  width: 960px;
  margin: 0 auto;
  padding: 0 20px 10px;
  text-align: right;
  font-size: 12px;
  color: #666;
  background: #fff;
}

/* ===============================
   TABLET
================================ */
@media screen and (max-width: 1024px) {

  #page {
    width: 100%;
  }

  #main,
  #nav {
    float: none;
    width: 100%;
  }
}

/* ===============================
   MOBILE
================================ */
@media screen and (max-width: 768px) {

  body {
    font-size: 14px;
  }

  #page {
    width: 100%;
  }

  #header,
  #content,
  #footer {
    padding: 10px;
  }

  #main,
  #nav {
    float: none !important;
    width: 100% !important;
  }

  /* ヘッダーtableを縦 */
  #header table,
  #header tr,
  #header td {
    display: block;
    width: 100%;
  }

  /* メニュー縦並び */
  .nl li {
    float: none;
    width: 100%;
    margin-bottom: 8px;
  }

  .nl li a {
    width: 100%;
  }

  /* フッター縦 */
  #footer .nl li {
    float: none;
    margin-bottom: 5px;
  }

  /* 更新日 */
  .last-updated {
    width: 100%;
    text-align: left;
    padding: 10px;
  }
}
/* ===== 色味を戻す調整 ===== */

/* メニュー */
.nl li a {
  background: #1d5fa7;
  color: #ffffff;
  border: 1px solid #174d87;
}

.nl li a:hover {
  background: #174d87;
  color: #ffffff;
}

/* 通常ボックス */
.section.normal {
  background: #ffffff;
  border: 1px solid #d9d9d9;
}

/* 強調ボックス */
.section.emphasis {
  background: #fff3cd;
  border: 1px solid #e0c36c;
}

/* 強い強調ボックス */
.section.strong {
  background: #eaf3ff;
  border: 1px solid #9bbce0;
}

/* 見出し */
.section h2 {
  color: #003b7a;
  border-bottom: 2px solid #d8e4f2;
}

/* フッター */
#footer {
  background: #f5f5f5;
  border-top: 1px solid #cccccc;
}

/* フッターリンクはボタン化しない */
#footer .nl li a {
  background: none;
  border: none;
  color: #005bac;
}
@media screen and (max-width: 768px) {
  #content {
    display: flex;
    flex-direction: column;
  }

  #nav {
    order: 1;
  }

  #main {
    order: 2;
  }
}
/* ===== スマホ文字サイズ改善 ===== */
@media screen and (max-width: 768px) {

  body {
    font-size: 16px;
    line-height: 1.8;
  }

  p {
    font-size: 16px;
  }

  li {
    font-size: 16px;
  }

  a {
    font-size: 16px;
  }

  h1 {
    font-size: 26px !important;
  }

  h2 {
    font-size: 22px !important;
  }

  h3 {
    font-size: 18px !important;
  }

  /* サイドバーも拡大 */
  #nav {
    font-size: 16px;
  }

  #nav p {
    font-size: 16px;
  }

  /* メニュー文字 */
  .nl li a {
    font-size: 16px;
  }

}
/* ===== 動画レスポンシブ対応 ===== */
iframe {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
}
/* ===== スマホ崩れ修正 ===== */

@media screen and (max-width: 768px) {

  body {
    font-size: 16px;
    line-height: 1.8;
  }

  #page {
    width: 100% !important;
  }

  #header,
  #content,
  #footer {
    padding-left: 10px;
    padding-right: 10px;
  }

  #main,
  #nav {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  #content {
    display: block !important;
  }

  #header table,
  #header tbody,
  #header tr,
  #header td {
    display: block;
    width: 100% !important;
  }

  #header td {
    text-align: left !important;
  }

  .siteTitle {
    font-size: 26px !important;
    line-height: 1.4;
  }

  .catch {
    font-size: 15px !important;
  }

  .opening img,
  #main img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .nl li {
    float: none !important;
    width: 100% !important;
    margin: 0 0 8px;
  }

  .nl li a {
    display: block;
    width: 100%;
    padding: 12px;
    font-size: 16px;
  }

  .movie-table {
    width: 100% !important;
    table-layout: fixed;
  }

  .movie-table td {
    display: block;
    width: 100% !important;
  }

  iframe {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    display: block;
  }

  h2 {
    font-size: 22px !important;
    line-height: 1.5;
  }

  p,
  td,
  li,
  a {
    font-size: 16px;
  }

  #nav {
    margin-top: 20px;
  }

  .last-updated {
    width: 100% !important;
    text-align: left !important;
    padding: 10px;
  }
}
/* ===== PCで表を広げる ===== */
.movie-table {
  width: 100%;
  max-width: 100%;
}

/* PCは横並びを維持 */
.movie-table td {
  display: table-cell;
  width: auto;
}

/* iframeも横いっぱい */
.movie-table iframe {
  width: 100%;
  height: 220px;
}