@charset "utf-8";
/* common
---------------------------------------------------------------------- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}
  
body {
    font-size: 62.5%;
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    color: #1A1A1A;
    text-align: center;
}

a {
    color: inherit;
    text-decoration: none;
    transition: all 0.3s ease;
}
  a,
  a:link,
  a:visited,
  a:hover,
  a:active {
    color: #1A1A1A;
  }
  a:hover {
    opacity: 0.7;
  }
  
  ul {
    list-style: none;
  }
  
  img {
    width: 100%;
    vertical-align: bottom;
  }
  
  picture {
    display: block;
    line-height: 0;
  }
  
  button {
    background: none;
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
    font: inherit;
  }
  
  .rmark {
    vertical-align: super;
    font-size: 0.5em;
  }
  
  sub, sup {
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  
  sub {
    font-size: 70%;
    bottom: -0.25em;
  }
  
  sup {
    display: inline-block;
    font-size: 50%;
    font-weight: normal;
    top: -0.7em;
    left: 5px;
  }
  
  small {
    display: inline-block;
  }
  
  @media screen and (max-width: 768px) {
  
    a {
      transition: all 0s ease;
    }
    a:hover {
      opacity: 1;
    }
  
  }
  
  
  
  
:root {
    /* Common Style Variables */
    --min-layout-width: 390;
    --min-ratio: calc(1 / var(--min-layout-width) * 100vw);


    --max-layout-width: 1440;
    --max-ratio: calc(1 / var(--max-layout-width) * 100vw);


    /* Color */
    --color-gray: #1a1a1a;
    --color-white: #fff;
    
    /* Gap */
    --gap-20: 1.25rem;
    --gap-24: 1.5rem;
    
    /* Font */
    --font-instrument-serif: "Instrument Serif", serif, Arial, sans-serif;

    --header-height: 76px;
}

  
@media (max-width: 768px) {
    :root {
        --header-height: 8.4615vw;
    }
}

section[id] {
    scroll-margin-top: var(--header-height);
}






.blockPc {
    display: block;
}
.blockSp {
    display: none;
}
@media (max-width: 768px) {
    img {
      width: 100%;
    }
    .inner {
      padding: 0;
    }
    .blockPc {
      display: none;
    }
    .blockSp {
      display: block;
    }
}
  

#wrap {
    width: 100%;
    overflow: hidden;
}
.cont_inner {
    max-width: 1080px;
    margin: 0 auto;
  }
  .flex_box {
    display: flex;
  }

  @media (max-width: 1100px) and (min-width: 769px) {
    .cont_inner {
        padding-left: 2%;
        padding-right: 2%;
      }
  }
  @media screen and (max-width: 768px) {
    .cont_inner {
        max-width: 100%;
        width: 91.7949vw;
        /* 358px */
    }
  }
  






/* about
---------------------------------------------------- */
.about_box {
    padding-top: 120px;
    padding-bottom: 120px;
    background: #F4E2CE;
}

.about_box .cont_inner {
    position: relative;
    padding-left: 24px;
    padding-right: 24px;
}

.about_box .cont_inner .about_txt p {
    line-height: 250%;
}

.about_box .cont_inner .about_txt p+p {
    margin-top: 1em;
}

@media (min-width: 769px) {
    .about_box .cont_inner .about_txt {
        text-align: left;
    }

    .about_box .cont_inner .about_txt p {
        font-size: 1.8em;
    }

    .about_box .cont_inner .about_logo {
        max-width: 456px;
        position: absolute;
        right: 24px;
        top: 50%;
        transform: translateY(-50%);
    }

    .about_box .cont_inner .about_logo .liy_logo {
        width: 270px;
    }

    .about_box .cont_inner .about_logo p {
        font-size: 1.6em;
        margin-top: 32px;
        margin-bottom: 16px;
    }

    .about_box .cont_inner .about_logo .bess_logo {
        width: 60px;
    }

    .about_box .cont_inner .about_logo .liy_logo,
    .about_box .cont_inner .about_logo .bess_logo {
        margin: 0 auto;
    }
}

@media (max-width: 1200px) and (min-width: 769px) {
    .about_box .cont_inner .about_logo {
        right: 12vw;
    }
}


@media screen and (max-width: 768px) {
    .about_box {
        padding-top: calc(96 * var(--min-ratio));
        padding-bottom: calc(96 * var(--min-ratio));
    }

    .about_box .cont_inner .about_txt p {
        font-size: calc(15 * var(--min-ratio));
    }
}









/* carousel
---------------------------------------------------- */
.carousel_loop_box {
    position: relative;
    z-index: 0;
}
.carousel_loop_swiper {
    overflow: hidden;
}
.carousel_loop_swiper02 {
    margin-top: 1px;
}
.carousel_loop_swiper .swiper-wrapper {
    transition-timing-function: linear;
}
.carousel_loop_swiper .swiper-slide {
    max-width: 500px;
    height: auto;
}
.carousel_loop_swiper .swiper-slide img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
@media (min-width: 769px) {
    .carousel_loop_swiper .swiper-slide {
        width: 500px;
        max-width: none;
    }
}

