@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500&display=swap');

:root {
  --con-width: 1000px;
  --mincho: "游明朝", Yu Mincho, YuMincho, "Hiragino Mincho ProN", serif;
  --border: #e0e0e0;
  --gray_back: #f1f1f1;
  --color_1: #0d52a0;
}

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, var, b, i, 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;
}

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

* {
  min-height: 0vw;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 1;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main {
  display: block;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 500;
}

ol, ul {
  list-style: none;
}

em {
  font-style: normal;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

input, select {
  vertical-align: middle;
}

img {
  display: block;
  border-style: none;
  font-size: 0;
  line-height: 0;
}

a {
  background: transparent;
  margin: 0;
  padding: 0;
  text-decoration: none;
  vertical-align: baseline;
}

@media screen and (max-width: 768px) {
  .sp_none {
    display: none;
  }
}
@media screen and (min-width: 769px) {
  .pc_none {
    display: none;
  }
}

.w100 {
  width: 100%;
}

.bold {
  font-weight: bold;
}

.fade {
  opacity: 0;
  transition: all 0.6s ease-out;
}

.fade_on {
  opacity: 1;
}

.movexl {
  opacity: 0;
  translate: -20px 0;
  transition: all 0.4s ease-out;
}

.movexr {
  opacity: 0;
  translate: 20px 0;
  transition: all 0.4s ease-out;
}

.movexl_on,
.movexr_on {
  opacity: 1;
  translate: 0 0;
}

.movey {
  opacity: 0;
  translate: 0 20px;
  transition: all 0.4s ease-out;
}

.movey_on {
  opacity: 1;
  translate: 0 0;
}

.small {
  scale: 1.5;
  opacity: 0;
  transition: all 0.4s ease-out 0.4s;
}

.small_on {
  scale: 1;
  opacity: 1;
}

.move {
  opacity: 0;
}

.move_on {
  opacity: 1;
}

@keyframes f_a {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.container {
  overflow: hidden;
}

/* ===================================
コンテンツ
------------------------------------*/
header {
  display: grid;
  height: 100svh;
  grid-template-rows: auto 1fr auto;
  animation: f_a 0.4s linear both;
  .logo_s {
    width: min(45%, 200px);
    align-self: start;
    animation: f_a 0.4s linear 0.4s both;
  }
  h1 {
    color: #fff;
    font-size: clamp(60px, 16vw, 70px);
    text-align: center;
    animation: f_a 0.4s linear 0.4s both;
    .jp {
      display: block;
      margin-top: 0.6em;
      font-size: clamp(19px, 5.06vw, 21px);
    }
  }
  .note {
    margin-top: 1em;
    padding: 1em;
    background: rgba(255,255,255,0.7);
    color: var(--color_1);
    text-align: center;
    line-height: 1.6;
    font-size: 95%;
  }
  .logo_e {
    width: min(21.666%, 110px);
    margin: 0 0 0 auto;
    padding: 18px 18px 5%;
    background: var(--color_1);
    align-self: end;
    animation: f_a 0.4s linear 0.4s both;
  }
  @media screen and (min-width:769px) {
    padding: 2% 5% 0;
    background: url(../img/fv-bg-pc.jpg) center center no-repeat;
    background-size: cover;
    text-align: right;
    .c_box {
      display: inline-block;
      margin: 0 7% 0 auto;
      align-self: center
    }
  }
  @media screen and (min-width:769px) and ( max-width:1300px) {
    h1 {
      margin: 0 0 0 auto;
    }
  }
  @media screen and (max-width:768px) {
    padding: 4% 6% 0;
    background: url(../img/fv-bg-sp.jpg) center center no-repeat;
    background-size: cover;
    h1 {
      margin-top: 13.6%;
    }
    .note {
      padding: 0.8em 0.5em;
      font-size: 86%;
    }
  }
}

.s1 {
  h2 {
    display: inline-block;
    text-align: center;
    color: #fff;
    font-size: clamp(68px, 18.133vw, 90px);
    span {
      display: block;
      margin-bottom: 0.4em;
      padding-bottom: 0.2em;
      border-bottom: 1px solid #fff;
      font-size: clamp(18px, 4.8vw, 24px);
    }
  }
  @media screen and (min-width:769px) {
    padding: 5% 5% 10%;
    background: url(../img/s1-bg-pc.jpg) center bottom no-repeat;
    background-size: cover;
    text-align: right;
    .fig {
      margin: 0 0 0 auto;
    }
  }
  @media screen and (max-width:768px) {
    padding: 17% 6% 72%;
    background: #81bcca url(../img/s1-bg-sp.jpg) center bottom no-repeat;
    background-size: 100% auto;
    text-align: center;
    .fig {
      max-width: 100%;
      margin-top: 10.6%;
    }
  }
}

.s2 {
  h2 {
    display: inline-block;
    text-align: center;
    font-size: clamp(68px, 18.133vw, 90px);
    span {
      display: block;
      margin-bottom: 0.4em;
      padding-bottom: 0.2em;
      border-bottom: 1px solid #000;
      font-size: clamp(18px, 4.8vw, 24px);
    }
  }
  p {
    line-height: 2;
    mark {
      color: var(--color_1);
    }
  }
  @media screen and (min-width:769px) {
    padding: min(10.9%, 153px) 5% min(15.7%, 210px);
    background: url(../img/s2-bg-pc.jpg) center center no-repeat;
    background-size: cover;
    .box {
      width: 40%;
      text-align: center;
    }
    p {
      margin-top: min(20%, 90px);
      text-align: left;
    }
  }
  @media screen and (max-width:768px) {
    text-align: center;
    padding: 21% 6% 120%;
    background: url(../img/s2-bg-sp.jpg) center bottom no-repeat;
    background-size: 100% auto;
    p {
      margin-top: 3em;
      text-align: left;
    }
  }
}

.s3 {
  text-align: center;
  h2 {
    display: inline-block;
    text-align: center;
    font-size: clamp(68px, 18.133vw, 90px);
    span {
      display: block;
      margin-bottom: 0.4em;
      padding-bottom: 0.2em;
      border-bottom: 1px solid #000;
      font-size: clamp(18px, 4.8vw, 24px);
    }
  }
  p {
    margin: 3em 0 2em;
    line-height: 2;
  }
  .btn {
    display: block;
    width: min(100%, 454px);
    margin: auto;
    padding: 1em;
    background: var(--color_1);
    filter: drop-shadow(0 6px 6px rgba(0,0,0,0.4));
    color: #fff;
    text-align: center;
    transition: all 0.3s linear;
    &:hover {
      background: #3a85da;
    }
  }
  @media screen and (min-width:769px) {
    padding: min(11%, 156px) 5% 0;
    .mail {
      display: inline-block;
      width: 32px;
      position: relative;
      vertical-align: top;
      top: -1px;
      margin-right: 9px;
    }
  }
  @media screen and (max-width:768px) {
    padding: 19% 6% 0;
    p {
      text-align: left;
    }
    .mail {
      display: inline-block;
      width: 13%;
      position: relative;
      vertical-align: top;
      top: 10px;
      margin-right: 10px;
    }
  }
}

.s4 {
  max-width: 800px;
  margin: 6em auto 0;
  padding: 4%;
  h2 {
    margin-bottom: 1em;
    color: var(--color_1);
    text-align: center;
    font-size: 24px;
    line-height: 1.4;
  }
  dt {
    margin: 1em 0 0.5em;
    span {
      display: inline-block;
      margin-left: 1em;
      padding: 0.1em 0.5em;
      background: #ff4c65;
      color: #fff;
      font-size: 80%;
    }
  }
  button, textarea, select, input {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    appearance: none;
  }
  input[type=radio],
  input[type=checkbox] {
    display: none;
  }
  select::-ms-expand {
    display: none;
  }
  button {
    box-shadow: none;
    outline: none;
  }
  ::placeholder {
    color: #999;
  }
  input.txt,
  textarea {
    width: 100%;
    padding: 1em;
    border: 1px solid #999;
    border-radius: 5px;
    font-size: 1.2em;
  }
  textarea {
    height: 16em;
    line-height: 1.8;
  }
  input.txt:focus,
  textarea:focus {
    outline: 2px solid #2c86d3;
  }
  .btn {
    display: block;
    width: min(100%, 454px);
    margin: 1em auto 0;
    padding: 1em;
    background: var(--color_1);
    filter: drop-shadow(0 6px 6px rgba(0,0,0,0.4));
    color: #fff;
    text-align: center;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 18px;
    transition: all 0.3s linear;
    &:hover {
      background: #3a85da;
    }
  }
}

footer {
  padding: min(53.3%, 257px) 6% 18px;
  text-align: center;
  .f_logo {
    width: min(51.5%, 220px);
    margin: 0 auto 20px;
  }
  small {
    font-size: 14px;
  }
}