@charset "UTF-8";
:root {
  --inner:700px;
  --wrap:990px;
  --box:1080px;
  --container:1280px;
  --maxWidth:1440px;
  --spHeaderHeight:50px;
  --pcHeaderHeight:80px;
  --baseColor:#ffffff;
  --mainColor:#450369;
  --subColor:#EAE8FA;
  --accentColor:#FF55DD;
  --whiteColor:#ffffff;
  --blackColor:#262626;
  --grayColor:#707070;
  --darkGrayColor:#383546;
  --beigeColor:#eadfcd;
  --beigeLightColor:#F7F6F3;
  --textColor:var(--blackColor);
  --textHoverColor:var(--mainColor);
  --blogPurple:#BE9AD1;
  --blogOrange:#D29826;
  --blogYellow:#BEC23F;
  --blogBlue:#9BC4C4;
  --blogRed:#CB4042;
  --blogPurpleBg:#F9F5FC;
  --blogOrangeBg:#FBF5E9;
  --blogYellowBg:#F9F9EB;
  --blogBlueBg:#F7F9F9;
  --blogRedBg:#FCF6F5;
  --animationSpeed:0.4s;
  --ioAnimationSpeed:1s;
  --spMargin:100px;
  --pcMargin:130px;
  --fontSerif:"Lusitana",serif;
  --fontGothic:"Roboto",sans-serif;
  --fontFamily:var(--fontGothic);
  --fontTitle:var(--fontSerif);
  --fontEn:var(--fontSerif);
}

/* ==========================================================================

	top common

========================================================================== */
/*--------------------------------
	トップ カラム一覧
--------------------------------*/
.top-column li figure {
  position: relative;
}
.top-column li figure figcaption {
  width: 100%;
  color: var(--whiteColor);
  text-align: center;
  margin-bottom: 0;
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 2;
  transform: translateY(-50%);
}
.top-column li figure:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  mix-blend-mode: multiply;
  background-color: var(--blackColor);
  opacity: 0.3;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
@media print, screen and (min-width: 813px) {
  .top-column li a figure {
    overflow: hidden;
  }
  .top-column li a figure img {
    transition: transform var(--animationSpeed), filter var(--animationSpeed);
  }
  .top-column li a figure figcaption {
    line-height: 1.2;
  }
  .top-column li a figure:after {
    transition: background-color var(--animationSpeed);
  }
  .top-column li a:hover figure img {
    transform: scale(1.05);
  }
  #juyohin .top-column li a:hover figure img {
    filter: brightness(115%);
  }
  .top-column li a:hover figure:after {
    background-color: transparent;
  }
}