@media screen and (max-width: 768px) {
    .carousel_loop_swiper .swiper-slide {
        width: 61.5385vw;
        max-width: none;
    }
    .carousel_loop_swiper .swiper-slide img {
        height: auto;
    }
}

















/*  banner
---------------------------------------------------- */
.bnr_wrap h3 {
    display: flex;
    align-items: center;
    justify-content: center;
}
.bnr_wrap h3 img {
    display: inline-block;
    padding-right: 5px;
}
.bnr_wrap ul {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}
.bnr_wrap ul li a {
    display: flex;
    justify-content: space-between;
}
.bnr_wrap ul li a .img_box {
    border-radius: 5px;
    overflow: hidden;
}
.bnr_wrap ul li a .img_box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.bnr_wrap ul li a .cont_box {
    text-align: left;
}
.bnr_wrap ul li .cont_box b {
    font-weight: 500;
    line-height: 170%;
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}
.bnr_wrap ul li .cont_box b img {
    display: inline-block;
    margin-left: 8px;
}
.bnr_wrap ul li .cont_box p {
    line-height: 170%;
}



.bnr_link_box {
    display: flex;
    gap: 1px;
}
.card {
    position: relative;
    overflow: hidden;
}
.card::before {
    content: "";
    position: absolute;
    inset: 0;
  
    transform: scale(1);
    transition: transform 0.6s ease;
}
.card01::before {
    background:
      linear-gradient(
        rgba(0, 0, 0, 0.5),
        rgba(0, 0, 0, 0.5)
      ),
      url('../images/bnr/besshouse.webp');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
}
.card02::before {
    background:
      linear-gradient(
        rgba(0, 0, 0, 0.5),
        rgba(0, 0, 0, 0.5)
      ),
      url('../images/bnr/besstenji.webp');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
}
.card:hover::before {
    transform: scale(1.08);
}

.card a {
    width: 100%;
    flex: 1;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.card a:hover {
    opacity: 1;
}

.card a h3 {
    font-size: 3.2em;
    display: flex;
    align-items: center;
    justify-content: center;
}
.card a h3 img {
    display: inline-block;
    width: 141px;
}
.card01 a h3 img {
    padding-right: 5px;
}
.card02 a h3 img {
    padding-left: 5px;
}
.card a p {
    line-height: 190%;
}

.card a .more {
    font-family: var(--font-instrument-serif);
    display: flex;
}
.card a .more img {
    display: inline-block;
}
@media (min-width: 769px) {
    .bnr_wrap {
        padding-top: 120px;
    }
    .bnr_wrap h3 {
        font-size: 3.2em;
    }
    .bnr_wrap h3 img {
        width: 141px;
    }
    .bnr_wrap ul {
        gap: 56px;
        margin-top: 72px;
    }
    .bnr_wrap ul li {
        width: 512px;
        width: 47.4074%;
    }
    .bnr_wrap ul li a .img_box {
        width: 244px;
        width: 47.6563%;
    }
    .bnr_wrap ul li a .cont_box {
        width: 244px;
        width: 47.6563%;
    }
    .bnr_wrap ul li .cont_box b {
        font-size: 1.8em;
    }
    .bnr_wrap ul li .cont_box b img {
        width: 16px;
    }
    .bnr_wrap ul li .cont_box p {
        font-size: 1.6em;
    }


    .bnr_link_box {
        padding-top: 120px;
    }
    .card {
        width: 50%;
    }
    .card a {
        padding-top: 95px;
        padding-bottom: 95px;
    }
    .card a h3 {
        font-size: 3.2em;
    }
    .card a h3 img {
        width: 141px;
    }
    .card a p {
        font-size: 1.6em;
        margin-top: 24px;
        margin-bottom: 24px;
    }
    .card a .more {
        font-size: 2.8em;
    }
    .card a .more img {
        width: 42px;
        margin-left: 10px;
    }
}
@media screen and (max-width: 768px) {
    .bnr_wrap {
        padding-top: calc(80 * var(--min-ratio));
    }
    .bnr_wrap h3 {
        font-size: calc(24 * var(--min-ratio));
    }
    .bnr_wrap h3 img {
        width: calc(106 * var(--min-ratio));
    }
    .bnr_wrap ul {
        gap: calc(16 * var(--min-ratio));
        margin-top: calc(40 * var(--min-ratio));
    }
    .bnr_wrap ul li {
        width: calc(171 * var(--min-ratio));
    }
    .bnr_wrap ul li a {
        flex-direction: column;
    }
    .bnr_wrap ul li a .img_box {
        width: 100%;
        margin-bottom: calc(8 * var(--min-ratio));
    }
    .bnr_wrap ul li a .cont_box {
        width: 100%;
    }
    .bnr_wrap ul li .cont_box b {
        font-size: calc(16 * var(--min-ratio));
    }
    .bnr_wrap ul li .cont_box b img {
        width: calc(14 * var(--min-ratio));
    }
    .bnr_wrap ul li .cont_box p {
        font-size: calc(13 * var(--min-ratio));
    }


    .bnr_link_box {
        padding-top: calc(80 * var(--min-ratio));
        flex-direction: column;
        gap: 1px;
    }
    .card {
        width: 100%;
    }
    .card a {
        padding-top: calc(53 * var(--min-ratio));
        padding-bottom: calc(53 * var(--min-ratio));
    }
    .card a h3 {
        font-size: calc(24 * var(--min-ratio));
    }
    .card a h3 img {
        width: calc(106 * var(--min-ratio));
    }
    .card a p {
        font-size: calc(14 * var(--min-ratio));
        margin-top: calc(16 * var(--min-ratio));
        margin-bottom: calc(16 * var(--min-ratio));
    }
    .card a .more {
        font-size: calc(18 * var(--min-ratio));
    }
    .card a .more img {
        width: calc(40 * var(--min-ratio));
        margin-left: calc(12 * var(--min-ratio));
    }
}










/* footer
---------------------------------------------------- */
.footer {
    width: 100%;
    position: relative;
    background-color: var(--color-gray);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 5rem 0rem 1.5rem;
    box-sizing: border-box;
    isolation: isolate;
    gap: 5rem;
    text-align: center;
    font-size: 1rem;
    color: var(--color-white);
}
.footer .frame-parent {
    align-self: stretch;
    height: 15.438rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    position: relative;
    isolation: isolate;
    gap: var(--gap-20);
    z-index: 0;
}
.footer .frame-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.5rem;
    z-index: 0;
}
.footer .log-is-you-logo {
    width: 17.813rem;
    position: relative;
    flex-shrink: 0;
}
.footer .footer .by-parent {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--gap-20);
}
.footer .by {
    position: relative;
    line-height: 100%;
    font-weight: 500;
    margin-bottom: 20px;
}
.footer .bess-logo-1 {
    width: 4.688rem;
    height: 5.063rem;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}
