@charset "UTF-8";
/* 誠明館LP */
* {margin: 0; padding: 0;}
.zen-mincho {font-family: "Zen Old Mincho", serif; font-weight: 400; font-style: normal;}

html {scroll-behavior: smooth;}
html, body, section, span, div, img, h1, h2, h3, h4, p, nav, header, footer,
table, tr, th, td, a, ol, ul, li, dl, dt, dd {margin:0; padding:0; border:0; outline:0; box-sizing: border-box; background-repeat: no-repeat;}

img {width: 100%; height: auto;}

a {text-decoration: none; transition-duration: .4s; color: #fff;}
a:active, a:hover {text-decoration: none; transition-duration: .5s;}
a img {border: none; text-decoration: none;}
::selection {background-color: green;}

body {letter-spacing: .05rem; color: #222; line-height: 1.7;}

#fv {margin: 0 auto;}
.fv__main {position: relative; width: 100%; height: 100vh; display: flex; align-items: center; justify-content: center;}
.fv__main h1 {font-size: 2.2rem; letter-spacing: .2rem; position: absolute; top: 47.5%; left: 50%; transform: translate(-50%, -50%); color: #fff; width: fit-content; height: auto; text-align: center; z-index: 2;}
.fv__main video {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); min-width: 100%; min-height: 100%; width: auto; height: auto; object-fit: cover;}
.fv__main .logo  {font-size: 1.2rem; letter-spacing: .1rem; position: absolute; top: .9rem; left: 4.4rem; color: #fff; width: fit-content; height: auto; z-index: 2;}
.fv__main::before {content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(2, 0, 12, 0.25); z-index: 1;}

.right__cta {font-weight: bold; position: fixed; top: 0; right: 2.4rem; width: fit-content; padding: .8rem 1.7rem .9rem; background-color: #002368; color: #fff; border-radius: 0px 0px 8px 8px; z-index: 10;}


section {overflow: hidden;}
#scene {background-color: #efefef; padding: 6.5rem;}
#floor, #gallery, #overview {margin: 6.5rem auto 10rem;}
section h2 {font-size: 1.8rem; letter-spacing: .2rem; width: fit-content; height: auto; margin: 2rem auto 6rem; text-align: center; z-index: 2;}
#scene h2 {letter-spacing: .1rem;}

/* --- 利用シーン --- */
.scene__box {max-width: 1560px; display: flex; justify-content: space-between; margin: 0 auto; gap: 2.4rem;}
.scene__box .scene__main {width: 48%; margin: 0 0 1rem;}
.scene__box .scene__cont {width: 48%; margin: 0 0 1rem;}
.scene__box .scene__text {margin: 0 0 2rem;}
.scene__box .scene__text p {margin: 0 0 1rem;}

.two-column {display: flex; gap: 2rem; align-items: stretch;}
.column.left {flex: 2;}
.column.left img {width: 100%; height: 100%; object-fit: cover;}
.column.right {flex: 1.2; display: flex; flex-direction: column; justify-content: space-between;}
.text-block {margin-bottom: 1rem;}

.mySwiper {width: 100%;}
.mySwiper img {width: 100%; height: 100%; object-fit: cover;}

.swiper-slide {text-align: center;}
.swiper-slide img {display: block; margin: 0 auto; max-width: 100%; height: auto;}
.slide-caption {margin-top: .7rem; font-size: .9rem;}
.swiper-pagination {position: relative; margin-top: .5rem; text-align: center;}
.swiper-pagination-bullet-active {background: rgba(28, 186, 0, 0.8);}

/* --- 施設案内 --- */
.floor__box {max-width: 1200px; display: flex; justify-content: space-between; margin: 0 auto; gap: 2rem;}
.floor__map {position:relative; max-width:580px; margin:0 auto; }
.floor__map img {width:100%; display:block; }

.click-point {position:absolute; width:30px; height:30px; background-color:rgba(28, 186, 0, 0.7); border-radius:50%; cursor:pointer; transform:translate(-50%, -50%); transition: transform 0.2s;}
.click-point:hover {transform:translate(-50%, -50%) scale(1.3);}

.floor__screen {max-width:580px; margin:0 auto; display: flex; flex-direction: column; justify-content: center; align-items: center;}

.floor__screen video, 
.floor__screen img {width: 100%; height: auto; max-width: 600px; aspect-ratio: 16/9; object-fit: contain;}
.floor__video {margin-top:30px; text-align:center; }
video {width:100%; height:auto;}
.floor__note {font-size: .9rem; letter-spacing: .05rem; margin: 0 0 1rem; text-align: center;}


/* タブメニュー スタイル */
.tab-section {max-width: 1200px; padding: 60px 0; margin: 0 auto;}
.section__title {font-size: 2rem; font-weight: bold; margin-bottom: 40px;}
.tab-container {max-width: 90%; margin: 0 auto;}
.tab-wrap {background: #fff; display: flex; flex-wrap: wrap;	overflow: hidden; padding: 0 0 20px;}
.tab-label {cursor: pointer; flex: 1; order: -1; padding: 1.4rem 1.4rem; position: relative;	text-align: center; transition: cubic-bezier(0.4, 0, 0.2, 1) .2s;	user-select: none; white-space: nowrap; -webkit-tap-highlight-color: transparent;}
.tab-label:hover {font-weight: bold;}
.tab-switch:checked + .tab-label {font-weight: bold; color: rgba(28, 186, 0, 0.7);}
.tab-label::after {/*background: #002368;*/ background: rgba(28, 186, 0, 0.7); bottom: 0; content: ''; display: block; height: 4px;	left: 0; opacity: 0; pointer-events: none; position: absolute;	transform: translateX(100%); transition: cubic-bezier(0.4, 0, 0.2, 1) .2s 50ms;	width: 100%; z-index: 1;}
.tab-switch:checked ~ .tab-label::after {transform: translateX(-100%);}
.tab-switch:checked + .tab-label::after {opacity: 1; transform: translateX(0);}
.tab-content {height:0; opacity:0; padding: 0; pointer-events:none;	transform: translateX(-30%); transition: transform .3s 80ms, opacity .3s 80ms; width: 100%;}
.tab-content p, .tab-content dl {margin: 0 0 1rem;}

.tab-switch:checked ~ .tab-content {transform: translateX(30%);}
.tab-switch:checked + .tab-label + .tab-content {height: auto; opacity: 1; order: 1;	pointer-events:auto; transform: translateX(0);}

.tab-wrap::after {content: ''; height: 20px; order: -1; width: 100%;}
.tab-switch {display: none;}

.custom-list {list-style: disc; padding-left: 1.4rem; margin: 0;}
.custom-list li {margin-bottom: 0.2rem;}

/* MAP ***/
.map__container {position: relative; width: 100%; padding-bottom: 35%; height: 0; overflow: hidden;}
.map__container iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;}

/* CTA　**/
.appeal {background-color: #dfdfdf; padding: 5rem 0 6rem;}
.appeal p {font-size: 1.6rem; width: fit-content; margin: 0 auto 2rem; font-weight: bold;}
.cta {display: block; margin: 0 auto; font-weight: bold; width: fit-content; padding: 1rem 1.6rem 1.1rem; background-color: #002368; color: #fff; border-radius: 8px;}


footer {padding: 2rem 2.5%; background-color: #161616; color:#fff; font-size: .8rem;}
.footer__nav {display: flex; justify-content: space-between; flex-wrap: nowrap; align-items: center;}
.footer__text {width: 40%;align-items: stretch; line-height: 1.8;}
.footer__menu {width: fit-content; align-items: stretch;}
.footer__menu ul {display: flex; gap: 1.4rem; justify-content: center; align-content: center; list-style: none;}

[class*=swiper]:focus {outline: none;  }

.slide-media, .thumb-media {position: relative; overflow: hidden;}
.slide-media img, .thumb-media img {position: absolute; top: 0; left: 0; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover;}

.swiper-button-prev, .swiper-button-next {display: grid; place-content: center; width: 6.4rem; height: 6.4rem; cursor: pointer; -webkit-transition: var(--transition); transition: var(--transition);}
.swiper-button-prev::before, .swiper-button-next::before {position: absolute; top: 0; right: 0; bottom: 0; left: 0; content: ""; border-radius: 50%; -webkit-box-shadow: var(--box-shadow); box-shadow: var(--box-shadow);}
.swiper-button-prev::after, .swiper-button-next::after {width: 1.2rem; height: 1.2rem; content: ""; border: solid var(--color-gray); border-width: 3px 3px 0 0;}
.swiper-button-prev::after {margin-left: 0.4rem; -webkit-transform: rotate(-135deg); transform: rotate(-135deg);}
.swiper-button-next::after {margin-right: 0.4rem; -webkit-transform: rotate(45deg); transform: rotate(45deg);}
.swiper-button-disabled {pointer-events: none; opacity: 0;}

.gallery02 {max-width: 92%; margin: 0 auto; overflow: hidden;}
.gallery02 .swiper, .gallery02 .thumb-wrapper {max-width: 1000px; margin: auto;}
.gallery02 .swiper {overflow: visible;}
.gallery02 .swiper-fade .swiper-slide-active {pointer-events: auto;}
.gallery02 .swiper-controller {position: absolute; top: 0; left: 0; width: 100%; padding-top: 67%;}
.gallery02 .swiper-button-prev, .gallery02 .swiper-button-next {position: absolute; z-index: 1; top: 0; bottom: 0; margin: auto;}
.gallery02 .swiper-button-prev {right: calc(100% + 3.2rem);}
.gallery02 .swiper-button-next {left: calc(100% + 3.2rem);}
.gallery02 .slide {display: block; overflow: hidden;}
.gallery02 .slide-media {display: block; padding-top: 67%; margin: 0 0 .8rem;}
.gallery02 .slide-media img {-o-object-fit: contain; object-fit: contain;}
.gallery02 .slide-title {font-weight: bold; line-height: 1.6; padding: 3.2rem 0;}
.gallery02 .thumb-wrapper {display: grid; grid-template-columns: repeat(10, 1fr); gap: 8px;}
.gallery02 .thumb-media {padding-top: 100%; cursor: pointer; transition: var(--transition); transition: 0.3s;}
.gallery02 .thumb-media img {transition: var(--transition); transition: 0.3s;}
.gallery02 .thumb-media-active {transform: scale(0.9); opacity: 0.3; transition: 0.3s;}
.gallery02 .thumb-media-active img {transform: scale(1.1); transition: 0.3s;}

.language-selector {position: absolute; top: 1rem; left: 0; z-index: 9; font-family: sans-serif;}
.language-selector button {font-size: .7rem; background-color: rgba(0, 0, 0, 0.5); color: #fff; border: none; padding: .4rem .5rem; border-radius: 0 4px 4px 0; cursor: pointer; transition: 0.3s;}
.language-selector button:hover {background-color: #002368; transition: 0.3s;}
.language-selector ul {width: fit-content; font-size: .7rem; list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid #ddd; border-radius: 4px; position: absolute; top: 2.2rem; left: .6rem; min-width: 5rem;}
.language-selector ul li a {display: block; padding: .4rem .6rem; text-decoration: none; color: #222; line-height: 1;}
.language-selector ul li:first-child a {padding: .5rem .6rem .4rem;}
.language-selector ul li:last-child a {padding: .4rem .6rem .5rem;}
.language-selector ul li a:hover {background-color: rgba(28, 186, 0, 0.7);}
.hidden {display: none;}

@media only screen and (max-width: 1024px) {
  .pc {display: none !important;}
  .gallery02 .swiper-button-prev::before, .gallery02 .swiper-button-next::before {background-color: rgba(0, 0, 0, 0.3); box-shadow: var(--box-shadow-dark);}
  .gallery02 .swiper-button-prev::after, .gallery02 .swiper-button-next::after {border-color: #fff;}
  .gallery02 .swiper-button-prev {right: calc(100% - 3.2rem);}
  .gallery02 .swiper-button-next {left: calc(100% - 3.2rem);}
}

@media only screen and (max-width: 599px) {
  .pc-tab {display: none !important;}
  .gallery02 .thumb-wrapper {grid-template-columns: repeat(6, 1fr);}
}

@media only screen and (min-width: 1025px) {
  .tab-sp {display: none !important;}
  .swiper-button-prev::before, .swiper-button-next::before {transition: var(--transition); transition: 0.3s;}
  .swiper-button-prev:hover::before, .swiper-button-next:hover::before {transform: scale(1.2); transition: 0.3s;}
  .gallery02 .thumb-media:hover {transform: scale(0.9); transition: 0.3s;}
  .gallery02 .thumb-media:hover img {transform: scale(1.1); transition: 0.3s;}
}

@media only screen and (min-width: 600px) {
  .sp {display: none !important;}
}


@media screen and (max-width: 768px) {
  .tab-container__menu {flex-wrap: wrap;}
  .tab-menu__item {width: 50%; flex-grow: 0;}
  .tab-container__content {padding: 2rem 0; line-height: 1.7; letter-spacing: 0;}

  .scene__box {display: block;}
  .scene__box .scene__main, .scene__box .scene__cont {width: 100%;}

  .right__cta {right: 2%;}
  
  .floor__box {display: block;}
  .floor__map {margin: 0 auto 2rem;}

  .fv__main {height: 70vh;}
  .fv__main h1 {font-size:1.5rem; letter-spacing: .1rem; line-height: 1.9;}
  .fv__main h1 span {display: block;}
  .fv__main .logo  {font-size: 1rem; top: .5rem; left: .9rem; letter-spacing: .05rem;}

  #scene h2, section h2 {font-size: 1.2rem; letter-spacing: .05rem; margin: 1rem auto 2.2rem; z-index: 2;}
  #scene {max-width: 100%; margin: 0 auto; padding: 5% 5% 8%;}
  #floor, #gallery {max-width: 90%; margin: 3.5rem auto 5rem;}
  #overview {max-width: 90%; margin: 3.5rem auto 2.5rem;}
  .gallery02 {max-width: 100%; margin: 0 auto; overflow: hidden;}

  .map__container {width: 100%; padding-bottom: 90%;}

  .appeal {padding: 3rem;}
  .appeal p {font-size: 1rem; text-align: center; line-height: 1.9;}
  .appeal p span {display: block;}

  footer {padding: 2rem 0;}
  .footer__nav {display: block; width: 90%; margin: 0 auto;}
  .footer__text {width: auto; margin: 0 0 2rem;}
  .footer__menu ul {display: block;}
  .footer__menu li {line-height: 1.9;}

  .click-point:hover {transform:translate(-50%, -50%) scale(1.0);}

  .tab-container {max-width: 100%;}

  .language-selector {top: 2.8rem;}
}

@media screen and (max-width: 480px) {
  body {font-size: .9rem; letter-spacing: 0rem; color: #222;}
  .fv__main h1 {top: unset; left: unset; transform: unset;}
  .right__cta {font-size: .9rem; right: 2.5%; padding: .7rem 1.3rem .8rem; letter-spacing: .1rem;}

  .fv__main .logo  {font-size: .8rem; top: .4rem; left: .7rem; letter-spacing: .01rem;}
  .language-selector {top: 2.4rem;}
}