/*--------------------------------
	トップ wideカラム
--------------------------------*/
.top_container {
  --purpleBg:rgba(233, 227, 255, 0.5);
  --redBg:rgba(227, 93, 66, 0.1);
  --yellowBg:rgba(249, 190, 0, 0.17);
}
.top_container > * > * {
  position: relative;
  z-index: 1;
}
.top_container .top_wrap .link_txt a {
  will-change: auto;
}
.top_container .top_wrap .link_txt a:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.top_container[data-top*=purple] {
  background-color: var(--purpleBg);
}
.top_container[data-top*=red] {
  background-color: var(--redBg);
}
.top_container[data-top*=yellow] {
  background-color: var(--yellowBg);
}
@media print, screen and (max-width: 812px) {
  .top_container > div {
    padding-bottom: 3em;
  }
  .top_container .top_wrap picture {
    width: 100vw;
    margin-bottom: 1.6em;
    margin-left: calc(50% - 50vw);
  }
  .top_container .top_wrap .link_txt {
    justify-content: end;
  }
}
@media print, screen and (min-width: 813px) {
  .top_container {
    position: relative;
  }
  .top_container > div {
    padding-bottom: 5em;
  }
  .top_container .top_wrap {
    display: flex;
    gap: 3%;
    width: 100vw;
    max-width: initial;
    margin-right: 0;
    margin-left: calc(50% - 50vw);
  }
  .top_container .top_wrap > picture {
    width: 70%;
  }
  .top_container .top_wrap > picture img {
    width: 100%;
  }
  .top_container .top_wrap > div {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-end;
    width: 27%;
    padding: 5em 0 4em;
  }
  .top_container .top_wrap > div > * {
    width: 100%;
    margin-bottom: 3rem;
  }
  .top_container .top_wrap > div > *:last-child {
    margin-bottom: 0;
  }
  .top_container:before {
    display: block;
    content: "";
    width: 100%;
    height: 5em;
    background-color: var(--baseColor);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
  }
  .top_container:after {
    display: block;
    content: "";
    width: 20%;
    height: 100%;
    background: rgb(255, 255, 255);
    position: absolute;
    top: 0;
    z-index: 0;
  }
  .top_container:not([data-top*=reverse]):after {
    left: 0;
    background: linear-gradient(90deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 80%, rgba(255, 255, 255, 0) 100%);
  }
  .top_container:not([data-top*=reverse]) .top_wrap {
    padding-right: calc((100vw - var(--container)) / 2 - 38px);
    padding-left: 0;
  }
  .top_container:not([data-top*=reverse]) .top_wrap > div {
    padding-right: 38px;
  }
  .top_container[data-top*=reverse]:after {
    right: 0;
    background: linear-gradient(-90deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 80%, rgba(255, 255, 255, 0) 100%);
  }
  .top_container[data-top*=reverse] .top_wrap {
    flex-direction: row-reverse;
    padding-right: 0;
    padding-left: calc((100vw - var(--container)) / 2 - 38px);
  }
  .top_container[data-top*=reverse] .top_wrap > div {
    padding-left: 38px;
  }
  .top_container .top_wrap:has(.link_txt) picture {
    overflow: hidden;
  }
  .top_container .top_wrap:has(.link_txt) picture img {
    transition: transform var(--animationSpeed), filter var(--animationSpeed);
    backface-visibility: hidden;
    will-change: opacity, transform;
  }
  .top_container .top_wrap:has(.link_txt):hover picture img {
    transform: scale(1.05);
    filter: brightness(105%);
  }
}

/*--------------------------------
	banner_cnt
--------------------------------*/
.banner_cnt > div .link_btn {
  padding: 0 1em;
  margin-top: 0;
}
.banner_cnt > div .link_btn a {
  display: block;
  text-align: center;
  padding: 0;
  border: none;
  background-color: transparent !important;
}
@media print, screen and (max-width: 812px) {
  .banner_cnt > div .link_btn a[data-arrow*=line] > span {
    padding: 0 calc(var(--arrowLineWidth) + var(--arrowLineHoverMove));
  }
}
@media print, screen and (min-width: 813px) {
  .banner_cnt > div .link_btn {
    padding: 0 38px;
  }
  .banner_cnt > div .link_btn a:hover > span:after {
    background-color: var(--whiteColor);
  }
}

/*--------------------------------
	logo bg
--------------------------------*/
*[data-bg*=logo]:before {
  height: 40px;
}
@media print, screen and (min-width: 813px) {
  *[data-bg*=logo]:before {
    height: 50px;
  }
}

/*--------------------------------
	ロゴ背景画像
--------------------------------*/
@media print, screen and (max-width: 812px) {
  main #information[data-margin=bottom], main #guide[data-margin=bottom] {
    margin-bottom: calc(var(--spMargin) * 1.6);
  }
  main *[data-bg*=logo] {
    padding-top: calc(var(--spMargin) * 1.6);
  }
}
@media print, screen and (min-width: 813px) {
  main #information[data-margin=bottom], main #guide[data-margin=bottom] {
    margin-bottom: calc(var(--pcMargin) * 1.3);
  }
  main *[data-bg*=logo] {
    padding-top: calc(var(--pcMargin) * 1.3);
  }
}

