@charset "UTF-8";
/*
Theme Name : 光石
*/

*,
::before,
::after {
  /* fluid 計算式） */
  --size-root: 16;
  --clamp-slope: calc((var(--size-max) - var(--size-min)) / (var(--viewport-max) - var(--viewport-min)));
  --clamp-intercept: calc(var(--size-min) - (var(--clamp-slope) * var(--viewport-min)));
  --clamp-value: calc(var(--clamp-intercept) * (1rem / var(--size-root)) + (var(--clamp-slope) * 100vw));
  --clamp: clamp(
    calc(var(--size-min) * (1rem / var(--size-root))),
    var(--clamp-value),
    calc(var(--size-max) * (1rem / var(--size-root)))
  );
  font-size: var(--clamp);
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: var(--font-serif);
  font-optical-sizing: auto;
  font-weight:  400;
  font-style: normal;
  background: #fff;
	color: var(--color-txt);
	line-height: 1.8;
  font-feature-settings: “palt”;

  --viewport-min: 375;
  --viewport-max: 1280;
}


img {
  display: block;
	width: 100%;
	height: auto;
}

/* 電話番号a表示 */
/* @media screen and (min-width: 810.1px) {
	a[href^="tel:"] {
		pointer-events: none;
		cursor: default;
	}
} */

/* PC/SP 出し分け */
@media screen and (max-width: 810px) {
	.pc {
		display: none !important;
	}
}

@media screen and (min-width: 810.1px) {
	.sp {
		display: none !important;
	}
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 600;
	line-height: 1.3;
}

:where(p){
  --size-max: 16;
  --size-min: 16;
}
.note{
  font-size: var(--font-13);
  line-height: 1.5;
  margin-top: 1em;
}



a {
	text-decoration: none;
  color: #000;
}


/* 個別クラス */
.dib {
	display: inline-block;
}
.tac {
	text-align: center;
	margin-inline: auto;
	width: fit-content;
}

@media screen and (min-width: 810.1px) {
	.tac-pc {
		text-align: center;
	}
}
@media screen and (max-width: 810px) {
	.tac-sp {
		text-align: center;
	}
}

.tar {
	text-align: right;
	margin-left: auto;
	width: fit-content;
}
.tal {
	text-align: left;
	margin-left: auto;
	width: fit-content;
}

.disc {
	list-style-type: "・";
	padding-left: 1em;
}
.relative{
  position: relative;
}

/* ------------------
ヘッダー
------------------ */
header{
  position: fixed;
  inset: 0 0 auto 0;
  background-color: #fff;
  z-index: 200; 
}
.header-wrap{
  display: grid;
  align-items: center;
}
@media screen and (min-width: 810.1px) {
  .header-wrap{
    padding-left: var(--space-sm);
    grid-template-columns: min(142px, 9%) 1fr 24px 13.281vw;
    gap: 24px;
    height: var(--header-h);
  }
  .header-wrap .menu-out{ display: contents;}
  header nav{
    display: grid;
    grid-template-columns: 1fr auto;
    font-size: var(--font-15);
    align-items: center;
    padding-top: 8px;
  }
  header nav .menu{
    font-size: clamp(12px, 1.25vw, 16px);
    display: flex;
    justify-content: flex-end;
    gap: clamp(8px, calc(0.1em + 1.25vw), 40px);
  }

  header a.menu-btn{
    color: #fff;
    background-color: #000;
    display: grid;
    align-content: center;
    text-align: center;
    height: 75px;
    line-height: 1.4;
    transition: .3s ease;
  }
}
@media screen and (max-width: 810px) {
  header {border-bottom: 1px solid #cacaca;}
  .header-wrap{
    width: var(--width-inner);
    height: calc(var(--header-h) - 1px);
    margin-inline: auto;
    padding-block: 40px 16px;
    grid-template-columns: min(140px, 34%) auto 24px 28px;
    gap: 16px;
  }
  header nav{
    font-size: var(--font-18);
    z-index: 50;
  }
  header nav {
    position: fixed;
    width: 100vw;
    height: calc(100dvh - var(--header-h));
    right: -100%;
    top: var(--header-h);
    padding: 40px 40px;
    display: grid;
    place-content: center;
    background-color: rgba(255, 255, 255, 0.8);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);     
    overflow-y: scroll;
    z-index: 10;
    font-size: var(--font-18);
    transition: all 0.4s;
  }
  .nav-open header nav {
    right: 0;
  }
  header nav .menu{
    text-align: center;
    margin-bottom: 0.8em;
  }
  header nav .menu li{
    margin-top: 0.8em;
  }
  .menu-out{
    display: contents;
  }
  .logo{ order: 1; margin-right: 16px;}
  .menu-out .menu-btn{ order: 2; justify-self: end;}
  .menu-out > div{ order:3;}
  .nav-btn{ order: 4; justify-self: end;}
  
  header a.menu-btn{
    display: block;
    width: fit-content;
    text-align: center;
    border: 1px solid #000;
    padding-inline: 1em;
    border-radius: 2px;
    line-height: 1.6;
  }
}

.lang-switch{
  display: flex;
  justify-content: center;
}
.lang-switch li + li{ margin-left: .1em;}
.lang-switch li + li::before{
  content: "/";
  margin-right: .1em;
}
.lang-switch a{
  color: #9B9B9B;
  text-transform: uppercase;
}
.lang-switch a:hover,
.lang-switch .current-lang a{
  color: #000;
}


@media (any-hover: hover) {
  a.menu-btn:hover{
    background-color: #212121;
  }
}
.menu-btn span{
  font-size: var(--font-12);
}
.menu-reserve{
  margin-top: 2em;
}
.menu-reserve li + li{
  margin-top: 16px;
}
.menu-reserve li a{
  display: block;
  text-align: center;
  border: 1px solid #000;
  padding: .5em 4em;
  border-radius: 100vmax;
}
@media screen and (min-width: 810.1px) {
  .current a{
    position: relative;
  }

  .current a::before{
    content: "";
    position: absolute;
    top: -10px;
    left: calc(50% - 3.5px);
    display: block;
    width: 7px;
    height: 7px;
    background-color: #000;
    border-radius: 100vmax;
  }
}

