@charset "UTF-8";

/* 参考LPに合わせて1200px / 768pxで切り替え。viewportはwidth=640のまま。 */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  background: #fff;
  color: #333;
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", YuGothic, "メイリオ", Meiryo, Verdana, sans-serif;
  font-size: 2em;
  line-height: 2;
  text-align: left;
  -webkit-text-size-adjust: 100%;
}
img { max-width: 100%; height: auto; }
picture { display: block; }
strong { font-weight: bold; }
header {
  width: 100%;
  height: 145px;
  margin: 0 auto 27px;
  border-bottom: 1px solid #8ba1ef;
}
#iframe_wrap { width: 640px; max-width: 100%; margin: auto; }
#head_iframe { display: block; width: 100%; height: 145px; }
#container, .contents { width: 100%; max-width: 1200px; margin: 0 auto; background: #fff; }
.image_block { line-height: 0; text-align: center; }
.image_block img { display: block; width: 100%; }
.text_area { padding: 0 20px; overflow-wrap: break-word; }
.text_area p { margin-bottom: 40px; }
.text_area p:last-child { margin-bottom: 0; }
.under { text-decoration: underline; text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
.speaker_heading { margin: 0 20px 40px; line-height: 1.7; }
.lecture h3, .web_viewing h3 { margin-bottom: 20px; font-weight: bold; }
.lecture li { position: relative; padding-left: 1em; margin-bottom: 12px; font-weight: bold; }
.lecture li::before { position: absolute; left: 0; content: "・"; }
.web_viewing p { margin-bottom: 12px; }
.cta_block { padding: 0 20px; text-align: center; }
.cta_block .form_btm { width: 640px; max-width: 100%; margin: 0 auto; }
.application-link { display: block; }
.application-link img { display: block; width: 100%; transition: opacity 0.2s; }
.application-link:hover img { opacity: 0.85; }
a:focus-visible { outline: 3px solid #b9842a; outline-offset: 4px; }
#footer { width: 100%; }
#footer iframe { display: block; width: 100%; }
#page-top { position: fixed; right: 20px; bottom: 20px; z-index: 101; font-size: 10px; }
#page-top a { display: block; width: 100px; padding: 25px 0; border-radius: 5px; background: #666; color: #fff; text-align: center; text-decoration: none; }
#page-top a:hover { background: #999; }
body.has-fixed-cta #page-top { bottom: calc((var(--fixed-cta-height, 136px) - 70px) / 2); }
[hidden] { display: none !important; }
.sp { display: none; }
@media only screen and (max-width: 768px) {
  .sp { display: block; }
  .pc { display: none !important; }
  body.has-fixed-cta #page-top { bottom: calc(var(--fixed-cta-height, 136px) + 6px); }
}
@media (prefers-reduced-motion: reduce) {
  .application-link img { transition: none; }
}