/* ==========================================================================

	TOP

========================================================================== */
/*--------------------------------
    メインビジュアル
--------------------------------*/
#mainvisual {
  position: relative;
  width: 100%;
  height: calc(100vh - var(--spHeaderHeight));
  height: calc(100svh - var(--spHeaderHeight));
  text-align: center;
  padding: 0;
  margin: 0 auto 10rem;
  transition: var(--animationSpeed);
}
#mainvisual:after {
  display: block;
  content: "";
  width: 100%;
  height: 15vh;
  background: rgba(255, 255, 255, 0);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 80%, rgb(255, 255, 255) 100%);
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 0;
}
#mainvisual .slide .slick-list {
  mask-image: linear-gradient(to bottom, white 80%, transparent 100%);
}
#mainvisual .slide {
  width: 100%;
  height: 100%;
}
#mainvisual .slide .slick-list,
#mainvisual .slide .slick-track,
#mainvisual .slide .slick-slide,
#mainvisual .slide .slick-slide > div,
#mainvisual .slide .slick-slide > div picture {
  width: 100%;
  height: 100%;
}
#mainvisual .slide picture img {
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}
#mainvisual .slide .slick-dots {
  text-align: center;
  padding: 0 30px;
  bottom: 35px;
  z-index: 1;
}
@media print, screen and (max-width: 812px) {
  #mainvisual {
    margin: 0 auto 50px;
  }
}
@media print, screen and (min-width: 813px) {
  #mainvisual {
    height: calc(100vh - var(--pcHeaderHeight));
    height: calc(100svh - var(--pcHeaderHeight));
  }
  #mainvisual .slide .slick-dots {
    bottom: 70px;
  }
}

/*--------------------------------
news
--------------------------------*/
@media print, screen and (max-width: 812px) {
  #news > div .link_txt {
    justify-content: center;
    margin-top: 1.6em;
  }
}
@media print, screen and (min-width: 813px) {
  #news > div {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    grid-template-areas: "title news" "link  news" "filter news";
    gap: 20px 10vw;
    align-items: start;
  }
  #news > div .tt_main {
    grid-area: title;
    margin: 0;
  }
  #news > div .news_lists {
    grid-area: news;
  }
  #news > div .link_txt {
    grid-area: link;
  }
}

/*--------------------------------
information
--------------------------------*/
#information section dl > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2em 0.4em;
  padding: 0.5em 0;
  border-bottom: solid 1px rgba(150, 139, 99, 0.5);
}
#information section dl > div:last-child {
  border-bottom: none;
}
#information section dl > div dt, #information section dl > div dd {
  flex-shrink: 0;
}
#information section dl > div dt {
  width: calc(100% - 0.4em - 6.7em);
}
#information section dl > div dd {
  width: 6.7em;
}
#information section .link_txt {
  justify-content: flex-end;
}
@media print, screen and (max-width: 812px) {
  #information section {
    padding: 1.6em;
    margin-bottom: 2em;
  }
  #information section:last-child {
    margin-bottom: 0;
  }
  #information section dl > div dt {
    line-height: 1.5;
  }
}
@media print, screen and (min-width: 813px) {
  #information section {
    padding: 3em 4em;
  }
  #information section p, #information section dl {
    padding-left: 2em;
  }
  #information section dl {
    padding-right: 2em;
  }
}

/*--------------------------------
service
--------------------------------*/
#service > section {
  margin-bottom: 3em;
}
#service > section:last-child {
  margin-bottom: 0;
}
#service > section > div {
  position: relative;
  gap: 0;
}
#service > section > div > div {
  padding: 1.6em;
}
#service > section > div > div .tt_main {
  margin-bottom: 0.2em;
}
#service > section > div > div .link_txt {
  width: 100%;
  justify-content: flex-end;
  margin-bottom: 2px;
}
#service > section > div > div .link_txt a {
  will-change: auto;
}
#service > section > div > div .link_txt a:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
@media print, screen and (max-width: 812px) {
  #service > section > div > div .link_txt {
    margin-top: 1.6em;
  }
}
@media print, screen and (min-width: 813px) {
  #service > section > div picture {
    overflow: hidden;
  }
  #service > section > div picture img {
    transition: transform var(--animationSpeed), filter var(--animationSpeed);
    backface-visibility: hidden;
    will-change: opacity, transform;
  }
  #service > section > div > div {
    display: flex;
    flex-wrap: wrap;
    align-content: space-between;
    padding: 1.6em 4%;
  }
  #service > section > div > div .tt_main, #service > section > div > div p {
    transition: color var(--animationSpeed);
  }
  #service > section > div:hover picture img {
    transform: scale(1.05);
    filter: brightness(105%);
  }
  #service > section > div:hover > div {
    color: var(--mainColor);
  }
}