/* hamburger */
header .nav-btn {
  display: none;
}
@media screen and (max-width: 810px) {
  header .nav-btn {
    display: block;
    width: 26px;
    height: 26px;
    cursor: pointer;
    position: relative;
    z-index: 50;
  }
  header .nav-btn .hamburger {
    transition: all 0.2s;
    width: 100%;
    height: 1px;
    background-color: #000;
    position: absolute;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  header .nav-btn .hamburger.line1 {
    top: calc(50% - 10px);
  }
  header .nav-btn .hamburger.line2 {
    top: 50%;
    width: 100%;
  }
  header .nav-btn .hamburger.line3 {
    top: calc(50% + 10px);
  }
  /* nav-open */
  body.nav-open{
    height: 100%;
    overflow: hidden;
  }
  .nav-open header .hamburger.line1 {
    top: 50%;
    width: 120%;
    transform: translate(-50%, -50%) rotate(35deg);
  }
  .nav-open header .hamburger.line2 {
    width: 0;
  }
  .nav-open header .hamburger.line3 {
    top: 50%;
    width: 120%;
    transform: translate(-50%, -50%) rotate(-35deg);
  }
}



/* ------------------
フッター
------------------ */
footer {
  background-color: var(--color-gray);
  color: #fff;
  padding-bottom: 1em;
}
footer .inner-narrow{
  text-align: center;
  padding: var(--space-xlg) 0;
}

#reservation,
#sobar{
  scroll-margin-top: var(--header-h);
}
.reserve p{
  --size-max: 18;
  --size-min: 16;
}
.reserve ul{
  margin-top: 1.5em;
  display: grid;
  grid-template-columns: 100%;
  gap: 20px;
}
@media screen and (min-width: 810.1px) {
  .reserve ul{
    grid-template-columns: repeat(2, 1fr);
  }
}


.ft-wrap{
  margin-top: var(--space-xlg);
}
@media screen and (min-width: 810.1px) {
  .ft-wrap{
    display: grid;
    grid-template-areas: "info map" "weblink map";
    grid-template-columns: auto 44%;
    grid-template-rows: 1fr auto;
    gap: 0 10%;
    text-align: left;
  }
  .ft-info{
    grid-area: info;
  }
  .gmap{
    grid-area: map;
  }
  .ft-web{
    grid-area: weblink;
  }
}



.ft-logo{
  margin-bottom: 2em;
}
.ft-logo img{
  width: 72px;
  height: auto;
}
.ft-wrap .gmap{
  aspect-ratio: 1;
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
}
.ft-wrap .gmap iframe{
  display: block;
  width: 100%;
  height: 100%;
}
.ft-info > p a{
  font-size: var(--font-14);
  color: #fff;
  text-decoration: underline;
}
@media (any-hover: hover) {
  .ft-info > p a:hover{
    text-decoration: none;
  }
}
@media screen and (max-width: 810px) {
  .ft-info p,
  .ft-info address{
    text-align: left;
  }
  .ft-logo{
    width: 66px;
    margin-inline: auto;
  }
  .ft-wrap .gmap{
    margin-block: 40px;
    aspect-ratio: 320 / 230;
  }
}

.ft-sns{
  display: flex;
  gap: 1em;
  margin-top: 1em;
}
.ft-sns li{
  width: 35px;
}

.ft-web{
  display: grid;
  grid-template-columns: auto 25% 20% 1fr;
  align-items: baseline;
  gap: 24px;
}
.ft-web a{
  color: #fff;
  font-family: var(--font-sans);
}

address{
  margin-top: .5em;
  font-size: var(--font-16);
  font-style: normal;
}
.copy{
  --size-max: 14;
  --size-min: 12;
  text-align: center;
}


/*------------------
 main 
 -----------------*/
/* kv */

.kv{
  position: relative;
  height: calc(100vh - var(--header-h));
  margin-top: var(--header-h);
  z-index: 100;
}
@media screen and (max-width: 810px) {
  .kv{
    height: calc(100dvh - var(--header-h));;
  }
}
.kv .kv-logo{
  position: absolute;
  left: 7.031vw;
  bottom: 100px;
  z-index: 100;
}
.kv .kv-logo > h1{
  width: min(108px, 8.4375vw);
  margin: 0 auto var(--space-sm);
  filter: drop-shadow(0 0 20px rgba(0,0,0,.8));
}
.kv-logo a{
  font-size: var(--font-18);
  display: block;
  color: #fff;
  letter-spacing: .1em;
  text-align: center;
  width: max(18.75vw, 240px);
  padding-block: .5em;
  border: 1px solid #fff;
  background-color: transparent;
  transition: background-color .3s ease;
}
@media (any-hover: hover) {
.kv-logo a:hover{
    background-color: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(3px);
  }
}
@media screen and (max-width: 810px) {
  .kv .kv-logo{
    left: 6%;
    right: 6%;
    bottom: 8.108vw;
    z-index: 100;
  }
  .kv .kv-logo > h1{
    width: min(56px, 15.135vw);
    margin: 0 auto var(--space-lg) 32px;
    filter: drop-shadow(0 0 20px rgba(0,0,0,.8));
  }
  .kv-logo a{
    width: 100%;
    padding-block: .2em;
  }
}
.kv .kv-badge{
  position: absolute;
  right: 40px;
  bottom: 40px;
  text-align: center;
  width: 160px;
  height: 160px;
  background: url(../img/badge.png) no-repeat;
  background-size: contain;
  z-index: 100;
  display: grid;
  color: #000;
  place-items: center;
  font-weight: 600;
  line-height: 1.2;
}
.kv-badge a{
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: transparent;
  opacity: 1;
  transition: all .3s ease;
}
@media (any-hover: hover) {
  .kv-badge a:hover{ opacity: .7; background-color: rgba(255, 255, 255, 0.1);}
}
.kv-badge p:first-child{
  --size-max: 21;
  --size-min: 17;
  width: fit-content;
  margin-inline: auto;
  line-height: 1;
  padding: 0 .5em .4em;
  border-bottom: 1px solid #000;
  letter-spacing: .01em;
}
.kv-badge p:first-child + p{
  --size-max: 16;
  --size-min: 12;
}
.kv-badge span{
  display: block;
  margin-top: .2em;
  --size-max: 12;
  --size-min: 11;
}
@media screen and (max-width: 810px) {
  .kv .kv-badge{
    right: 7%;
    bottom: 24.324vw;
    width: 130px;
    height: 130px;
  }
}
.kv .kv-txt{
  position: absolute;
  left: 70%;
  top: 80px;
  z-index: 100;
}
.kv .kv-txt.en{
  right: 40px;
  left: 40px;
}

.kv-txt p{
  --size-max: 22;
  --size-min: 16;
  letter-spacing: .2em;
  line-height: 2;
  color: #fff;
  text-shadow: 0 0 20px rgba(0,0,0,.8);  
}
@media screen and (max-width: 810px) {
  .kv .kv-txt{
    top: 40px;
    left: 60%;
  }
  .kv-txt p{ letter-spacing: .15em;}
 }
/* splide */
.kv .splide{
  overflow: hidden;
  height: calc(100dvh - var(--header-h));
}
.kv .splide__track,
.kv .splide__list,
.kv .splide__slide{
  height: 100%;
}
.kv .splide__slide picture{
  display: block;
  width: 100%;
  height: 100%;
}
.kv .splide__slide picture img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: 7s ease-in;
}
.kv .splide__slide.is-active picture img {
  transform: scale(1.04);
  transition-delay: 0;
}

/* サイト設計 */
.inner {
  width: var(--width-inner);
	margin-inline: auto;
}
.inner-narrow{
  width: var(--width-narrow);
	margin-inline: auto;
}
.inner.my{
  margin-block: var(--space-xlg);
}


