/* report */
.top-message {
  position: relative;
  padding-bottom: 15rem;
}
@media (max-width: 768px) {
  .top-message {
    padding-bottom: 6rem;
  }
}
.top-message::before {
  position: absolute;
  top: 15rem;
  left: 0;
  width: 100%;
  height: 30rem;
  background-color: #ef821a;
  background-position: 5rem 50%;
}
@media (max-width: 996px) {
  .top-message::before {
    height: 85rem;
  }
}
@media (max-width: 599px) {
  .top-message::before {
    height: 60rem;
  }
}
.top-message .container-fluid .row {
  margin: 0 30px 0 0;
  padding: 0;
}
@media (max-width: 996px) {
  .top-message .container-fluid .row {
    margin: 0;
  }
}
.top-message .photo {
  margin: 0 0 0 -15px;
  padding: 0;
}
@media (max-width: 996px) {
  .top-message .photo {
    margin: 0 auto;
    text-align: center;
    }
  }
.top-message h2 {
  margin-top: 3rem;
  margin-bottom: 2rem;
  padding-top: 0.8rem;
  padding-bottom: 0.8rem;
  width: 100%;
  height: auto;
  text-align: left;
  color: #555;
  font-size: 2.4rem;
  z-index: 2;
  transition: all 1s;
}
.top-message h2::before {
  background-image: none;
}
.top-message h2::after {
  border: 0 none;
}
@media (max-width: 996px) {
  .top-message h2 {
    font-size: 1.8rem;
    color: #fff;
    }
  }
.top-message h2 span {
  display: block;
  font-size: 1rem;
  margin-bottom: 1rem;
}
.top-message p {
  margin-bottom: 1rem;
  color: #fff;
}
.top-message p span {
  display: block;
  margin: 0 auto 0.2rem;
  padding: 0;
}
.top-message .dir {
  padding-top: 2rem;
}
.top-message .name {
  padding-bottom: 2rem;
  font-size: 1.2rem;
}

dd .nobr {
  display: inline-block;
  width: auto;
  white-space: nowrap;
}

.phonenum {
  padding-right: 0;
}

/* profile */
.profile {
  padding-top: 5rem;
  padding-left: 8rem;
  padding-bottom: 5rem;
  background-image: url("images/bg.svg");
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  font-size: clamp(14px, 1vw, 16px);
}
.profile dl {
  margin-left: 2rem;
  margin-top: 1.5rem;
  width: 90%;
}
.profile dt {
  width: 40%;
  padding: 0.4rem 1rem 0 0;
}
.profile dd {
  width: 60%;
  padding: 0.4rem 0 0.4rem 2rem;
}
.profile .photo img {
  display: block;
  margin-top: 2rem;
  margin-right: -80px;
}
@media (max-width: 996px) {
  .profile {
    padding-top: 0;
    padding-left: 0;
    background-position: bottom 8% center;
  }
  .profile h3 img {
    display: block;
    width: 75%;
    margin: 0 auto;
    padding: 0;
    text-align: center;
  }
  .profile dl {
    margin-left: 0;
    margin-top: 1rem;
    width: 100%;
  }
  .profile dt {
    display: inline-block !important;
    width: 38%;
  }
  .profile dd {
    display: inline-block !important;
    margin-left: -5px;
    width: 60%;
    border-top: 1px solid #ccc;
  }
  .profile .photo img {
    width: 60%;
    margin: 2rem auto 0;
  }
}

