.contents {
  color: #343434; }

.blue {
  color: #40baff; }

@keyframes ft {
  0% {
    opacity: 0;
    transform: translateY(10px); }
  100% {
    opacity: 1;
    transform: translate(0); } }
@keyframes fb {
  0% {
    opacity: 0;
    transform: translateY(-8px); }
  100% {
    opacity: 1;
    transform: translate(0); } }
.main-title .txt-box .in {
  opacity: 0;
  animation: fb 1.5s 1.2s forwards; }

.main-title .txt-box::before {
  opacity: 0;
  animation: ft 1.5s 0.8s forwards; }

@media screen and (min-width: 769px), print {
  .main-title {
    width: 100%;
    height: 800px;
    background-image: url(../img/portrait/top_bg.jpg);
    background-size: cover;
    position: relative; }
    .main-title .txt-box {
      margin-top: 50px;
      position: absolute;
      left: 10%;
      top: 0;
      bottom: 0;
      margin: auto;
      width: 600px;
      height: 600px;
      color: white;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      z-index: 2; }
      .main-title .txt-box::before {
        content: "";
        width: 600px;
        height: 600px;
        position: absolute;
        z-index: 1;
        top: 0;
        left: 0;
        z-index: -1;
        display: block;
        background-image: url(../img/portrait/top_txt.png);
        background-size: contain; }
      .main-title .txt-box h2 {
        width: 100%;
        opacity: 0.6;
        padding-top: 5px;
        padding-bottom: 0;
        letter-spacing: 0.3em; }
      .main-title .txt-box .message {
        font-size: 40px;
        font-weight: 400;
        padding-top: 40px;
        letter-spacing: 0.1em; }
      .main-title .txt-box .name {
        padding-top: 40px;
        font-size: 24px;
        letter-spacing: 0.1em; }
        .main-title .txt-box .name span {
          display: block;
          font-size: 14px; }

  .content-area {
    margin-top: 100px; }

  .sec {
    position: relative; }
    .sec + .sec {
      margin-top: 70px; }
    .sec p {
      line-height: 2.1; }

  .person {
    width: 1040px;
    margin: auto;
    margin-top: 80px;
    display: flex;
    justify-content: space-between; }
    .person .circle {
      position: relative;
      width: 340px;
      height: 340px;
      display: flex;
      justify-content: center;
      align-items: center; }
      .person .circle p {
        text-align: center;
        width: 320px;
        margin: auto;
        color: white;
        font-size: 22px;
        letter-spacing: 0.15em;
        font-weight: 500; }
      .person .circle .img-box {
        position: absolute;
        z-index: -1;
        top: 0;
        left: 0; }

  .sec01 {
    display: flex;
    justify-content: space-between; }
    .sec01 .pht-wrap {
      width: 100%;
      height: 430px;
      background-image: url(../img/portrait/pht01.jpg);
      background-size: cover;
      background-position: center; }
    .sec01 .txt-wrap {
      width: 505px;
      flex-shrink: 0;
      padding-left: calc(50% - 520px);
      padding-right: 50px; }
      .sec01 .txt-wrap p {
        letter-spacing: 0.2em;
        text-align: justify; }

  .sec02 {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between; }
    .sec02 .pht-wrap {
      width: 100%;
      height: 465px;
      background-image: url(../img/portrait/pht02.jpg);
      background-size: cover;
      background-position: center; }
    .sec02 .txt-wrap {
      width: 505px;
      flex-shrink: 0;
      padding-right: calc(50% - 520px);
      padding-left: 50px; }
      .sec02 .txt-wrap h3 {
        font-size: 27px;
        line-height: 1.6;
        letter-spacing: 0.3em; }
        .sec02 .txt-wrap h3 .bg {
          background-color: #daf2ff; }
      .sec02 .txt-wrap p {
        letter-spacing: 0.2em;
        text-align: justify; }

  .sec03 .wrap {
    position: relative; }
  .sec03 .pht-wrap {
    width: 100%;
    margin-top: 50px; }
  .sec03 .txt-wrap {
    width: 100%; }
    .sec03 .txt-wrap h3 {
      font-size: 27px;
      line-height: 1.6;
      letter-spacing: 0.3em; }
      .sec03 .txt-wrap h3 .bg {
        background-color: #daf2ff; }
    .sec03 .txt-wrap p {
      letter-spacing: 0.2em;
      text-align: justify; }

  .deco {
    position: absolute;
    z-index: -1; }

  .deco01 {
    width: 350px;
    bottom: -225px;
    right: 0; }

  .deco02 {
    width: 130px;
    top: 60px;
    left: -80px; }

  .deco03 {
    width: 540px;
    bottom: -150px;
    right: 0; } }
@media only screen and (max-width: 768px) {
  .main-title {
    width: 100%;
    height: 300px;
    background-image: url(../img/portrait/top_bg.jpg);
    background-size: cover;
    background-position: center right 13%;
    position: relative; }
    .main-title .txt-box {
      position: absolute;
      left: 0;
      right: 0;
      top: 160px;
      margin: auto;
      width: 100vw;
      max-width: 500px;
      height: 100vw;
      max-height: 500px;
      color: white;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      z-index: 2; }
      .main-title .txt-box::before {
        content: "";
        width: 100vw;
        max-width: 500px;
        height: 100vw;
        max-height: 500px;
        position: absolute;
        z-index: 1;
        top: 0;
        left: 0;
        z-index: -1;
        display: block;
        background-image: url(../img/portrait/top_txt.png);
        background-size: contain; }
      .main-title .txt-box h2 {
        width: 100%;
        opacity: 0.6;
        padding-top: 0px;
        padding-bottom: 0;
        font-size: 18px; }
      .main-title .txt-box .message {
        font-size: 24px;
        font-weight: 400;
        padding-top: 15px;
        line-height: 1.6;
        letter-spacing: 0.1em;
        padding-left: 8px; }
      .main-title .txt-box .name {
        padding-top: 20px;
        font-size: 16px;
        line-height: 1.3; }
        .main-title .txt-box .name span {
          display: block;
          font-size: 12px; }

  .sec {
    position: relative;
    padding: 0 5%; }
    .sec + .sec {
      margin-top: 40px; }
    .sec p {
      line-height: 2.1; }

  .deco {
    position: absolute;
    z-index: -1; }

  .deco01 {
    width: 230px;
    bottom: -120px;
    right: 0; }

  .deco02 {
    width: 105px;
    top: -60px;
    left: 0; }

  .deco03 {
    width: 225px;
    bottom: -70px;
    right: 0; }

  .sec .wrap {
    padding: 0; }
  .sec .pht-wrap {
    width: 100%;
    height: 200px;
    margin-top: 40px;
    background-size: cover;
    background-position: center; }
  .sec .txt-wrap {
    width: 100%; }
    .sec .txt-wrap h3 {
      font-size: 22px;
      line-height: 1.6;
      letter-spacing: 0.3em; }
      .sec .txt-wrap h3 .bg {
        background-color: #daf2ff;
        padding: 0 5px; }
    .sec .txt-wrap p {
      letter-spacing: 0.2em;
      text-align: justify; }

  .person {
    width: 100%;
    margin: auto;
    box-sizing: border-box;
    margin: auto;
    margin-top: 360px; }
    .person .circle {
      position: relative;
      width: 300px;
      height: 300px;
      display: flex;
      justify-content: center;
      align-items: center; }
      .person .circle:nth-child(2) {
        margin-right: 0;
        margin-left: auto; }
      .person .circle p {
        text-align: center;
        width: 320px;
        margin: auto;
        color: white;
        font-size: 20px;
        letter-spacing: 0.15em;
        font-weight: 500; }
      .person .circle .img-box {
        position: absolute;
        z-index: -1;
        top: 0;
        left: 0; }

  .sec01 .pht-wrap {
    background-image: url(../img/portrait/pht01.jpg); }
  .sec01 p {
    margin-top: 40px; }

  .sec02 .pht-wrap {
    background-image: url(../img/portrait/pht02.jpg); }

  .sec03 .pht-wrap {
    background-image: url(../img/portrait/pht03.jpg); } }
@media only screen and (max-width: 500px) {
  .person {
    margin-top: 64vw; } }