@media screen and (min-width: 810.1px) {
  .outside--left{
    margin-inline-start: min(0px, calc((var(--width-inner-vw) - 100vw) / 2));
  }
  .outside--right{
    margin-inline-end: min(0px, calc((var(--width-inner-vw) - 100vw) / 2));
  }
}

/* タイトル周り */
.hz{
  text-align: center;
  width: fit-content;
  margin-inline: auto;
  margin-block-end: var(--space-lg);
}
.vt{
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  display: inline-block;
  white-space: nowrap;
}
.ttl--ja{
  --size-max: 32;
  --size-min: 24;
  font-weight: 600;
}
.vt .ttl--ja{
  letter-spacing: .3em;
}
.ttl--en{
  -webkit-writing-mode: horizontal-tb;
  writing-mode: horizontal-tb;
  --size-max: 16;
  --size-min: 14;
}
.hz .ttl--en{
  display: block;
}


/* 下層ページ */
@media screen and (min-width: 810.1px) {
  .wrapper{
    display: grid;
    grid-template-columns: 14% 1fr;
    align-items: start;
    position: relative;
    padding-bottom: var(--space-xxlg);
    margin-top: var(--header-h);
  }
  .wrapper.pt{
    padding-top: 130px;
  }
  .sub-ttl{
    position: sticky;
    top: calc(130px + var(--header-h)); 
  }
  .sub-ttl h1{
    position: relative;
    padding-bottom: var(--space-xlg);
  }
  .sub-ttl h1::before,
  .sub-ttl h1::after{
    content: "";
    display: block;
    position: absolute;
    top: -130px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #000;
  }
  .sub-ttl h1::before{
    height: 120px;
    width: 1px;
  }
  .sub-ttl h1::after{
    height: 40px;
    width: 2px;
    animation: subSlide 3s infinite linear;
  }
  .sub-ttl .ttl--ja{ font-weight: 500;}
  .contact-ttl{
    text-align: center;
    padding-top: var(--space-xxlg);
  }
  .single-ttl{
    display: none;
  }
}

@keyframes subSlide {
  0%{
    transform: translate(-50%, 0) scale(1, 0);
    transform-origin: 0 0;
  }
  25%{
    transform: translate(-50%, 0) scale(1, 1);
    transform-origin: 0 0;
  }
  75%{
    transform: translate(-50%, calc(120px - 40px)) scale(1, 1);
    transform-origin: 0 100%;
  }
  100%{
    transform: translate(-50%, calc(120px - 40px)) scale(1, 0);
    transform-origin: 0 100%;
  }
}
@media (max-width: 810px) {
  .wrapper{
    padding-bottom: var(--space-xlg);
  }
  .sub-ttl,
  .contact-ttl,
  .single-ttl{
    margin-top: var(--header-h);
    height: 120px;
    text-align: center;
    display: grid;
    place-items: center;
  }
  .sub-ttl h1.vt{
    writing-mode: horizontal-tb;
  }
}

.bg{
  background: url("../img/noise.png") repeat;
}
.bg.py{
  padding-block: var(--space-lg);
}
.pt-lg{
  padding-top: var(--space-lg);
}
.py-xlg{
  padding-block: var(--space-xlg);
}
.pb-xxlg{
  padding-bottom: var(--space-xxlg);
}

.thought-wrap{
  padding-block: 80px;
  display: grid;
  grid-template-columns: 100%;
  position: relative;
}
@media (max-width: 810px) {
  .thought-wrap{
    background-color: #fff;
    padding-block: 72px 0;
  }
  .thought-img{ order: 2;}
  .thought-wrap > .inner{ order: 1;}
}
@media screen and (min-width: 810.1px) {
  .thought-img{
    width: 54%;
  }
}

.thought-box{
  background-color: #fff;
  display: grid;
  justify-content: center;
  padding-block: 0 var(--space-xlg);
}
@media (min-width: 810.1px) {
  .thought-box{
    margin-top: -60px;
    z-index: 10;
    margin-right: calc(50% - 50vw);
    margin-left: 17.187vw;
    padding-block: var(--space-lg) var(--space-md);
  }
}
@media (max-width: 810px) {
  .thought-box{
    align-items: center;
  }
}


.thought-txt{
  text-align: center;
}
@media screen and (min-width: 810.1px) {
  .thought-txt{
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    text-align: left;
  }
}
.thought-txt h2{
  position: relative;
  display: inline-block;
}

@media screen and (min-width: 810.1px) {
  .thought-txt .horizon-txt{
    width: 40%;
  }
  .thought-txt h2{
    margin-block-end: 4em;
  }
  .thought-txt h2::before,
  .thought-txt h2::after{
    content: "";
    display: block;
    position: absolute;
    top: calc(-100px - 26.5vw);
    left: 50%;
    transform: translateX(-50%);
    background-color: #000;
    z-index: 50;
  }
  .thought-txt h2::before{
    height: calc(80px + 26vw);
    width: 1px;
  }
  .thought-txt h2::after{
    height: 70px;
    width: 2px;
    animation: thoughtSlide 8s infinite linear;
  }
}
@media (max-width: 810px) {
  .thought-txt .horizon-txt{
    text-align: left;
  }
  .thought-txt .vertical-txt{
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
  }
  .thought-txt h2{
    margin-inline-end: 2em;
  }
  .thought-txt h2::before{
    content: "";
    display: block;
    position: absolute;
    top: -72px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #000;
    height: 64px;
    width: 1px;
  }
}
@keyframes thoughtSlide {
  0%{
    transform: translate(-50%, 0) scale(1, 0);
    transform-origin: 0 0;
  }
  15%{
    transform: translate(-50%, 0) scale(1, 1);
    transform-origin: 0 0;
  }
  90%{
    transform: translate(-50%, calc(80px + 26vw - 70px)) scale(1, 1);
    transform-origin: 0 100%;
  }
  100%{
    transform: translate(-50%, calc(80px + 26vw - 70px)) scale(1, 0);
    transform-origin: 0 100%;
  }
}
.horizon-txt{
  writing-mode: horizontal-tb;
}
.vertical-txt{
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  text-align: start;
}
.vertical-txt p + p{
  margin-block-start: 1em;
}
@media screen and (min-width: 810.1px) {
  .vertical-txt p + p{
    margin-block-start: 2em;
  }
}
.thought-btn{
  text-align: right;
}
@media screen and (min-width: 810.1px) {
  .thought-btn{
    position: absolute;
    right: 0;
    bottom: var(--space-md);
    writing-mode: horizontal-tb;
  }
}
@media (max-width: 810px) {
  .thought-img img{
    height: 100%;
    aspect-ratio: 390 / 256;
    object-fit: cover;
    overflow: hidden;

  }
}

.concept-wrap{
  padding-block: 72px 60px;
}
@media (min-width: 810.1px){
  .concept-wrap{
    padding-block: 120px;
    position: relative;
  }
}

