* {
  font-family: "fot-tsukuardgothic-std", sans-serif;
  font-weight: 700;
  font-style: normal;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  line-height: 1;
  text-align: justify;
  color: #4d4d4d;
  list-style-type: none;
  text-decoration: none; }

body {
  position: relative; }

#topBtn {
  display: none;
  position: fixed;
  bottom: 50px;
  right: 50px;
  width: 45px;
  text-align: center;
  cursor: pointer;
  font-size: 12px;
  font-weight: bold;
  z-index: 2000;
  transition: position 0.3s ease; }
  #topBtn img {
    width: 45px;
    height: 45px;
    display: block;
    z-index: 2000; }
  #topBtn > div {
    color: #2e88c4;
    text-align: center;
    margin-top: 5px; }

.spLogo {
  display: none; }

header {
  position: relative;
  height: 150px; }
  header #headerLogo img {
    width: 81px;
    height: auto;
    position: absolute;
    top: 50px;
    left: 100px; }
  header #headerLogo .name {
    position: absolute;
    left: 190px;
    top: 60px; }
    header #headerLogo .name .sub {
      font-size: 22px;
      color: #2e88c4;
      margin-bottom: 10px; }
    header #headerLogo .name .main {
      font-size: 26px;
      color: #2e88c4; }
  header .navi {
    position: absolute;
    right: 100px;
    top: 80px; }
    header .navi ul {
      display: flex;
      justify-content: space-between;
      width: 600px; }
      header .navi ul li a {
        font-size: 20px;
        transition: 0.3s all;
        display: block;
        text-decoration: none;
        position: relative; }
      header .navi ul li a::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: -12px;
        width: 0;
        height: 5px;
        background-color: #ffd765;
        transition: all 0.3s ease-out;
        transform: translateX(-50%); }
      header .navi ul li a:hover::after {
        width: 100%; }
  header #contact {
    position: absolute;
    top: 0;
    right: 100px;
    width: 180px;
    height: 45px;
    background-color: #2e88c4;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    transition: all 0.3s;
    display: block; }
    header #contact:hover {
      opacity: 0.8; }
    header #contact img {
      width: 24px;
      position: absolute;
      top: 10px;
      left: 24px; }
    header #contact p {
      color: white;
      font-size: 17px;
      text-align: center;
      padding-left: 20px;
      display: block;
      position: absolute;
      top: 10px;
      right: 23px; }

#hero {
  height: 700px;
  background: #D4D4D4;
  width: calc(100% - 100px);
  top: 30px;
  left: 100px;
  position: relative;
  border-top-left-radius: 100px;
  background-image: url("img/hero.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center; }
  #hero > div {
    width: auto;
    height: auto;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 20px;
    padding: 20px 30px;
    position: absolute;
    left: 30px;
    bottom: 30px; }
    #hero > div p {
      line-height: 2;
      font-size: 22px;
      color: #2e88c4;
      text-decoration: underline dotted #2e88c4;
      text-underline-offset: 7px; }

#news {
  padding: 150px 0 120px 0; }
  #news h1 {
    color: #2e88c4;
    font-size: 35px;
    text-align: center;
    margin-bottom: 50px; }
  #news ul {
    width: 1000px;
    margin: 0 auto; }
    #news ul li:last-of-type a {
      border-bottom: dotted 3px #2e88c4; }
    #news ul li a {
      padding: 20px 0;
      border-top: dotted 3px #2e88c4;
      display: block;
      position: relative; }
      #news ul li a .date {
        font-size: 20px;
        display: inline-block;
        vertical-align: top;
        margin-right: 40px; }
      #news ul li a .title {
        font-size: 20px;
        display: inline-block;
        vertical-align: top; }
      #news ul li a img {
        position: absolute;
        right: 25px;
        top: 19px;
        width: 20px; }

