@charset "UTF-8";
/*

　トップページ
----------------------------------------------- */
[class^=anim-] > img {
  position: absolute;
  z-index: 1;
}

/* メインイメージ */
.hero {
  position: relative;
}
.hero .image img {
  width: 100%;
}
.hero .text {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  padding-inline: calc(50% - 720px);
}
@media (width < 1520px) {
  .hero .text {
    padding-inline: 40px;
  }
}
@media (max-width: 960px) {
  .hero .text {
    padding-inline: 20px;
  }
}
@media (width >= 960px) {
  .hero .text {
    top: 52%;
    /* top: 66%; */
    bottom: 320px;
  }
  .hero .text img {
    width: 43.375vw;
  }
}
@media (width < 960px) {
  .hero .text {
    top: max(125px, 31vw);
  }
  .hero .text img {
    width: max(270px, 72vw);
  }
}

.anim-1 {
  position: absolute;
  z-index: 2;
}
@media (width >= 960px) {
  .anim-1 {
    width: 437px;
    height: 337px;
    bottom: -55px;
    left: 55px;
  }
}
@media (width < 960px) {
  .anim-1 {
    width: 162px;
    height: 164px;
    bottom: -10px;
    left: 15px;
  }
}
.anim-1 .cat {
  transform-origin: 50% 85%;
  animation: heroCatAnim 3s linear infinite;
}
@media (width >= 960px) {
  .anim-1 .cat {
    width: 221px;
    bottom: 0;
  }
}
@media (width < 960px) {
  .anim-1 .cat {
    width: 86px;
    top: 22px;
  }
}
@keyframes heroCatAnim {
  0%, 100% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-10deg);
  }
  75% {
    transform: rotate(8deg);
  }
}
.anim-1 .petal1 {
  animation: heroPetal1Anim 5s linear infinite;
}
@media (width >= 960px) {
  .anim-1 .petal1 {
    width: 38px;
    top: 0;
    right: 200px;
  }
}
@media (width < 960px) {
  .anim-1 .petal1 {
    width: 15px;
    top: 0;
    left: 75px;
  }
}
@keyframes heroPetal1Anim {
  0%, 100% {
    translate: 0 0;
  }
  25% {
    translate: 11% -4%;
  }
  75% {
    translate: -3% 2%;
  }
}
.anim-1 .petal2 {
  animation: heroPetal2Anim 5s linear infinite;
}
@media (width >= 960px) {
  .anim-1 .petal2 {
    width: 51px;
    top: 20px;
    right: 70px;
  }
}
@media (width < 960px) {
  .anim-1 .petal2 {
    width: 20px;
    top: 7px;
    left: 120px;
  }
}
@keyframes heroPetal2Anim {
  0%, 100% {
    translate: 0 0;
  }
  25% {
    translate: -15% 10%;
  }
  50% {
    translate: 3% 8%;
  }
  85% {
    translate: -2% -2%;
  }
}
.anim-1 .petal3 {
  animation: heroPetal3Anim 5s linear infinite;
}
@media (width >= 960px) {
  .anim-1 .petal3 {
    width: 43px;
    top: 100px;
    right: 150px;
  }
}
@media (width < 960px) {
  .anim-1 .petal3 {
    width: 17px;
    top: 38px;
    left: 95px;
  }
}
@keyframes heroPetal3Anim {
  0%, 100% {
    translate: 0 0;
  }
  25% {
    translate: 10% 0%;
  }
  50% {
    translate: -10% 10%;
  }
  75% {
    translate: 8% 8%;
  }
}
@media (width >= 960px) {
  .anim-1 .mushroom {
    width: 189px;
    top: 155px;
    right: 0;
  }
}
@media (width < 960px) {
  .anim-1 .mushroom {
    width: 72px;
    bottom: 0px;
    left: 89px;
  }
}