@media (max-width: 810px) {
  .bar{
    display: none;
  }
}
@media (min-width: 810.1px){
  .bar{
    display: block;
    position: absolute;
    top: calc(120px + 6em);
    left: calc(50% - 50vw);
    width:  calc(50vw - 50% + 12vw);
  }
  .bar::before,
  .bar::after{
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateY(-50%);
    background-color: #000;
  }
  .bar::before{
    height: 1px;
    width: 100%;
  }
  .bar::after{
    height: 2px;
    width: 10%;
    animation: hzSlide 6s infinite linear;
  }
}

@keyframes hzSlide {
  0%{
    transform: translate(0, -50%) scale(0, 1);
    transform-origin: 0 0;
  }
  10%{
    transform: translate(0, -50%) scale(1, 1);
    transform-origin: 0 0;
  }
  90%{
    transform: translate(900%, -50%) scale(1, 1);
    transform-origin: 100% 0;
  }
  100%{
    transform: translate(900%, -50%) scale(0, 1);
    transform-origin: 100% 0;
  }
}


@media (min-width: 810.1px) {
  .concept{
    display: grid;
    grid-template-columns: auto 55%;
    gap: 128px;
    margin-right: calc(50% - 50vw);
  }
}
.concept h2{
  position: relative;
  margin-inline-end: 2.5em;
}
@media (max-width: 810px) {
  .concept h2::before{
    content: "";
    display: block;
    position: absolute;
    top: -72px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #000;
    height: 64px;
    width: 1px;
  }
}
@media (max-width: 810px) {
  .concept-img{
    margin-top: 60px;
    margin-right: calc(50% - 50vw);
  }
}

@media (min-width: 810.1px) {
  .concept-thumb{
    width: 50.390vw;
    display: grid;
    grid-template-columns: 44% 1fr;
    gap: var(--space-lg);
    margin-top: -40px;
  }
  .concept-thumb > div:last-child{
    margin-top: 100px;
  }
}
@media (min-width: 810.1px) and (max-width: 1024px){
  .concept-thumb{
    margin-left: auto;
  }
}
@media (max-width: 810px) {
  .concept-thumb{
    width: 100vw;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: start;
    gap: var(--space-lg);
    margin: 32px calc(50% - 50vw) 0;
  }
  .concept-thumb > div:first-child{
    margin-top: 40px;
  }
  .concept-thumb > div:first-child img{
    height: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    overflow: hidden;
  }
  .concept-thumb > div:last-child{
    overflow: hidden;
  }
  .concept-thumb > div:last-child img{
    height: 100%;
    aspect-ratio: 176 / 135;
    object-fit: cover;
    overflow: hidden;
    transform: scale(1.12);
  }
}


.course{
  display: grid;
  grid-template-columns: 100%;
  gap: var(--space-xlg);
  margin-bottom: 16px;
}
@media (max-width: 810px) {
  .course-txt{
    padding-top: 72px;
  }
  .course-img{
    margin-inline: calc(50% - 50vw);
  }
  .course-img img{
    width: 100%;
    aspect-ratio: 390 / 286;
    object-fit: cover;
    overflow: hidden;
  } 
}
@media (min-width: 810.1px){
  .course{
    display: grid;
    grid-template-columns: 54% auto;
    align-items: stretch;
    margin-left: calc(50% - 50vw);
    margin-bottom: var(--space-xlg);
  }
  .course-txt{
    order: 2;
    padding-top: 180px;
  }
  .course-img{
    order: 1;
  }
  .course-img img{
    object-fit: cover;
    height: 100%;
    overflow: hidden;
  }
}

.course h2{
  position: relative;
  margin-inline-end: 2.5em;
}

@media (max-width: 810px) {
  .course h2::before{
    content: "";
    display: block;
    position: absolute;
    top: -72px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #000;
    height: 64px;
    width: 1px;
  }
}
@media (min-width: 810.1px){
  .course h2::before,
  .course h2::after{
    content: "";
    display: block;
    position: absolute;
    top: -180px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #000;
  }
  .course h2::before{
    height: 170px;
    width: 1px;
  }
  .course h2::after{
    height: 60px;
    width: 2px;
    animation: vtSlide 3s infinite linear;
  }
}
@keyframes vtSlide {
  0%{
    transform: translate(-50%, 0) scale(1, 0);
    transform-origin: 0 0;
  }
  25%{
    transform: translate(-50%, 0) scale(1, 1);
    transform-origin: 0 0;
  }
  75%{
    transform: translate(-50%, calc(170px - 60px)) scale(1, 1);
    transform-origin: 0 100%;
  }
  100%{
    transform: translate(-50%, calc(170px - 60px)) scale(1, 0);
    transform-origin: 0 100%;
  }
}

.carousel{
  overflow: hidden;
  width: 100%;
  border-bottom: 1px solid #fff;
}
.carousel-track {
  display: flex;
  animation: scroll-left 40s linear infinite;
}
.slide {
  width: 20%;
  min-width: 20%; /* 画面幅の1/4 → PCで4枚表示 */
  flex-shrink: 0;
  margin-left: 1px;
}
@media (max-width: 810px) {
  .slide {
    width: calc(100% / 3);
    min-width: calc(100% / 3);
  }
}
/* アニメーション */
@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* 新着情報 */
@media (min-width: 810.1px){
  .news{
    display: grid;
    grid-template-columns: auto 1fr ;
    gap: var(--space-lg);
    align-items: center;
  }
}
.news h2{
  display: block;
}
@media (max-width: 810px) {
  .news h2.vt{
    text-align: center;
    writing-mode: horizontal-tb;
    margin-bottom: 1em;
  }
  .news h2.vt .ttl--ja{
    letter-spacing: .1em;
  }
  .news h2 span{
    display: block;
  }
}
.news-list{
  --circle: 40px;
  --arrow: 7px;
  --circle-gap: 10px;
  margin-bottom: var(--space-sm);
}
@media (max-width: 810px) {
  .news-list{
    --circle: 32px;
    --arrow: 6px;
    --circle-gap: 0px;
  }
}
.news-list li{
  font-size: var(--font-18);
  border-bottom: 1px solid #000;
}
@media (max-width: 810px) {
  .news-list li{
    font-size: var(--font-16);
  }
}
.news-list li a{
  display: block;
  padding-block: var(--space-sm);
  position: relative;
}
@media (max-width: 810px) {
  .news-list li a{
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: calc(var(--circle) + 1em);
  }
}
.news-list li a::before{
  content: "";
  position: absolute;
  top: 50%;
  right: var(--circle-gap);
  display: block;
  width: var(--circle);
  height: var(--circle);
  border-radius: 100vmax;
  background-color: transparent;
  border: 1px solid var(--color-gray);
  transform: translateY(-50%);
  transition: background-color .3s ease;
}
.news-list li a:hover::before{
  background-color: var(--color-gray);
}
.news-list li a::after{
  content: "";
  position: absolute;
  right: calc(var(--circle-gap) + (var(--circle) - var(--arrow)) / 2 + 1px);
  top: 50%;
  display: block;
  width: var(--arrow);
  height: var(--arrow);
  border-right: 1px solid var(--color-gray);
  border-top: 1px solid var(--color-gray);
  transform: translateY(-50%) rotate(45deg);
  transition: .3s ease;
}
.news-list li a:hover::after{
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
}
.news-list .date{
  display: block;
}
@media (min-width: 810.1px){
  .news-list .date{
    display: inline-block;
    margin-right: 2em;
  }
}
/* ご利用について */
@media (max-width: 810px){
  .usage{
    background: #000;
  }
}
@media (min-width: 810.1px){
  .usage{
    background: url(../img/top_usage.jpg) no-repeat center center;
    background-size: cover;
    position: relative;
  }
  .usage::before{
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    height: 100%;
    background-color: rgba(0,0,0,0.3);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    z-index: 0;
  }
}
.usage-wrap{
  color: #fff;
  padding-block: var(--space-xlg);
}
@media (min-width: 810.1px){
  .usage-wrap{
    position: relative;
    z-index: 1;
    width: 45%;
  }
}
/* アクセス */
.access-wrap{
  display: grid;
  grid-template-columns: 100%;
  gap: var(--space-md);
}
@media (min-width: 810.1px){
  .access-wrap{
    display: grid;
    grid-template-columns:auto 1fr;
  }
}
.access-wrap h3{
  font-size: var(--font-20);
  font-weight: 600;
}