#section01 {
  background-color: #f2f3f0;
  padding: 70px 0; }
  #section01 .intro {
    display: flex;
    justify-content: space-between;
    width: 1000px;
    margin: 0 auto; }
    #section01 .intro .image img {
      width: 500px;
      height: 360px;
      background: #E8E8E8;
      margin-top: -120px;
      border-radius: 30px; }
    #section01 .intro .text {
      width: 450px; }
      #section01 .intro .text h1 {
        font-size: 35px;
        color: #2e88c4;
        margin-bottom: 20px; }
      #section01 .intro .text p {
        font-size: 26px;
        text-decoration: underline;
        text-decoration-color: yellow;
        text-decoration-tickness: 3px;
        line-height: 2; }
  #section01 .detail {
    position: relative;
    width: 1000px;
    padding: 50px;
    margin: 70px auto 0 auto;
    border-radius: 20px;
    background-color: white; }
    #section01 .detail h3 {
      background: #2e88c4;
      font-size: 26px;
      color: white;
      padding: 10px 0;
      border-radius: 30px;
      width: 420px;
      text-align: center;
      position: absolute;
      top: -25px;
      left: 0; }
    #section01 .detail ul li {
      width: 100%;
      color: #755c41;
      font-size: 23px;
      padding: 20px 0 20px 40px;
      border-bottom: solid 2px #c8c9ca;
      position: relative; }
      #section01 .detail ul li img {
        position: absolute;
        width: 28px;
        top: 15px;
        left: 0; }

#section02 {
  background-color: #f2f3f0;
  padding: 70px; }
  #section02 > div {
    position: relative;
    width: 1000px;
    margin: 0 auto;
    border-top: solid 2px #2e88c4; }
    #section02 > div h1 {
      color: #2e88c4;
      font-size: 30px;
      text-align: center;
      padding: 20px;
      background-color: #f2f3f0;
      display: table;
      margin: -38px auto 30px auto; }
    #section02 > div .map {
      width: 1000px;
      display: block;
      margin: 0 auto 50px auto;
      border-radius: 30px; }
      #section02 > div .map iframe {
        width: 100%;
        border-radius: 30px; }
    #section02 > div dl {
      display: table;
      margin: 0 auto; }
      #section02 > div dl dt {
        color: #2e88c4;
        font-size: 29px;
        text-align: center;
        margin-bottom: 30px;
        line-height: 1.5; }
      #section02 > div dl dd {
        font-size: 20px;
        text-align: center;
        line-height: 2; }
    #section02 > div a {
      padding: 15px;
      width: 800px;
      text-align: center;
      display: block;
      margin: 30px auto 0 auto;
      background-color: #2e88c4;
      border-radius: 30px;
      color: white;
      position: relative;
      transition: 0.3s all;
      top: 0; }
      #section02 > div a:hover {
        top: -10px;
        position: relative; }
      #section02 > div a img {
        position: absolute;
        right: 20px;
        top: 10px;
        width: 27px; }

#section03 {
  display: flex;
  margin: 0 auto;
  justify-content: space-between;
  width: 1000px;
  padding: 100px 0; }
  #section03 > div:first-of-type {
    width: 500px; }
    #section03 > div:first-of-type h1 {
      font-size: 35px;
      color: #2e88c4;
      margin-bottom: 50px; }
    #section03 > div:first-of-type dl dt {
      font-size: 26px;
      padding-bottom: 10px;
      border-bottom: dotted 3px #4d4d4d; }
    #section03 > div:first-of-type dl dd {
      margin-top: 10px;
      line-height: 1.8;
      font-size: 20px; }
  #section03 > div:nth-of-type(2) {
    width: 450px; }
    #section03 > div:nth-of-type(2) img {
      width: 100%;
      height: 320px;
      border-radius: 30px; }

#section04 .word {
  width: 500px;
  display: block;
  margin: 0 auto 50px auto; }
#section04 ul {
  width: 1000px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 0 auto;
  padding-bottom: 100px; }
  #section04 ul li {
    width: 315px;
    border-radius: 20px;
    border: 10px solid #2e88c4;
    padding: 20px;
    margin-bottom: 25px; }
    #section04 ul li img {
      width: 100%;
      height: 180px;
      display: block;
      margin: 0 auto 20px auto;
      border-radius: 15px; }
    #section04 ul li dl dt {
      font-size: 28px;
      line-height: 1.2;
      color: #2e88c4;
      text-align: center;
      margin-bottom: 10px; }
    #section04 ul li dl dd {
      font-size: 18px;
      line-height: 1.5;
      text-align: justify; }
  #section04 ul li:last-of-type {
    border: none; }