.anim-2 {
  position: absolute;
  z-index: 2;
}
@media (width >= 960px) {
  .anim-2 {
    width: 323px;
    height: 313px;
    /* bottom: 130px; */
    bottom: -40px;
    right: 150px;
  }
}
@media (width < 960px) {
  .anim-2 {
    width: 146px;
    height: 136px;
    bottom: -50px;
    right: 40px;
  }
}
.anim-2 .leaf {
  z-index: 3;
  animation: btnLeafAnim 20s linear infinite;
}
@media (width >= 960px) {
  .anim-2 .leaf {
    width: 88px;
    top: 16px;
    left: 8px;
  }
}
@media (width < 960px) {
  .anim-2 .leaf {
    width: 40px;
    top: 6px;
    left: 4px;
  }
}
.anim-2 .circle1 {
  animation: btnCircle1Anim 3s linear infinite;
}
@media (width >= 960px) {
  .anim-2 .circle1 {
    width: 323px;
    top: 0;
    left: 0;
  }
}
@media (width < 960px) {
  .anim-2 .circle1 {
    width: 100%;
  }
}
@media (width >= 960px) {
  .anim-2 .circle2 {
    width: 280px;
    top: 10px;
    left: 17px;
  }
}
@media (width < 960px) {
  .anim-2 .circle2 {
    width: 126px;
    top: 5px;
    left: 8px;
  }
}
.anim-2 .cat {
  transform-origin: -10% 20%;
  animation: btnCatAnim 6s infinite;
}
@media (width >= 960px) {
  .anim-2 .cat {
    width: 150px;
    bottom: 0;
    left: 220px;
  }
}
@media (width < 960px) {
  .anim-2 .cat {
    width: 65px;
    bottom: -19px;
    left: 100px;
  }
}
@media (width >= 960px) {
  .anim-2 .label {
    width: 188px;
    top: 115px;
    left: 65px;
  }
}
@media (width < 960px) {
  .anim-2 .label {
    width: 81px;
    top: 54px;
    left: 33px;
  }
}
@keyframes btnLeafAnim {
  0% {
    rotate: 0deg;
  }
  100% {
    rotate: 360deg;
  }
}
@keyframes btnCircle1Anim {
  0% {
    rotate: 0deg;
  }
  50% {
    rotate: 40deg;
  }
  100% {
    rotate: 0deg;
  }
}
@keyframes btnCatAnim {
  0%, 10% {
    rotate: 0deg;
  }
  35%, 75% {
    rotate: 16deg;
  }
  90%, 100% {
    rotate: 0deg;
  }
}

/* お知らせ・トピックス */
.news_topics {
  position: relative;
  padding-inline: calc(50% - 550px);
}
@media (width < 1180px) {
  .news_topics {
    padding-inline: 40px;
  }
}
@media (max-width: 960px) {
  .news_topics {
    padding-inline: 20px;
  }
}
.news_topics {
  background-color: var(--color-cream);
  display: grid;
}
@media (width >= 960px) {
  .news_topics {
    padding-block: 25px 100px;
    grid-template-columns: auto 1fr;
    grid-template-areas: "title post" "link post";
    gap: 0 70px;
  }
}
@media (width < 960px) {
  .news_topics {
    padding-block: 145px 75px;
  }
}
.news_topics h2 {
  position: relative;
}
.news_topics h2 .en {
  position: absolute;
}
.news_topics h2 .cat {
  position: absolute;
}
@media (width >= 960px) {
  .news_topics h2 {
    grid-area: title;
    padding-top: 55px;
    padding-inline: 100px 130px;
    font-weight: 400;
    height: fit-content;
  }
  .news_topics h2 .text {
    position: relative;
    z-index: 2;
    writing-mode: vertical-rl;
    font-size: 26rem;
  }
  .news_topics h2 .en {
    top: 75px;
    left: -30px;
  }
  .news_topics h2 .cat {
    width: 122px;
    bottom: -60px;
    left: -25px;
  }
}
@media (width < 960px) {
  .news_topics h2 {
    margin-bottom: 20px;
  }
  .news_topics h2 .text {
    font-size: 20px;
  }
  .news_topics h2 .en {
    width: 231px;
    bottom: 5px;
    left: 25px;
  }
  .news_topics h2 .cat {
    width: 61px;
    bottom: 35px;
    left: -5px;
  }
}
.news_topics .news-list {
  position: relative;
  z-index: 1;
}
@media (width >= 960px) {
  .news_topics .news-list {
    grid-area: post;
    padding-right: 100px;
    min-height: 400px;
  }
}
.news_topics .news-list a {
  display: grid;
  justify-items: start;
  gap: 5px;
  width: fit-content;
  text-decoration: none;
  line-height: 1.5;
}
.news_topics .news-list a + a {
  margin-top: 1em;
}
.news_topics .news-list a:hover .title {
  opacity: 0.7;
}
.news_topics .news-list .date {
  background: rgba(255, 255, 0, 0.2);
  border-radius: 999px;
  padding: 0.3em 0.8em 0.34em;
  color: #e78641;
  font-weight: 500;
  font-size: 14rem;
  font-size: 13px;
}
@media (width >= 960px) {
  .news_topics .news-list .date {
    font-size: 14rem;
  }
}
.news_topics .news-list .title {
  font-size: 13px;
  transition: 0.2s;
}
@media (width >= 960px) {
  .news_topics .news-list .title {
    font-size: 15rem;
  }
}
.news_topics .link-archive {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  margin-top: 30px;
}
@media (width >= 960px) {
  .news_topics .link-archive {
    grid-area: link;
    margin-top: auto;
  }
}
@media (width < 960px) {
  .news_topics .link-archive {
    margin-left: auto;
  }
}
.news_topics .link-archive a {
  position: relative;
  text-decoration: none;
}
.news_topics .link-archive a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: var(--color-border);
  background-color: currentColor;
  transform: scale(0, 1);
  transform-origin: right;
  transition: transform 0.4s;
}
.news_topics .link-archive a:hover::before {
  transform-origin: left;
  transform: scale(1, 1);
}
.news_topics .link-archive a {
  font-weight: 500;
  font-size: 13px;
}
@media (width >= 960px) {
  .news_topics .link-archive a {
    font-size: 18rem;
  }
}
@media (width < 960px) {
  .news_topics .link-archive img {
    width: 13px;
  }
}