.insta-list{
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 16px;
  margin-bottom: var(--space-lg);
}
@media (max-width: 810px){
  .insta-list{
    gap: 3px;
  }
}

.recruit{
  position: relative;
  width: 100%;
  overflow: hidden;
}
.recruit-bg {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: var(--width-narrow);
  aspect-ratio: 1;
  background: #fff;
  border-radius: 100vmax;
  clip-path: inset(0 0 20% 0);
  z-index: 0;
}
@media screen and (max-width: 810px) {
  .recruit-bg {
    width: 160%;
    aspect-ratio: 1;
    background: #fff;
    border-radius: 100vmax;
    clip-path: inset(0 0 20% 0);
    z-index: 0;
  }
}
.recruit-wrap{
  position: relative;
  text-align: center;
  z-index: 1;
  padding-block: var(--space-xlg);
  padding-inline: 5%;
}
.recruit-wrap p{
  --size-max: 18;
  --size-min: 16;
}

/* ===================
button
=================== */
.link-txt{
  display: inline-block;
  text-decoration: underline;
}
@media (any-hover: hover) {
  .link-txt:hover{
    text-decoration: none;
  }
}
.link-next{
  --size-max: 24;
  --size-min: 18;
  display: block;
  width: min(460px, 42.592vw);
  margin-left: auto;
  margin-top: var(--space-lg);
  position: relative;
}
@media screen and (max-width: 810px) {
  .link-next{
    width: 75%;
  }
}
.link-next::before{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transform-origin: left;
  transition: width .3s ease;
}
.link-next::after{
  content: "";
  position: absolute;
  left: 100%;
  bottom: 1px;
  display: block;
  width: 10px;
  height: 1px;
  background: #000;
  transform: rotate(-145deg);
  transform-origin: bottom left;
  transition: left .3s ease;
}
@media (any-hover: hover) {
  .link-next:hover::before{
    width: 103%;
  }
  .link-next:hover::after{
    left: 103%;
  }
}


.btn-more{
  display: inline-block;
  position: relative;
  padding: .5em 2em;
  margin-block: 1em;
}
.btn-more::before,
.btn-more::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  height: 1px;
  background: var(--color-gray);
}
.btn-more::after{
  transform: rotate(-10deg);
  transform-origin: center;
  transition: transform .3s ease;
}
@media (any-hover: hover) {
  .btn-more:hover::after{
    transform: rotate(0deg);
  }
}

.btn-bdr{
  display: inline-block;
  color: var(--color-gray);
  background-color: #fff;
  border: 1px solid var(--color-gray);
  padding: 0.5em 4em;
  margin-top: 2em;
  transition: .3s ease;
}
@media (any-hover: hover) {
  .btn-bdr:hover{
    background-color: #EAE6E3;
  }
}
.btn-blk{
  font-size: var(--font-18);
  display: block;
  color: #fff;
  text-align: center;
  background-color: #000;
  border: 1px solid #666;
  padding-block: 0.5em;
  margin-top: 2em;
  transition: .3s ease;
}
@media (any-hover: hover) {
  .btn-blk:hover{
    background-color: #212121;
  }
}
.btn-reserve{
  --size-max: 20;
  --size-min: 18;
  display: block;
  color: #fff;
  border: 1px solid #999;
  text-align: center;
  padding-block: 1em;
  transition: background-color .3s ease;
}
@media screen and (max-width: 810px) {
  .btn-reserve{
    padding-block: 0.5em;
  }
}
@media (any-hover: hover) {
  .btn-reserve:hover{
    background-color: #2E2A28;
  }
}

