@charset "UTF-8";

*, *::before, *::after {
  box-sizing: border-box;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, main, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  background: transparent;
  border: 0;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline;
}

main, article, aside, details, figcaption, figure, img, video, footer, header, hgroup, menu, nav, section {
  display: block;
}

ul, ol, li {
  list-style: none;
}

a {
  color: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
}

video, img {
  height: auto;
  max-width: 100%;
}

body {
  background: #fff;
  color: #000;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 17px;
  line-height: 1.7;
}

:root {
  --main-color: #02094c;
  --sub-color: #9e005d;
  --text-large: 17.7px;
}

.article {
  overflow: hidden;
}

.section__main-visual {
  align-items: center;
  background: url(main.png) no-repeat top center / cover;
  display: flex;
  height: 250px;
  justify-content: center;
}

.section__header {
  margin-bottom: 35px;
}

.section__container {
  margin: 0 auto clamp(42.5px, calc(15vw + 12.5px), 85px);
  width: min(700px, 94%);
}

.section__container.section__container--mb20 {
  margin-bottom: 20px;
}

.section__container.section__container--mw800 {
  width: min(800px, 94%);
}

.section__container .text:last-child {
  margin-bottom: 0;
}
.title-container {
  background-color: var(--main-color);
  margin: -60px auto 20px;
  padding: 15px clamp(20px, calc(5vw), 35px) 20px;
  width: min(800px, 94%);
}

.lecture {
  align-items: center;
  display: flex;
  line-height: 1.5;
  margin-bottom: 20px;
}

.lecture span:first-child {
  background-color: var(--sub-color);
  color: #fff;
  padding: 5px 12px;
}

.lecture span:last-child {
  background-color: #fff;
  font-weight: bold;
  padding: 5px 10px;
}

h1 span {
  color: #fff;
  display: block;
  font-size: clamp(24px, calc(2vw + 17.6px), 28px);
}

h2 {
  font-size: 21px;
  text-align: center;
}

h2 span {
  display: block;
}

.text {
  margin-bottom: 25px;
}

.text.text--lead {
  color: var(--main-color);
  font-size: var(--text-large);
  font-weight: bold;
  margin-bottom: clamp(42.5px, calc(15vw + 12.5px), 85px);
}

.photo figure {
  max-width: 100%;
  width: 300px;
}

.photo-left {
  float: left;
  margin: 0 0 25px 0;
}

.photo-left figure img {
  margin-left: -50px;
}

.photo-right {
  float: right;
  margin: 0 -50px 25px 40px;
}

.photo__caption {
  font-size: 14px;
  margin-top: 14px;
}

.illust__caption {
  color: var(--main-color);
  font-size: clamp(16px, calc(2vw + 9.6px), 20px);
  font-weight: bold;
  text-align: center;
}

.contact {
  background-color: var(--main-color);
  padding: 50px clamp(20px, calc(30vw - 76px), 117px);
}

.contact a {
  align-items: center;
  background-color: var(--sub-color);
  display: flex;
  font-weight: bold;
  justify-content: space-between;
  line-height: 1.2;
  transition: opacity .5s;
}

.contact a:hover {
  opacity: .8;
}

.contact a p:first-child {
  align-items: center;
  color: #fff;
  display: flex;
  font-size: 21px;
  justify-content: center;
  padding: 0 28px;
}

.contact a p:last-child {
  align-items: center;
  background-color: #fff;
  display: flex;
  flex-basis: 67%;
  flex-direction: column;
  justify-content: center;
  padding: 14px 25px;
}

.contact a p span {
  display: block;
}

.contact a p span:first-child {
  font-size: clamp(16px, calc(3vw + 6.4px), 25px);
}

.contact a p span:last-child {
  color: var(--main-color);
  text-decoration: underline;
}

@media screen and (max-width: 880px) {
  .contact a {
    flex-direction: column;
  }

  .contact a p:first-child {
    padding: 14px 20px;
  }

  .contact a p:last-child {
    padding: 14px 20px;
    width: 100%;
  }
}

@media screen and (max-width: 550px) {
  .photo-left, .photo-right {
    float: none;
    margin: 0 auto 35px auto;
    max-width: 300px;
    width: 100%;
  }

  .photo-left figure img {
    margin-left: 0;
  }
}

@media screen and (max-width: 430px) {
  .lecture {
    flex-direction: column;
  }

  .lecture span:last-child, .lecture span:first-child {
    text-align: center;
    width: 100%;
  }
}