footer {
  padding: 70px 0 20px 0;
  background-color: #2e88c4; }
  footer > div {
    width: 1000px;
    margin: 0 auto;
    position: relative; }
    footer > div .footerLogo {
      margin-right: 30px;
      display: inline-block;
      vertical-align: top; }
      footer > div .footerLogo img {
        width: 146px;
        height: auto; }
    footer > div .text {
      display: inline-block;
      vertical-align: top; }
      footer > div .text h1 {
        font-size: 28px;
        color: white;
        margin-bottom: 20px; }
        footer > div .text h1 span {
          color: white;
          font-size: 19px;
          line-height: 1.8; }
      footer > div .text table {
        border-collapse: separate;
        border-spacing: 0px 10px; }
        footer > div .text table tr td {
          font-size: 20px;
          color: white;
          vertical-align: top;
          line-height: 1.5; }
          footer > div .text table tr td a {
            color: white; }
    footer > div .privacyPolicy {
      color: white;
      font-size: 16px;
      position: absolute;
      right: 0;
      bottom: 0;
      padding-bottom: 7px;
      border-bottom: solid thin white; }
  footer p {
    margin-top: 50px;
    color: white;
    font-size: 13px;
    text-align: center; }

@media (max-width: 600px) {
  .spLogo {
    display: table;
    margin: 0 auto 50px auto;
    padding-top: 100px; }
    .spLogo img {
      width: 150px;
      display: block;
      margin: 0 auto 20px auto; }
    .spLogo .sub {
      font-size: 18px;
      text-align: center;
      margin-bottom: 10px;
      color: #2e88c4; }
    .spLogo .main {
      font-size: 25px;
      text-align: center;
      color: #2e88c4; }

  #topBtn {
    display: none;
    position: fixed;
    right: 20px;
    width: 45px;
    text-align: center;
    cursor: pointer;
    font-size: 12px;
    font-weight: bold;
    z-index: 2000;
    transition: position 0.3s ease; }
    #topBtn img {
      width: 45px;
      height: 45px;
      display: block;
      z-index: 2000; }
    #topBtn > div {
      color: #2e88c4;
      text-align: center; }

  header {
    display: none; }

  #hero {
    top: auto;
    left: auto;
    width: 100%;
    height: 350px;
    background-image: url("img/hero.jpg");
    border-radius: 0;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    border-top-left-radius: 100px; }
    #hero > div {
      width: auto;
      height: auto;
      background: rgba(255, 255, 255, 0.8);
      border-radius: 20px;
      padding: 10px 20px;
      position: absolute;
      right: 15px;
      bottom: -20px;
      border: solid thin #2e88c4; }
      #hero > div p {
        line-height: 2;
        font-size: 18px;
        color: #2e88c4;
        text-decoration: underline dotted #2e88c4;
        text-underline-offset: 7px; }

  #news {
    padding: 100px 0 120px 0; }
    #news h1 {
      font-size: 30px;
      margin-bottom: 30px; }
    #news ul {
      width: 90%; }
      #news ul li:last-of-type a {
        border-bottom: dotted 3px #2e88c4; }
      #news ul li a {
        padding: 20px 0;
        border-top: dotted 3px #2e88c4;
        display: block;
        position: relative; }
        #news ul li a .date {
          font-size: 20px;
          display: block;
          margin-right: auto;
          margin-bottom: 10px; }
        #news ul li a .title {
          font-size: 20px;
          display: inline-block;
          vertical-align: top;
          line-height: 1.2; }
        #news ul li a img {
          position: absolute;
          right: 0;
          top: 18px; }

  #section01 {
    padding: 70px 0; }
    #section01 .intro {
      display: block;
      width: 85%; }
      #section01 .intro .image {
        margin-bottom: 20px; }
        #section01 .intro .image img {
          width: 100%;
          height: auto;
          background: #E8E8E8;
          margin-top: 0px;
          border-radius: 30px; }
      #section01 .intro .text {
        width: 100%; }
        #section01 .intro .text h1 {
          font-size: 30px;
          margin-bottom: 10px; }
        #section01 .intro .text p {
          font-size: 18px;
          text-decoration: underline;
          text-decoration-color: yellow;
          text-decoration-tickness: 3px;
          line-height: 2;
          text-align: left;
          width: 100%;
          display: block; }
    #section01 .detail {
      position: relative;
      width: 90%;
      padding: 20px;
      margin: 30px auto 0 auto;
      border-radius: 20px;
      background-color: white; }
      #section01 .detail h3 {
        background: #2e88c4;
        font-size: 20px;
        color: white;
        padding: 10px 0;
        border-radius: 30px;
        width: 100%;
        text-align: center;
        position: relative;
        top: auto;
        left: auto;
        margin: 0 auto; }
      #section01 .detail ul {
        width: 80%;
        margin: 0 auto; }
        #section01 .detail ul li {
          font-size: 18px;
          padding: 20px 0;
          border-bottom: solid 2px #c8c9ca;
          margin: 0 auto;
          line-height: 1.5;
          position: relative; }
          #section01 .detail ul li img {
            position: absolute;
            width: 20px;
            top: 22px;
            left: -25px; }

  #section02 {
    padding: 30px 0; }
    #section02 > div {
      position: relative;
      width: 90%;
      margin: 0 auto;
      border-top: solid 2px #2e88c4; }
      #section02 > div h1 {
        color: #2e88c4;
        font-size: 30px;
        text-align: center;
        padding: 20px;
        background-color: #f2f3f0;
        display: table;
        margin: -38px auto 30px auto; }
      #section02 > div .map {
        width: 90%;
        display: block;
        margin: 0 auto 50px auto;
        border-radius: 30px; }
        #section02 > div .map iframe {
          width: 100%;
          height: 300px;
          border-radius: 30px; }
      #section02 > div dl {
        display: table;
        margin: 0 auto; }
        #section02 > div dl dt {
          color: #2e88c4;
          font-size: 25px;
          text-align: center;
          margin-bottom: 30px;
          line-height: 1.5; }
        #section02 > div dl dd {
          font-size: 18px;
          text-align: center;
          line-height: 2; }
      #section02 > div a {
        padding: 15px;
        width: 100%;
        display: block;
        margin: 30px auto 0 auto;
        background-color: #2e88c4;
        border-radius: 30px;
        color: white;
        font-size: 15px; }
        #section02 > div a img {
          display: none; }

  #section03 {
    display: block;
    margin: 0 auto;
    width: 85%;
    padding: 70px 0; }
    #section03 > div:first-of-type {
      width: 100%; }
      #section03 > div:first-of-type h1 {
        font-size: 30px;
        color: #2e88c4;
        margin-bottom: 30px; }
      #section03 > div:first-of-type dl dt {
        font-size: 20px;
        padding-bottom: 10px;
        border-bottom: dotted 3px #4d4d4d; }
      #section03 > div:first-of-type dl dd {
        margin-top: 10px;
        line-height: 1.8;
        font-size: 18px; }
    #section03 > div:nth-of-type(2) {
      width: 100%; }
      #section03 > div:nth-of-type(2) img {
        width: 100%;
        height: auto;
        border-radius: 30px;
        margin-top: 30px; }

  #section04 .word {
    width: 95%;
    display: block;
    margin: 0 auto 20px auto; }
  #section04 ul {
    width: 90%;
    display: block;
    margin: 0 auto; }
    #section04 ul li {
      width: 100%; }
      #section04 ul li img {
        width: 100%;
        height: 180px;
        display: block;
        margin: 0 auto 20px auto;
        border-radius: 15px; }
      #section04 ul li dl dt {
        font-size: 25px;
        line-height: 1.2;
        color: #2e88c4;
        text-align: center;
        margin-bottom: 10px; }
      #section04 ul li dl dd {
        font-size: 18px;
        line-height: 1.5;
        text-align: justify; }
    #section04 ul li:last-of-type {
      border: none; }

  footer {
    padding: 70px 0 20px 0; }
    footer > div {
      width: 90%;
      margin: 0 auto;
      position: relative; }
      footer > div .footerLogo {
        margin: 0 auto 20px auto;
        display: table; }
        footer > div .footerLogo img {
          width: 146px;
          height: auto; }
      footer > div .text {
        display: table;
        width: 95%;
        margin: 0 auto; }
        footer > div .text h1 {
          text-align: center;
          font-size: 25px;
          color: white;
          margin-bottom: 20px; }
          footer > div .text h1 span {
            color: white;
            font-size: 19px;
            line-height: 1.8; }
        footer > div .text table {
          border-collapse: separate;
          border-spacing: 0px 10px;
          margin: 0 auto; }
          footer > div .text table tr td {
            font-size: 18px;
            color: white;
            vertical-align: top;
            line-height: 1.5; }
            footer > div .text table tr td a {
              color: white;
              text-decoration: none; }
      footer > div .privacyPolicy {
        color: white;
        font-size: 16px;
        position: absolute;
        right: 0;
        bottom: 0;
        padding-bottom: 7px;
        border-bottom: solid thin white;
        display: none; }
    footer p {
      margin-top: 50px;
      color: white;
      font-size: 13px;
      text-align: center; } }