.btn-insta{
  --size-max: 20;
  --size-min: 18;
  font-weight: 600;
  letter-spacing: .1em;
  display: block;
  text-align: center;
  background: linear-gradient(90deg, #FF505D 0%, #FF3D7A 40%, #E12BB8 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  border: 1px solid;  
  border-image: conic-gradient(#FF308E, #E235A9, #9431DC, #FF693A, #FA21A3, #FF308E) 1;
  padding-block: .8em;
  opacity: 1;
  transition: opacity .3s ease;
}
@media screen and (min-width: 810.1px) {
  .btn-insta{
    width: 50%;
    padding-block: 1.2em;
    margin-inline: auto;
  }
}
@media (any-hover: hover) {
  .btn-insta:hover{
    opacity: .7;
  }
}
.btn-insta span{
  display: inline-block;
  width: 24px;
  vertical-align: middle;
  margin-right: 1em;
}

.btn-entry{
  font-size: var(--font-20);
  font-weight: 600;
  display: block;
  width: 50%;
  color: #fff;
  text-align: center;
  background-color: #E77864;
  padding-block: 0.8em;
  margin-top: var(--space-xlg);
  margin-inline: auto;
  border-radius: 100vmax;
  transition: background-color .3s ease;
}
@media screen and (max-width: 810px) {
  .btn-entry{
    width: 80%;
  }
}
@media (any-hover: hover) {
  .btn-entry:hover{
    background-color: #D34D35;
  }
}

/* ===================
下層ページ
=================== */
.sub-main{
  position: relative;
  --text-posi: 3em;
}
.sub-main.sake,
.sub-main.soba{
  margin-top: var(--space-lg);
}
@media screen and (max-width: 810px) {
  .sub-main{
    margin-inline: calc(50% - 50vw);
    --text-posi: 1.8em;
  }
}
.sub-main .sub-txt{
  position: absolute;
  left: var(--text-posi);
  right: var(--text-posi);
  bottom: var(--text-posi);
  color: #fff;
}
@media screen and (min-width: 810.1px) {
  .sub-main.sake .sub-txt,
  .sub-main.soba .sub-txt{
    top: var(--text-posi);
  }
}
@media screen and (max-width: 810px) {
  .sub-main .sub-txt{
    top: var(--text-posi);
  }
}

.sub-main .sub-sobar{
  position: absolute;
  inset: auto 0 0 0;
  color: #fff;
  line-height: 1.4;
}
@media screen and (min-width: 810.1px) and (max-width: 1120px) {
  .sub-main .sub-sobar{
    position: relative;
    background-color: rgb(146,130,113);
    padding: 16px 32px;
  }
}
@media screen and (min-width: 1120.1px){
    .sub-main .sub-sobar{
      padding: 32px;
      background: linear-gradient(90deg, rgba(146,130,113,1) 0%, rgba(146,130,113,1) 50%, rgba(146,130,113,0) 60%);
    }
}
@media screen and (min-width: 810.1px) {
  .sub-main .sub-sobar{
    display: grid;
    grid-template-columns: 100px auto;
    align-items: center;
    gap: 1em;
  }
}
@media screen and (max-width: 810px) {
  .sub-main .sub-sobar{
    right: 0;
    padding: 24px;
  }
}
.sobar-badge{
  background: #E6A158;
  aspect-ratio: 1;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  justify-content: center;
  font-size: var(--font-14);
  width: 100px;
}
@media screen and (max-width: 810px) {
  .sobar-badge{
    margin-bottom: 1em;
  }
}

.sobar-badge span{
  display: block;
  font-size: var(--font-20);
  font-weight: 700;
  letter-spacing: .14em;
}
.sobar-first > p:first-child{
  color: #FFF397;
  margin-bottom: .5em;
  font-weight: 700;
}
@media screen and (min-width: 810.1px) {
  .sobar-first > p:first-child{
    letter-spacing: .14em;
  }
}
@media screen and (max-width: 810px) {
  .sobar-first{ text-align: center;}
}
.sobar-first p span{
  display: block;
  --size-max: 26;
  --size-min: 24;
}
.sobar-first > p:last-child{
  font-size: var(--font-14);
}
.sub-main.soba .sub-txt{
  color: var(--color-gray);
}

.sub-main h2{
  --size-max: 28;
  --size-min: 24;
  margin-bottom: .5em;
}

.sobar-org{
  position: relative;
  margin-bottom: var(--space-xlg);
}
.sobar-org picture{
  overflow: hidden;
  border-radius: 16px;
}
.org-txt{
  position: absolute;
  top: 40px;
  left: var(--space-lg);
  color: #fff;
}
.org-txt h3{ font-size: var(--font-24); margin-bottom: 1em;}

/*　ご挨拶　*/
.msg hgroup{
  margin-bottom: 2em;
  font-weight: 600;
}
.msg h2{
  font-size: var(--font-30);
}
.msg p{
  line-height: 2.4;
}
@media screen and (min-width: 810.1px) {
  .msg-img{
    width: 40%;
    float: right;
    margin: 0 var(--space-sm) var(--space-sm) var(--space-sm);
  }
}
@media screen and (max-width: 810px) {
  .msg{ margin-top: 1em;}
}
.msg-history{
  margin-top: var(--space-xlg);
}
@media screen and (min-width: 810.1px) {
  .msg-history{
    display: grid;
    grid-template-columns: 22% 1fr;
    gap: var(--space-lg);
  }
}
@media screen and (max-width: 810px) {
  .msg-history > div:has(img){
    width: 48%;
    margin-inline: auto;
    margin-bottom: 40px;
  }
}
.msg-info h3{
  display: block;
  font-size: var(--font-20);
  font-weight: 600;
  margin-bottom: .5em;
}
.msg-info{
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.msg-info dl{
  display: grid;
  grid-template-columns: 5em 1fr;
  gap: .2em 1em;
}
@media screen and (max-width: 810px) {
  .msg-info dl{
    display: grid;
    grid-template-columns: 100%;
  }
  .msg-info dl dd{
    margin-bottom: 16px;
    line-height: 1.4;
  }
}
.msg-info .msg-btn{
  margin-top: auto;
}

/*　光石のこだわり　*/
.concept-list{
  margin-top: var(--space-xxlg);
}
.concept-list li{
  margin-bottom: var(--space-xlg);
  display: grid;
  gap: var(--space-sm);
  align-items: start;
  align-content: start;
}
.concept-list li:nth-child(2n+1){
  grid-template-areas: "thumb sozai" "thumb explanation";
  grid-template-columns: 55% 1fr;
  grid-template-rows: auto 1fr;
}
.concept-list li:nth-child(2n){
  grid-template-areas: "sozai thumb" "explanation thumb";
  grid-template-columns: 30% 1fr;
  grid-template-rows: auto 1fr;
}
@media screen and (max-width: 810px) {
  .concept-list li{
    margin-bottom: var(--space-sm);
  }
  .concept-list li + li{
    border-top: 1px solid #7A7A7A;
    padding-top: var(--space-sm);
  }
  .concept-list li:nth-child(2n+1){
    grid-template-areas: "thumb sozai" "explanation explanation";
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: 0;
  }
  .concept-list li:nth-child(2n){
    grid-template-areas: "sozai thumb" "explanation explanation";
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: 0;
  }
}
.concept-list li > div{
  grid-area: thumb;
}
@media screen and (max-width: 810px) {
  .concept-list li > div img{
    object-fit: cover;
    aspect-ratio: 1;
    overflow: hidden;
  }
}
.concept-list li > p{
  grid-area: explanation;
}
.concept-list li > h2{
  grid-area: sozai;
  --size-max: 36;
  --size-min: 26;
  font-weight: 600;
  letter-spacing: 0.14em;
}
.concept-list li > h2 span{
  --size-max: 16;
  --size-min: 14;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 810.1px) {
  .concept-list li > h2 span{
    display: inline-block;
    margin-left: 1em;
  }
}
@media screen and (max-width: 810px) {
  .concept-list li > h2{
    text-align: center;
    align-self: center;
  }
  .concept-list li > h2 span{
    display: block;
    margin-top: 1em;
  }
}

/*　お料理とお酒　*/
.course-plan{
  margin-block: var(--space-xlg) var(--space-lg);
}
@media screen and (min-width: 810.1px) {
  .course-plan{
    padding-left: var(--space-lg);
  }
}
.course-plan hgroup{
  margin-bottom: var(--space-sm);
}
.course-plan h3{
  --size-max: 38;
  --size-min: 36;
  font-weight: 500;
}
.corse-plan span{
  display: inline-block;
  padding-left: .2em;
}
.course-plan h3 .yen{
  font-size: .6em;
}
.course-plan h3 .yen + span{
  font-size: .8em;
  vertical-align: bottom;
}
.course-plan hgroup p{
  font-size: var(--font-12);
}
.course-menu{
  margin-top: var(--space-xlg);
}
@media screen and (min-width: 810.1px) {
  .course-menu{
    padding-left: var(--space-xlg);
  }
}

.menu-box{
  padding: var(--space-xlg) var(--space-lg) var(--space-lg);
  background: #fff;
}
@media screen and (max-width: 810px) {
  .menu-box{
    margin-inline: calc(50% - 50vw);
  }
}
.menu-list{
  width: fit-content;
  margin-inline: auto;
  display: flex;
  flex-direction: row-reverse;
  gap: 1.5em;
}
.menu-list li:last-child{
  margin-top: auto;
  margin-bottom: -40px;
  margin-right: 16px;
  width: 44px;
}
@media screen and (max-width: 810px) {
  .menu-list{
    gap: 1.2em;
  }
  .menu-list.drop{
    flex-wrap: wrap;
    gap: 1.5em;
  }
  .menu-list li:last-child{
    margin-right: -40px;
    width: 32px;
  }
}

.gallery{
  display: grid;
  margin-top: var(--space-xlg);
}
.gallery img{
  object-fit: cover;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.c-1{ grid-area: img_1; }
.c-2{ grid-area: img_2; }
.c-3{ grid-area: img_3; }
.c-4{ grid-area: img_4; }
.c-5{ grid-area: img_5; }
.c-6{ grid-area: img_6; }
.c-7{ grid-area: img_7; }

@media screen and (min-width: 810.1px) {
  .gallery{
    grid-template-columns: 1fr 1fr 1fr 29%;
    grid-template-rows: 1fr 1fr auto;
    grid-template-areas:
      "img_1 img_1 img_2 img_5"
      "img_1 img_1 img_3 img_5"
      "img_7 img_6 img_6 img_4";
    gap: min(16px, 1.25vw);  
  }
}
@media (max-width: 810px){
  .gallery{
    grid-template-columns: 1fr 30% 1fr;
    grid-template-areas:
      "img_1 img_1 img_2"
      "img_1 img_1 img_3"
      "img_4 img_5 img_5"
      "img_6 img_6 img_7";
    gap: min(8px, 2.16vw); 
  }
  .c-5{
    aspect-ratio: 2 / 1;
  }
}


.menu-price{
  display: grid;
  grid-template-columns: 1fr max-content;
  column-gap: 1em;
  row-gap: 1.5em;
  align-items: center; /* baselineでもOK */
  margin-bottom: var(--space-lg);
  --size-max: 18;
  --size-min: 16;
  font-weight: 600;
}
.menu-price dt{
  grid-column: 1;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 1em;
  align-items: center;

  grid-auto-flow: column;

  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.menu-price dt::after{
  content: "";
  height: 1px;
  background: currentColor;
  opacity: .5;
}
.menu-price dd{ grid-column: 2; }
.menu-price + h4{
  margin-bottom: 1em;
  font-weight: 600;
  --size-max: 18;
  --size-min: 16;
}

p.sobar-msg{
  text-align: center;
  font-size: var(--font-24);
  font-weight: 600;
}
@media screen and (max-width: 810px) {
  p.sobar-msg{
    font-size: var(--font-20);
  }
}
.sobar-txt{
  margin-block: 2em var(--space-lg);
}
@media screen and (min-width: 810.1px) {
  .sobar-txt{
    width: 80%;
    margin-inline: auto;
  }
}
.sobar-txt a{
  margin-top: 1.5em;
  display: block;
  width: fit-content;
  margin-left: auto;
  color: var(--color-gray);
}
@media screen and (max-width: 810px) {
  .sobar-txt a{
    margin-inline: auto;
  }
}
/*　ご利用について　*/
.page-cont h2{
  font-size: var(--font-22);
  color: #A6926D;
  margin-bottom: 1em;
  letter-spacing: .1em;
}
@media screen and (max-width: 810px) {
  .page-cont h2{
    text-align: center;
  }
}
.page-cont section{
  margin-top: var(--space-xxlg);
}
@media screen and (min-width: 810.1px) {
  .page-cont.usage-cont section{
    padding-left: var(--space-lg);
  }
}

.usage-info{
  margin-top: 2.5em;
  display: grid;
  grid-template-columns: 6em 1fr;
  gap: 2.5em 2em;
  line-height: 1.4;
}
@media screen and (max-width: 810px) {
  .usage-info{
    gap: 2em 1.5em;
  }
}
.usage-voice{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .5em;
  margin-top: 1em;
  align-items: stretch;
}
@media screen and (max-width: 810px) {
  .usage-voice{
    grid-template-columns: 100%;
    gap: 1em;
    width: 80%;
    margin-inline: auto;
  }
  .usage-voice img{
    height: 1em;
    width: auto;
    margin-inline: auto;
  }
}
.usage-voice a{
  display: block;
  text-align: center;
  /* align-content: center; */
  padding: 1em 2em;
  background-color: #fff;
  border-radius: 100vmax;
  line-height: 1;
  transition: background-color .3s ease;
}
@media (any-hover: hover) {
  .usage-voice a:hover{
    background-color: #EAE6E3;;
  }
}
.usage-reserve{
  display: flex;
  gap: 1em;
  margin-top: var(--space-md);
}
@media screen and (max-width: 810px) {
  .usage-reserve{
    flex-direction: column;
    width: fit-content;
    margin-inline: auto;
  }
  .usage-reserve a{
    display: block;
    width: 100%;
    text-align: center;
  }
}
.usage-reserve a{
  display: inline-block;
  color: var(--color-gray);
  padding: .7em 3.5em;
  border: 1px solid var(--color-gray);
  border-radius: 100vmax;
  letter-spacing: .1em;
  transition: .3s ease;
}
@media (any-hover: hover) {
  .usage-reserve a:hover{
    background-color: #EAE6E3;
  }
}
.usage-access{
  display: grid;
  grid-template-columns: auto auto;
  margin-top: var(--space-sm);
  gap: 4em;
  width: 80%;
}
@media screen and (max-width: 810px) {
  .usage-access{
    grid-template-columns: 1fr;
    gap: 1em;
    width: 100%;
  }
}
/*　採用情報　*/
.recruit-txt{
  margin-top: var(--space-xlg);
  font-size: var(--font-20);
  text-align: center;
  /* width: fit-content;
  margin-inline: auto; */
}
.recruit-txt .vertical-txt{
  display: inline-block;
}
.recruit-txt p{
  font-size: var(--font-20);
  line-height: 3;
  letter-spacing: .2em;
}
@media screen and (max-width: 810px) {
  .recruit-txt p{
    font-size: min(var(--font-17), 4.594vw);
    line-height: 2;
  }
}
@media screen and (min-width: 810.1px) {
  .recruit-msg{
    display: grid;
    grid-template-columns: 35% auto;
    gap: var(--space-md);
  }
}
@media screen and (max-width: 810px) {
  .recruit-msg > div:has(img){
    margin-bottom: var(--space-lg);
  }
}
.requirements{
  display: grid;
}
.requirements dt{
  background: #dedede;
}
.requirements dd{
  background: #fff;
}
@media screen and (min-width: 810.1px) {
  .requirements{
    display: grid;
    grid-template-columns: max(24%, 11em) auto;
    font-size: var(--font-14);
  }
  .requirements dt,
  .requirements dd{
    border-bottom: 1px solid #7A7A7A;
    padding: 2em;
  }
  .requirements dt{
    display: grid;
    align-content: center;
  }
  .requirements .nobdr{
    border-bottom: none;
  }
}
@media screen and (max-width: 810px) {
  .requirements dt{
    padding: .5em 1em;
  }
  .requirements dd{
    padding: 1em;
  }
}
.recruit-list{
  --size-max: 18;
  --size-min: 16;
  margin-bottom: var(--space-sm);
  font-weight: 500;
}
.recruit-list li{
  margin-top: .5em;
}


/*　プライバシーポリシー　*/
.privacy{ margin-top: var(--space-lg);}
.privacy h2{ 
  --size-max: 24;
  --size-min: 20;
  margin-block: var(--space-lg) 1em;
}
.privacy p{ margin-bottom: 1em;}

.privacy h3{
  font-size: var(--font-18);
  margin-block: 1.5em .5em;
}
.privacy a{
  text-decoration: underline;
}
.privacy li{ margin-bottom: .5em;}

/*　ニュース一覧　*/
@media screen and (min-width: 810.1px) {
  .archive{
    margin-top: var(--space-xxlg);
  }
}
.pagenation{
  margin-top: var(--space-lg);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
}
/* ===================
animation
=================== */
.fade > *{
  opacity: 0;
  transform: translateY(40px);
  filter: blur(5px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out, filter 0.6s ease-out;
}
.fade > *.inview{
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

.fade-up{
  opacity: 0;
  transform: translateY(40px);
  filter: blur(5px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out, filter 0.6s ease-out;
}
.fade-up.inview{
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

.blur {
  opacity: 0;
  filter: blur(10px);
  transition: opacity 0.6s ease-out, filter 0.6s ease-out;
  backface-visibility: hidden;
  transform: translateZ(0);
}
.blur.inview {
  opacity: 1;
  filter: blur(0);
}

/* ===================
input
=================== */
.contact-ttl + p{
  text-align: center;
  margin-top: var(--space-lg);
}
.contact-ttl + p a{ text-decoration: underline;}
.contact-ttl + p a:hover{ text-decoration: none;}

.c-form {
  width: min(794px, 100%);
	margin-inline: auto;
  border-top: 1px solid #7A7A7A;
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
}
.c-form div + div{
	margin-top: 2em;
}
legend > span,
label > span{
  display: inline;
  margin-left: .5em;
}
span.wpcf7-list-item{
  display: block;
  margin: 0;
}
span[data-name="inquiry"] {
  margin-bottom: 3em;
}

input[type=text],
input[type=email],
input[type=password],
input[type=tel],
input[type=date],
input[type=number],
textarea,
select {
  vertical-align: middle;
  width: 100%;
  max-width: 100%;
  padding: 1em;
  color: #555;
  background-color: #fff;
  text-align: left;
  border: 0.5px solid #909090;
  margin-block: 0.5em;
}

textarea {
	resize: vertical;
	min-height: 14em;
	field-sizing: content;
}

input[type=radio] {
	position: relative;
	width: 22px;
	height: 22px;
	border: 2px solid #949494;
  background-color: #fff;
	border-radius: 50%;
	vertical-align: -5px;
	margin-right: 0.5em;
}
input[type=radio]:checked{
  border: 2px solid #B9191E;
}
input[type=radio]:checked:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #B9191E;
}

input[type=checkbox] {
  position: relative;
  width: 1em;
  height: 1em;
  border-radius: 2px;
  border: 0.5px solid var(--color-gray);
  margin-right: 0.2em;
  display: inline-block;
}

input[type="checkbox"]:checked:before {
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(50deg);
  width: 7px;
  height: 12px;
  border-right: 2px solid #B9191E;
  border-bottom: 2px solid #B9191E;
  content: '';
}

input[type=submit] {
  display: block;
  font-family: inherit;
  width: 50%;
  margin: 0 auto 0;
  background: #000;
  color: #fff;
  padding: .8em 0;
  cursor: pointer;
  border: none;
  border-radius: 100vmax;
  font-size: var(--font-20);
  font-weight: bold;
  transition: .3s ease;
}
@media (any-hover: hover) {
  input[type=submit]:hover{
    background-color: #696969;
  }
}
@media screen and (max-width: 810px) {
  input[type=submit] {
    width: 80%;
  }
}

::placeholder {
  color: #ccc;
}

.checkbox-wrapper {
  width: fit-content;
  margin-inline: auto;
  margin-bottom: var(--space-sm);
}
.checkbox-wrapper a{ text-decoration: underline;}
@media (any-hover: hover) {
  .checkbox-wrapper a:hover{ text-decoration: none;}
}

.visually-hidden { 
  position: absolute; 
  width: 1px; 
  height: 1px; 
  padding: 0; 
  margin: -1px; 
  overflow: hidden; 
  clip: rect(0, 0, 0, 0); 
  white-space: nowrap; 
  border: 0; 
}


/*------------------
 single
-----------------*/
@media screen and (min-width: 810.1px) {
  article > p{
    font-size: var(--font-18);
    line-height: 2.5;
  }
}
.article-ttl{
  padding-bottom: 1em;
  border-bottom: 1px solid #A6926D;
  margin-bottom: var(--space-lg);
}
.article-ttl h2{
  --size-max: 26;
  --size-min: 22;
}
.article-ttl p{
  margin-top: .5em;
  font-size: var(--font-18);
}
.page-nav{
  display: flex;
  justify-content: center;
  margin-top: var(--space-lg);
}
.page-nav a{
  color: #000;
}
.page-nav span{
  display: block;
}
.page-nav span a{
  display: inline-block;
  padding: 0 1em;
}
.page-nav span.prev a{
  border-right: 1px solid var(--color-gray);
}
.page-nav span.next a{
  border-left: 1px solid var(--color-gray);
}
/*------------------
404
 -----------------*/
.notfound{
  text-align: center;
  padding-block: var(--space-xxlg) var(--space-xlg);
}
.notfound > p:first-child{
  font-size: var(--font-26);
  font-weight: 600;
}
@media screen and (max-width: 810px) {
  .notfound{
    padding-block: 160px var(--space-xlg);
  }
  .notfound > p:first-child{
    font-size: var(--font-20);
    font-weight: 600;
  }
}
.notfound hgroup h1{
  --size-max: 128;
  --size-min: 90;
}
.notfound hgroup h2{
  --size-max: 40;
  --size-min: 28;
  color: #B9191E;
}
.notfound hgroup + p{
  margin-top: 2em;
  font-size: var(--font-18);
}

/*------------------
breadcrumbs
 -----------------*/
.breadcrumbs{
  position: absolute;
  top: -1000px;
  left: -1000px;
}
/*