/*--------------------------------
knowledge
--------------------------------*/
#knowledge {
  background-image: url("../assets/images/line.svg");
  background-repeat: repeat-y;
  background-position: left top;
}
@media print, screen and (max-width: 812px) {
  #knowledge {
    padding-top: calc(var(--spMargin) / 2);
    padding-left: 25px;
    padding-bottom: calc(var(--spMargin) / 2);
    background-size: 20px auto;
  }
  #knowledge > div > div > div {
    margin-bottom: 2em;
  }
}
@media print, screen and (min-width: 813px) {
  #knowledge {
    background-size: 40px auto;
  }
  #knowledge > div > div {
    display: flex;
    gap: 4%;
    max-width: initial;
    padding-left: 38px !important;
    margin-right: 0;
  }
  #knowledge > div > div > div {
    display: flex;
    flex-wrap: wrap;
    align-content: space-between;
    width: 23%;
    padding-bottom: 1em;
  }
  #knowledge > div > div > div > div {
    width: 100%;
  }
  #knowledge > div > div > ul {
    width: 73%;
  }
}

/*--------------------------------
guide
--------------------------------*/
#guide > section > div ul {
  margin-top: 5em;
}
#guide > section:not(#juyohin) > div ul li {
  margin-bottom: 2.4em;
}
#guide > section:not(#juyohin) > div ul li:last-child {
  margin-bottom: 0;
}
@media print, screen and (max-width: 812px) {
  #guide #saiten > div {
    background-image: url("../assets/images/logomark_bg.svg");
    background-repeat: no-repeat;
    background-position: -35% 25%;
    background-size: 50vw;
  }
  #guide #map > div {
    background-image: url("../assets/images/logomark_bg.svg");
    background-repeat: no-repeat;
    background-position: 120% 35%;
    background-size: 50vw;
  }
  #guide #juyohin > div {
    background-image: url("../assets/images/logomark_bg.svg"), url("../assets/images/logomark_bg.svg");
    background-repeat: no-repeat;
    background-position: -35% 45%, 115% 115%;
    background-size: 50vw, 50vw;
  }
}
@media print, screen and (min-width: 813px) {
  #guide > section:not(#juyohin) > div ul li {
    margin-bottom: 3.6em;
  }
  #guide #saiten > div {
    background: url("../assets/images/logomark_bg.svg") no-repeat 32% -2.5vw/20vw;
  }
  #guide #map > div {
    background: url("../assets/images/logomark_bg.svg") no-repeat 65% -4.5vw/20vw;
  }
  #guide #juyohin > div {
    background: url("../assets/images/logomark_bg.svg") no-repeat 5% -9vw/25vw, url("../assets/images/logomark_bg.svg") no-repeat 85% 120%/20vw;
  }
}

/*--------------------------------
extra
--------------------------------*/
#extra section.top_container > * > * {
  position: static;
}
@media print, screen and (min-width: 813px) {
  #extra #imamasu .link_txt > a:hover > span i {
    border-color: #F9BE00;
    background-color: #F9BE00;
  }
}

/*--------------------------------
instagram
--------------------------------*/
#instagram .tt_main {
  color: var(--mainColor);
  margin-bottom: 1.4em;
}
@media print, screen and (min-width: 813px) {
  #instagram .tt_main {
    margin-bottom: 0.7em;
  }
}

/*--------------------------------
taizen
--------------------------------*/
#taizen > div .blog_logo {
  margin-bottom: 1.6em;
}
#taizen > div > p {
  margin-bottom: 2.4em;
}
#taizen > div .link_txt {
  justify-content: center;
  margin-top: 3em;
}

/*# sourceMappingURL=style.css.map */