.footer .group-icon {
    position: absolute;
    width: 100%;
    top: 0%;
    right: 0%;
    bottom: 21.6%;
    left: 0%;
    max-width: 100%;
    overflow: hidden;
    max-height: 100%;
}




.footer .frame-container {
    margin: 0 !important;
    position: absolute;
    top: 0rem;
    left: 2.5rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--gap-24);
    z-index: 1;
    font-size: 0.813rem;
}
.footer .log-is-you-parent ul {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: var(--gap-24);
}
.footer .log-is-you-parent ul li a {
    color: #fff;
    text-align: left;
    position: relative;
    line-height: 100%;
    font-weight: 500;
}


.footer .insta_cion {
    width: 1.25rem;
    height: 1.25rem;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}
.footer .insta_cion img {
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0%;
    right: 0%;
    bottom: 0%;
    left: 0%;
    max-width: 100%;
    overflow: hidden;
    max-height: 100%;
}


.rccore-co-ltd {
    position: relative;
    font-size: 0.625rem;
    letter-spacing: 0.1em;
    line-height: 100%;
    text-align: left;
    z-index: 1;
}

.page-top-div {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
  
    transition:
      opacity 0.3s ease,
      transform 0.3s ease,
      visibility 0.3s ease;
    cursor: pointer;
    z-index: 1000;
}
.page-top-div.is-visible {
    opacity: 1;
    visibility: visible;
}
.page-top-div:hover {
    opacity: 0.7;
}
.page-top-div p {
    font-family: var(--font-instrument-serif);
    font-size: 24px;
    line-height: 1;
    color: #fff;
    text-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
}

@media screen and (max-width: 768px) {
    .footer {
        padding: calc(68 * var(--min-ratio)) 0rem calc(16 * var(--min-ratio));
        gap: calc(64 * var(--min-ratio));
    }
    .footer .frame-parent {
        flex-direction: column;
        align-items: center;
        height: auto;
        gap: calc(56 * var(--min-ratio));
    }
    .footer .frame-group {
        gap: calc(24 * var(--min-ratio));
    }
    .footer .log-is-you-logo {
        width: calc(195 * var(--min-ratio));
    }
    .footer .by-parent {
        gap: calc(21 * var(--min-ratio));
    }
    .footer .bess-logo-1 {
        width: calc(60 * var(--min-ratio));
        height: calc(65 * var(--min-ratio));
    }

    .footer .frame-container {
        position: initial;
        align-items: center;
        gap: calc(32 * var(--min-ratio));
        font-size: 0.813rem;
    }
    .footer .log-is-you-parent ul {
        align-items: center;
        gap: calc(16 * var(--min-ratio));
    }
    .footer .log-is-you-parent ul li a {
        text-align: center;
    }

    .footer .insta_cion {
        width: calc(20 * var(--min-ratio));
        height: calc(20 * var(--min-ratio));
    }

    .page-top-div {
        width: calc(26 * var(--min-ratio));
    }
}







.img_fade {
    opacity: 0;
    transition: opacity 0.8s ease-out;
}

.img_fade.is_show {
    opacity: 1;
}
  