/* 右サイドの魚 */
@media (width >= 960px) {
  .anim-3 .fish1 {
    width: 92px;
    top: 100px;
    right: 65px;
  }
}
@media (width < 960px) {
  .anim-3 .fish1 {
    width: 38px;
    bottom: 70px;
    left: 72px;
  }
}
@media (width >= 960px) {
  .anim-3 .fish2 {
    width: 102px;
    top: 165px;
    right: 125px;
  }
}
@media (width < 960px) {
  .anim-3 .fish2 {
    width: 42px;
    bottom: 45px;
    left: 33px;
  }
}
@media (width >= 960px) {
  .anim-3 .fish3 {
    width: 102px;
    top: 240px;
    right: 50px;
  }
}
@media (width < 960px) {
  .anim-3 .fish3 {
    width: 42px;
    bottom: 23px;
    left: 87px;
  }
}
.anim-3 img {
  animation: newsFishAnim 2.4s infinite;
}
@keyframes newsFishAnim {
  0%, 100% {
    rotate: 10deg;
  }
  50% {
    rotate: -15deg;
  }
}

/* 左サイドの足跡 */
.anim-4 {
  position: absolute;
  width: 126px;
  height: 170px;
}
@media (width >= 960px) {
  .anim-4 {
    bottom: -105px;
    left: 90px;
  }
}
@media (width < 960px) {
  .anim-4 {
    scale: 0.44;
    transform-origin: right top;
    top: 111px;
    right: 20px;
  }
}
.anim-4 .foot1 {
  width: 45px;
  top: 0;
  right: 0;
}
.anim-4 .foot2 {
  transition-delay: 0.3s;
  width: 52px;
  top: 25px;
  left: 0;
}
.anim-4 .foot3 {
  transition-delay: 0.6s;
  width: 52px;
  bottom: 0;
  right: 31px;
}
.anim-4 img {
  opacity: 0;
  transition: opacity 1.2s;
}
.anim-4.view img {
  opacity: 1;
}