/* motion setting */
/* fadeIn */
.fadeIn {
  animation-name: fadeInAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes fadeInAnime {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(60px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* fadeDown */
.fadeDown {
  animation-name: fadeDownAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes fadeDownAnime {
  from {
    opacity: 0;
    transform: translateY(-100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* fadeLeft */
.fadeLeft {
  animation-name: fadeLeftAnime;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes fadeLeftAnime {
  from {
    opacity: 0;
    transform: translateX(-100px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* fadeRight */
.fadeRight {
  animation-name: fadeRightAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes fadeRightAnime {
  from {
    opacity: 0;
    transform: translateX(60px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* スクロールで出現する要素に透過0を指定 */
.fadeInTrigger, .fadeUpTrigger, .fadeDownTrigger, .fadeLeftTrigger, .fadeRightTrigger {
  opacity: 0;
}
/* flipDown */
.flipDown {
  animation-name: flipDownAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes flipDownAnime {
  from {
    transform: perspective(2500px) rotateX(100deg);
    opacity: 0;
  }
  to {
    transform: perspective(2500px) rotateX(0);
    opacity: 1;
  }
}
/* flipLeft */
.flipLeft {
  animation-name: flipLeftAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  perspective-origin: left center;
  opacity: 0;
}
@keyframes flipLeftAnime {
  from {
    transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
    opacity: 0;
  }
  to {
    transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
    opacity: 1;
  }
}
/* flipLeftTop */
.flipLeftTop {
  animation-name: flipLeftTopAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes flipLeftTopAnime {
  from {
    transform: translate(-20px, 80px) rotate(-15deg);
    opacity: 0;
  }
  to {
    transform: translate(0, 0) rotate(0deg);
    opacity: 1;
  }
}
/* flipRight */
.flipRight {
  animation-name: flipRightAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  perspective-origin: right center;
  opacity: 0;
}
@keyframes flipRightAnime {
  from {
    transform: perspective(600px) translate3d(0, 0, 0) rotateY(-30deg);
    opacity: 0;
  }
  to {
    transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
    opacity: 1;
  }
}
/* flipRightTop */
.flipRightTop {
  animation-name: flipRightTopAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes flipRightTopAnime {
  from {
    transform: translate(-20px, 80px) rotate(25deg);
    opacity: 0;
  }
  to {
    transform: translate(0, 1) rotate(0deg);
    opacity: 1;
  }
}
/* スクロールで出現する要素に透過0を指定 */
.flipDownTrigger, .flipLeftTrigger, .flipLeftTopTrigger, .flipRightTrigger, .flipRightTopTrigger {
  opacity: 0;
}
/* rotateX */
.rotateX {
  animation-name: rotateXAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
@keyframes rotateXAnime {
  from {
    transform: rotateX(0);
    opacity: 0;
  }
  to {
    transform: rotateX(-360deg);
    opacity: 1;
  }
}
/* rotateY */
.rotateY {
  animation-name: rotateYAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
@keyframes rotateYAnime {
  from {
    transform: rotateY(0);
    opacity: 0;
  }
  to {
    transform: rotateY(-360deg);
    opacity: 1;
  }
}
/* rotateLeftZ */
.rotateLeftZ {
  animation-name: rotateLeftZAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
@keyframes rotateLeftZAnime {
  from {
    transform: rotateZ(0);
    opacity: 0;
  }
  to {
    transform: rotateZ(-360deg);
    opacity: 1;
  }
}
/* rotateRightZ */
.rotateRightZ {
  animation-name: rotateRightZAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
@keyframes rotateRightZAnime {
  from {
    transform: rotateZ(0);
    opacity: 0;
  }
  to {
    transform: rotateZ(360deg);
    opacity: 1;
  }
}
/* スクロールで出現する要素に透過0を指定 */
.rotateXTrigger, .rotateYTrigger, .rotateLeftZTrigger, .rotateRightZTrigger {
  opacity: 0;
}
/* blur */
.blur {
  animation-name: blurAnime;
  animation-duration: 1.5s;
  animation-fill-mode: forwards;
}
@keyframes blurAnime {
  from {
    filter: blur(10px);
    transform: scale(1.02);
    opacity: 0;
  }
  to {
    filter: blur(0);
    transform: scale(1);
    opacity: 1;
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.blurTrigger {
  opacity: 0;
}

/* アニメーションスタートの遅延時間*/
.delay-time01 {
  animation-delay: 0.1s;
}
.delay-time02 {
  animation-delay: 0.2s;
}
.delay-time03 {
  animation-delay: 0.3s;
}
.delay-time04 {
  animation-delay: 0.4s;
}
.delay-time05 {
  animation-delay: 0.5s;
}
.delay-time06 {
  animation-delay: 0.6s;
}
.delay-time07 {
  animation-delay: 0.7s;
}
.delay-time08 {
  animation-delay: 0.8s;
}
.delay-time09 {
  animation-delay: 0.9s;
}
.delay-time1 {
  animation-delay: 1s;
}
.delay-time12 {
  animation-delay: 1.2s;
}
.delay-time15 {
  animation-delay: 1.5s;
}
.delay-time2 {
  animation-delay: 2s;
}
.delay-time25 {
  animation-delay: 2.5s;
}

.swing {
  animation: swing 7s linear infinite;
  transform-origin: bottom center;
}
@keyframes swing {
  0%,100% {
    transform: rotate(-5deg);
  }
  50% {
    transform: rotate(5deg);
  }
}

.step {
  animation: step 4s ease-in-out infinite;
}
@keyframes step {
  0% {
    transform: translate(0, 0);
  }
  15% {
    transform: translate(-6px, -12px) rotate(-2deg);
  }
  50% {
    transform: translate(0, 0);
  }
  85% {
    transform: translate(6px, -12px) rotate(2deg);
  }
  100% {
    transform: translate(0, 0);
  }
}