/* 右下の猫 */
@media (width >= 960px) {
  .anim-5 {
    position: absolute;
    width: 328px;
    height: 345px;
    bottom: -240px;
    right: 0;
  }
}
.anim-5 .cat {
  transform-origin: 90% 95%;
}
@media (width >= 960px) {
  .anim-5 .cat {
    width: 259px;
    top: 0;
    left: 0;
  }
}
@media (width < 960px) {
  .anim-5 .cat {
    width: 117px;
    bottom: -10px;
    right: 86px;
  }
}
.anim-5 .toy {
  transition: translate 0.6s 0.5s;
  translate: 100% -50%;
}
@media (width >= 960px) {
  .anim-5 .toy {
    width: 146px;
    bottom: 0;
    right: -12px;
  }
}
@media (width < 960px) {
  .anim-5 .toy {
    width: 66px;
    bottom: -27px;
    right: -8px;
  }
}
.anim-5.view .cat {
  animation: newsCatAnim 1.3s 0.8s infinite;
}
.anim-5.view .toy {
  translate: 0 0;
}
@keyframes newsCatAnim {
  0% {
    rotate: 0deg;
  }
  50% {
    rotate: 8deg;
  }
  100% {
    rotate: 0deg;
  }
}

/* 院長からのご挨拶 */
.geeeting {
  position: relative;
}
@media (width >= 960px) {
  .geeeting {
    padding-top: 60px;
    background: linear-gradient(#fff 65%, var(--color-cream) 0);
  }
}
@media (width < 960px) {
  .geeeting {
    padding-top: 20px;
    background: linear-gradient(#fff 65%, var(--color-cream) 0);
  }
}
.geeeting-container {
  position: relative;
  z-index: 2;
  padding-inline: calc(50% - 550px);
}
@media (width < 1180px) {
  .geeeting-container {
    padding-inline: 40px;
  }
}
@media (max-width: 960px) {
  .geeeting-container {
    padding-inline: 20px;
  }
}
@media (width >= 960px) {
  .geeeting-container {
    background: url(../../img/bg-greeting.png) no-repeat center top;
    background-size: 1322px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas: "title title" "image desc" "career desc";
    padding-block: 15px 110px;
    min-height: 852px;
  }
}
@media (width < 960px) {
  .geeeting-container {
    background: url(../../img/bg-greeting-sp.png) no-repeat 42% top;
    background-size: max(1328px, 150vw);
    padding-block: 45px 110px;
  }
}
.geeeting h2 {
  display: grid;
  font-weight: 400;
}
@media (width >= 960px) {
  .geeeting h2 {
    grid-area: title;
    gap: 5px;
  }
  .geeeting h2 .text {
    font-size: 26rem;
  }
}
@media (width < 960px) {
  .geeeting h2 img {
    width: 250px;
  }
  .geeeting h2 .text {
    font-size: 20px;
  }
}
.geeeting .image {
  display: grid;
  align-items: end;
}
@media (width >= 960px) {
  .geeeting .image {
    grid-area: image;
    margin-top: 40px;
    grid-template-columns: 195px auto;
    gap: 30px;
  }
}
@media (width < 960px) {
  .geeeting .image {
    margin-top: 20px;
    grid-template-columns: 100px auto;
    gap: 15px;
  }
}
@media (width >= 960px) {
  .geeeting .image img {
    border-radius: 40px;
  }
}
@media (width < 960px) {
  .geeeting .image img {
    border-radius: 20px;
  }
}
.geeeting .image figcaption {
  font-family: var(--font-gothic);
  line-height: 1.6;
  letter-spacing: 0.1em;
}
.geeeting .image figcaption .name {
  font-weight: 500;
  font-size: 140%;
}
.geeeting .image figcaption em {
  padding-right: 0.6em;
  font-size: 86%;
}
@media (width >= 960px) {
  .geeeting .image figcaption {
    font-size: 15rem;
  }
}
@media (width < 960px) {
  .geeeting .image figcaption {
    font-size: 10px;
  }
  .geeeting .image figcaption .name {
    font-size: 14px;
  }
  .geeeting .image figcaption em {
    font-size: 12px;
  }
}
.geeeting .desc {
  margin-top: 15px;
}
@media (width >= 960px) {
  .geeeting .desc {
    grid-area: desc;
  }
}
.geeeting .desc p {
  line-height: 1.7;
  font-weight: 500;
}
@media (width < 960px) {
  .geeeting .desc p {
    font-size: 13px;
  }
}
.geeeting .desc p + p {
  margin-top: 1.2em;
}
@media (width >= 960px) {
  .geeeting .career {
    grid-area: career;
    margin-top: 30px;
  }
}
@media (width < 960px) {
  .geeeting .career {
    margin-top: 20px;
  }
}
.geeeting .career h3 {
  margin-bottom: 0.5em;
  font-weight: 500;
  font-family: var(--font-gothic);
  font-size: 13px;
  letter-spacing: 0.1em;
}
@media (width >= 960px) {
  .geeeting .career h3 {
    font-size: 18rem;
  }
}
.geeeting .career dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 1em;
}
.geeeting .career :is(dt, dd) {
  font-family: var(--font-gothic);
  font-size: 11px;
}
@media (width >= 960px) {
  .geeeting .career :is(dt, dd) {
    font-size: 14rem;
  }
}

/* 右上の足跡 */
.anim-6 {
  position: absolute;
  width: 153px;
  height: 242px;
}
@media (width >= 960px) {
  .anim-6 {
    top: -140px;
    right: 60px;
  }
}
@media (width < 960px) {
  .anim-6 {
    scale: 0.44;
    transform-origin: right top;
    top: -113px;
    right: 25px;
  }
}
.anim-6 .foot1 {
  width: 43px;
  top: 0;
  left: 0;
}
.anim-6 .foot2 {
  transition-delay: 0.3s;
  width: 50px;
  top: 30px;
  left: 68px;
}
.anim-6 .foot3 {
  transition-delay: 0.6s;
  width: 52px;
  top: 105px;
  left: 20px;
}
.anim-6 .foot4 {
  transition-delay: 0.9s;
  width: 54px;
  bottom: 0;
  right: 0;
}
.anim-6 img {
  opacity: 0;
  transition: opacity 1.2s;
}
.anim-6.view img {
  opacity: 1;
}

/* 中央上の猫 */
.anim-7 .cat {
  translate: -50% 50%;
  transition: translate 0.3s ease-out;
}
@media (width >= 960px) {
  .anim-7 .cat {
    width: 240px;
    top: 15px;
    left: calc(50% - 90px);
  }
}
@media (width < 960px) {
  .anim-7 .cat {
    width: 127px;
    top: 0;
    left: calc(50% - 45px);
  }
}
.anim-7 .mouse {
  z-index: 3;
}
@media (width >= 960px) {
  .anim-7 .mouse {
    width: 172px;
    top: 0;
    left: calc(50% + 200px);
  }
}
@media (width < 960px) {
  .anim-7 .mouse {
    width: 51px;
    top: 23px;
    left: calc(50% + 92px);
  }
}
.anim-7 .wave {
  z-index: 3;
}
@media (width >= 960px) {
  .anim-7 .wave {
    width: 162px;
    top: 72px;
    left: calc(50% + 164px);
  }
}
@media (width < 960px) {
  .anim-7 .wave {
    width: 81px;
    top: 160px;
    left: calc(50% + 30px);
  }
}
.anim-7 .cat.view {
  translate: 0 0;
}

/* 右下の猫 */
.anim-8 .cat {
  z-index: 3;
  transform-origin: 50% 100%;
  animation: btmCatAnim 3s linear infinite;
}
@media (width >= 960px) {
  .anim-8 .cat {
    width: 263px;
    bottom: 0px;
    right: calc(50% - 540px);
  }
}
@media (width < 960px) {
  .anim-8 .cat {
    width: 111px;
    bottom: 0px;
    right: calc(50% - 170px);
  }
}
@keyframes btmCatAnim {
  0%, 100% {
    rotate: 0deg;
    translate: 0 0;
  }
  25% {
    rotate: 1.4deg;
    translate: -6% -0.5%;
  }
  50% {
    rotate: 0deg;
    translate: 0 0;
  }
  75% {
    rotate: -1.4deg;
    translate: 6% -0.5%;
  }
}
.anim-8 .wave {
  z-index: 3;
}
@media (width >= 960px) {
  .anim-8 .wave {
    width: 129px;
    bottom: 20px;
    left: calc(50% - 470px);
  }
}
@media (width < 960px) {
  .anim-8 .wave {
    width: 64px;
    bottom: 30px;
    left: calc(50% - 164px);
  }
}
.anim-8 .fish {
  z-index: 3;
}
@media (width >= 960px) {
  .anim-8 .fish {
    width: 220px;
    bottom: 80px;
    right: calc(50% - 260px);
  }
}
@media (width < 960px) {
  .anim-8 .fish {
    width: 93px;
    bottom: 20px;
    right: calc(50% - 40px);
  }
}