@charset "UTF-8";/*==========================================mainViewのスタイル（初期設定 最大：767px）===========================================*/.mainView {  position: relative;  background-attachment: fixed; /* 背景を固定 */}.mainView::after {  content: "";  position: fixed;  top: 0;  left: 0;  z-index: -9;  width: 100%;  height: 100vh;  pointer-events: none;  background:    linear-gradient(      to bottom,      rgba(135, 50, 150, 0.18) 0%,      rgba(95, 30, 115, 0.16) 24%,      rgba(68, 18, 85, 0.22) 55%,      rgba(38, 6, 50, 0.32) 100%    );}.mainView:before {  content: "";  display: block;  position: fixed;  top: 0;  left: 0;  z-index: -10;  width: 100%;  height: 100vh;  background-image: url("../img/bg-body-sp.webp");  background-size: cover;  background-repeat: no-repeat;  background-position: center center;  -webkit-box-sizing: border-box;  -moz-box-sizing: border-box;  box-sizing: border-box;}.bg-slider {  width: 100vw;  height: 100vh;  background-position: center center;  background-size: cover;  display: flex;  align-items: center;  justify-content: center;  position: relative;  z-index: 100;}/* -----メイン画像ロゴ----- */.bg-slider .pc {  display: none;}/* -----共通----- */.subtitle1, .subtitle2 {  padding-bottom: 0.5em;}.subtitle1 img, .subtitle2 img {  width: 95%;  height: auto;}img {  border-radius: 5px;}.shadow { box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); /* アルファ値を 0.5 に設定 */}/* -----accent（クーポン）----- */.accent {  width: 95%;  margin-left: auto;  margin-right: auto;  text-align: center;}.accent img {  width: 90%;  border-radius: 5px;  max-width: 806px;  margin-top: 1em;  margin-bottom: 1em;}/* -----memo---- */.memo {  width: 90%;  margin-left: auto;  margin-right: auto;  border: thin solid #FECA4E;  padding: 10px;  background-color: hsla(0, 0%, 100%, 0.75);  text-align: center;}.memo h3 img {  max-width: 26px;  margin-bottom: 5px;}.memo p {  text-align: justify;}.memo dl {  text-align: left;  margin-left: 5px;  margin-right: 5px;  margin-top: 1em;  margin-bottom: 1em;}.memo dl dt {  background-color: #000000;  padding: 5px;  color: #FFFFFF;  margin-bottom: 0.5em;}.memo dl dd {  margin-bottom: 0.5em;}/*==========================================greetingのスタイル（初期設定 最大：767px）===========================================*/#greeting {  margin-top: 7.5em;  margin-bottom: 3em;}#greeting .greeting-inner {    width: 95%;    margin-left: auto;    margin-right: auto;    padding: 1.5em 16px 2em;    border-radius: 12px;    background: rgba(45, 15, 55, 0.55);    backdrop-filter: blur(14px);    -webkit-backdrop-filter: blur(14px);    border: 1px solid rgba(255,255,255,0.08);    box-shadow:        inset 0 0 25px rgba(255,255,255,0.05),        0 20px 50px rgba(20,0,30,0.35);}.content1 .textWrap {  padding-left: 0.5em;  padding-right: 0.5em;	padding-bottom: 2em;}.textWrap .text1.move_left2 p {  line-height: 1.8;  margin-bottom: 0.5em;	color: #F3EEDC;}.textWrap .text1.move_left2 .lead {  display: table;  max-width: 520px;  font-size: 1.2em;  line-height: 1.9;  color: #F7EFD8;  font-weight: 600;  letter-spacing: 0.03em;  margin: 0 auto 1.2em;  padding: 0.2em 0.7em;  border-left: none;  border-bottom: 2px solid #C8A74A;  background: rgba(255, 255, 255, 0.04);  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);  text-align: center;  border-top-left-radius: 5px;  border-top-right-radius: 5px;}.textWrap .text1.move_left2 p:not(.lead) {  max-width: 30em;  margin-left: auto;  margin-right: auto;}.textWrap .text1.move_left2 h2 img {	display: block;	max-width: 148.8px;   /* 親要素の幅を超えない */	height: auto;	margin: 0 auto;    /* 中央寄せ */	width: 100%;}.textWrap .text1.move_left2 h2 {    text-align: center;}/* SNS 全体のブロック */.sns {  margin: 2rem auto 0;   /* 上に少し余白、中央寄せ */  text-align: center;}/* リストのリセット & 横並び設定 *//* SNS 全体のブロック */.sns {  position: relative;  max-width: 360px;  margin: 2.5rem auto 0;  /*padding: 0.9rem 1.6rem;*/	/*padding: 0.45rem 1.6rem;*/	padding: 0.75rem 1.6rem; /* ← 上下だけ増やす */  border-radius: 999px;  /* ▼2枚目のプレートに近い深緑のグラデーション */  background: linear-gradient(    180deg,    #0E2D2D 0%,   /* 上：青寄りの濃い深緑 */    #0B2424 50%,  /* 中央：少し暗く深みを出す */    #0E2D2D 100%  /* 下：再度濃い緑で引き締め */  );  /* ▼柔らかく落ち着いたリッチな影 */  box-shadow:    0 12px 25px rgba(0, 0, 0, 0.35),    inset 0 0 10px rgba(255, 255, 255, 0.03);  display: flex;  align-items: center;  justify-content: center;}.sns {  flex-direction: column;    /* ← 追加：縦並びにする */  gap: 0.6rem;               /* 見出しとアイコンの間に余白 */}/* ▼金縁を強めて高級感アップ */.sns::before {  content: "";  position: absolute;  inset: -2px; /* 太めの金縁（-3 → -4px） */  border-radius: inherit;  background: linear-gradient(    90deg,    #C8A74A 0%,   /* 落ち着いた金 */    #EEDFA8 30%,  /* 明るめの金のハイライト */    #C8A74A 100%  /* 元の金色に戻す */  );  opacity: 0.85;  /* 金縁をしっかり見せる */  filter: blur(1px);  z-index: -1;}/* リストのリセット & 横並び設定 */.sns ul {  list-style: none;  margin: 0;  padding: 0;  display: flex;  justify-content: center;  align-items: center;  gap: 1.5rem;}/* 各アイコン */.sns li {  flex: 0 0 auto;}/* タップしやすいサイズ（スマホ基準） */.sns li a {  display: inline-flex;  align-items: center;  justify-content: center;  width: 56px;  height: 56px;  border-radius: 50%;  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;	position: relative;  overflow: visible;	 background: linear-gradient(145deg, #0F2F29, #0B241F);}sns li a::after {  content: "";  position: absolute;  inset: -6px;  border-radius: 50%;  background: radial-gradient(      rgba(255, 240, 200, 0.35),      rgba(255, 220, 160, 0)  );  z-index: -1;}/* アイコン画像 */.sns li img {  max-width: 100%;  max-height: 100%;  display: block;	filter: saturate(0.9) brightness(0.95);}/* ホバー・フォーカス時：ふわっと持ち上がる */.sns li a:hover,.sns li a:focus-visible {  transform: translateY(-4px) scale(1.05);  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);  filter: brightness(1.07);}.sns-label {  margin: 0 1.2rem 0 0;  color: #DCCBA2; /* ← 指定の色 */  white-space: nowrap;  letter-spacing: 0.5px; /* 少し上品に */	text-shadow: 0 1px 2px rgba(0,0,0,0.35);	font-size: 1rem;  font-weight: 600;}/* ラベル + アイコンを横並びにしたい場合 */.sns {  display: flex;  align-items: center;  justify-content: center;}.sns ul {  gap: 1.2rem;}/*==========================================galleryのスタイル（初期設定 最大：767px）===========================================*/.gallery {  margin-bottom: 0em;  margin-top: 5.5em;}#gallery .gallery-inner {  width: 95%;  margin-left: auto;  margin-right: auto;  padding: 2em 1em;  border-radius: 12px;  background: rgba(45, 15, 55, 0.55);  backdrop-filter: blur(14px);  -webkit-backdrop-filter: blur(14px);  border: 1px solid rgba(255,255,255,0.08);  box-shadow:      inset 0 0 25px rgba(255,255,255,0.05),      0 20px 50px rgba(20,0,30,0.35);  box-sizing: border-box;  text-align: center;}.gallery-inner ul {  width: 90%;  margin-left: auto;  margin-right: auto;  text-align: center;	/* スマホサイズでのみ横スクロール */  overflow-x: auto; /* 横スクロールを有効化 */  white-space: nowrap; /* li要素を折り返さない */}.gallery-inner ul li {  margin-bottom: 1em;  display: inline-block; /* 横並びにする */  margin-right: 0.5em; /* li要素間の余白 */	margin-left: 0.5em; /* li要素間の余白 */}.gallery-title {	font-size: 1.4em;	margin: 30px 0 15px;	text-align: center;	font-family: 'Georgia', 'Times New Roman', serif;	color: #F7F3EA;  /* ← 変更しました */	letter-spacing: 1px;	position: relative;}.gallery-title::after {  content: "";  display: block;  width: 40px;  height: 3px;           /* 少し太くすると丸みが目立ちやすい */  background: #F7F3EA;  margin: 8px auto 0;  border-radius: 5px;    /* ← ここを大きくすると丸みが出ます */  opacity: 0.7;}/*==========================================priceのスタイル（初期設定 最大：767px）===========================================*/.price {  margin-bottom: 5.5em;  margin-top: 0em;}#price .price-inner {  width: 95%;  margin-left: auto;  margin-right: auto;  padding: 2em 0.8em;  border-radius: 12px;  background: rgba(45, 15, 55, 0.55);  backdrop-filter: blur(14px);  -webkit-backdrop-filter: blur(14px);  border: 1px solid rgba(255,255,255,0.08);  box-shadow:    inset 0 0 25px rgba(255,255,255,0.05),    0 20px 50px rgba(20,0,30,0.35);  box-sizing: border-box;  text-align: center;}.plan-table {  max-width: 820px;  margin-left: auto;  margin-right: auto;  border-radius: 16px;  background: linear-gradient(    135deg,    #FFFDF8 0%,    #FFF8EC 52%,    #F6EBD8 100%  );  border: 1px solid #D4AF37;  box-shadow:    inset 0 1px 0 rgba(255,255,255,0.95),    inset 0 0 18px rgba(0,0,0,0.035),    0 14px 34px rgba(0,0,0,0.16),    0 2px 8px rgba(120, 70, 0, 0.08);  overflow: hidden;  position: relative;}.plan-table::before {  content: "";  position: absolute;  top: 0;  left: 4%;  width: 92%;  height: 1px;  background: linear-gradient(    to right,    rgba(255,255,255,0) 0%,    rgba(255,255,255,0.75) 50%,    rgba(255,255,255,0) 100%  );  pointer-events: none;}.plan-table .plan {  /*background-color: #FFFBEA;*/  color: #000000;  /*border: 2px solid #bfa046;*/  border-radius: 5px;  margin-bottom: 1em;  padding: 1em 0.5em;  text-align: center;  font-weight: bold;}.plan-name {  display: block;  max-width: 600px;  width: 100%;  margin: 1.5em auto 1em;  padding: 12px 24px;  position: relative;  background: linear-gradient(    180deg,    #7A2C86 0%,    #5B1E66 55%,    #3F1348 100%  );  color: #F3EEDC;  border-radius: 40px;  border: 2px solid #E8D18E;  box-shadow:    0 4px 12px rgba(0,0,0,0.35),    inset 0 0 12px rgba(255,255,255,0.08);  text-align: center;}/* 英語（上段） */.plan-name .plan-name-en {  display: block;  font-size: 1em;  font-weight: 600;  letter-spacing: 0.03em;  margin-bottom: 2px;}/* 日本語（下段） */.plan-name .plan-name-jp {  display: block;  /*font-size: 0.85em;*/  font-size: 1em;  opacity: 0.9;}.plan-name::after {  content:"";  position:absolute;  left:20%;  right:20%;  top:0;  height:1px;  background:rgba(255,255,255,0.35);}.plan-item {  display: flex;  flex-wrap: nowrap;           /* ← ドットリーダー用に折り返ししない */  justify-content: space-between;  align-items: center;  gap: 0;  margin-bottom: 1.5em;  width: 100%;  text-align: left;}.plan-item:last-child {  margin-bottom: 0;}/* 時間と通常料金の間に「・・・」を挿入（旧仕様のためコメントアウト） *//*.plan-prices .normal::before {  content: "・・・";  margin: 0 0.5em;}*//* プライマリグループ（旧仕様のためコメントアウト） *//*.plan-prices,.plan-campaign {  display: flex;  align-items: center;  gap: 0.25em;}*/.plan-item .arrow {  font-size: 1em;  color: inherit;  display: inline-block;  vertical-align: middle;}.campaign-label {  background-color: #c62828;  color: #fffbe6;  border: 1px solid #ffd700;  /*padding: 1px 4px;*/  border-radius: 3px;  font-size: 0.65em;  font-weight: bold;  letter-spacing: 0.5px;  margin-right: 3px;  display: inline-flex;  align-items: center;  justify-content: center;  height: 1.5em;  line-height: 1.2;  padding: 0 0.4em;}.campaign-price {  color: #ffd700;}.extension {  color: #0000A3;}/* 旧仕様のためコメントアウト *//*.plan-time {  white-space: nowrap;}.plan-price {  white-space: nowrap;}*/.min {  white-space: nowrap;  font-size: 1em;  color: #1F1A17;  flex: 0 0 auto;}.normal {  white-space: nowrap;  font-size: 1em;  color: #1F1A17;  flex: 0 0 auto;}.plan-dots {  flex: 1;  border-bottom: 2px dotted rgba(200,178,122,0.75);  margin: 0 14px;  transform: translateY(-2px);}.price-jpy {  font-weight: 700;}.price-usd {  opacity: 0.85;}/* スマホで長いコース名が見やすいように少し調整 */.plan-name .plan-name-jp {  line-height: 1.5;}.menu-detail {  white-space: nowrap;  color: #1F1A17;  flex: 0 0 auto;	font-size: 0.9em;}.plan-item-detail {  align-items: center;}/* 必要なら旧構造の互換用として残す */.plan-prices {  /* display: flex; */  /* align-items: center; */  /* gap: 0.25em; */}/*==========================================accessImgのスタイル（初期設定 最大：767px）===========================================*/#accessImg {  width: 95%;  margin-left: auto;  margin-right: auto;  text-align: center;  clear: both;  padding-top: 2em;	display: block !important;}.access-title {  font-size: 1.4em;                  /* .gallery-title と統一 */  margin: 30px 0 15px;  text-align: center;  font-family: 'Georgia', 'Times New Roman', serif;  color: #F7F3EA;  letter-spacing: 1px;  position: relative;  display: block; }.access-title::after {  content: "";  display: block;  width: 40px;  height: 3px;  background: #F7F3EA;  margin: 8px auto 0;  border-radius: 5px;  opacity: 0.7;}/* セクション全体の中央寄せ（既存と同じ） */#accessImg .accessTitle {  text-align: center;  width: 100%;  margin-left: auto;  margin-right: auto;}#accessImg h3 {	margin-top: 1em;	font-size: 1em;	padding: 0.5em;	color: #030201;	border: thin solid #F7F3EA;	background-color: #FFFFFF;}#accessImg ul {  width: 90%;  margin-left: auto;  margin-right: auto;  text-align: center;	/* スマホサイズでのみ横スクロール */  overflow-x: auto; /* 横スクロールを有効化 */  white-space: nowrap; /* li要素を折り返さない */}#accessImg ul li {  margin-bottom: 1em;  display: inline-block; /* 横並びにする */  margin-right: 0.5em; /* li要素間の余白 */	margin-left: 0.5em; /* li要素間の余白 */}/*==========================================newsのスタイル（初期設定 最大：767px）===========================================*/.news {  margin-bottom: 3em;  margin-top: 3em;}#news .news-inner {  width: 98%;  margin-left: auto;  margin-right: auto;  -webkit-box-sizing: border-box;  -moz-box-sizing: border-box;  box-sizing: border-box;}#news .news-inner h2 {    text-align: center;    background-color: #D0A900;    margin-bottom: 0px;    padding-top: 0.5em;    padding-bottom: 0.5em;    border-top-right-radius: 5px;    border-top-left-radius: 5px;    font-family: "Libre Baskerville", serif;    font-weight: 700;    color: #FFFFFF;}#news .news-inner ul {  max-height: 230px;  overflow: scroll;  background-color: #FFFFFF;}#news .news-inner ul li {  border-bottom: 1px dotted #64605f;  padding-left: 1em;  padding-top: 0.5em;  padding-bottom: 0.2em;  margin: 0.5em;}#news .news-inner ul li .day {  margin-right: 1em;  font-weight: bold;  margin-bottom: 0.5em;  display: block;}#news .news-inner ul li:first-child .day:before {  content: "new";  background-color: #ff1900;  color: #FFFFFF;  font-weight: bold;  font-size: 80%;  border-radius: 3px;  padding: 5px;  margin-right: 3px;}/* ────────── スマホだけ（767px以下） ────────── */@media screen and (max-width: 767px) {  .plan-item {    flex-wrap: nowrap;   /* ← ドットリーダーを崩さない */    align-items: center;		padding-left: 6px;    padding-right: 6px;  }  .plan-campaign {    flex-basis: 100%;            /* 必ず新しい行に */    align-self: flex-start;      /* 上寄せ */    margin-top: -0.8em;          /* 上への詰め */    justify-content: center;  }  /* 旧仕様のためコメントアウト */  /* .plan-prices {    gap: 1em;  } */  .plan-table {    position: relative;    overflow: hidden;    z-index: 0;  }  .plan-name {    padding: 12px 18px;    border-radius: 32px;  }  .plan-name .plan-name-jp {    font-size: 0.95em;    line-height: 1.45;  }  .min {    font-size: 0.95em;  }  .normal {    font-size: 0.95em;  }  .plan-dots {    margin: 0 10px;  }  .price-usd {    font-size: 0.95em;  }	.textWrap .text1.move_left2 .lead {		font-size: 1.1em;	}}@media screen and (min-width:768px) {  /*==========================================mainViewのスタイル（最小：768px）===========================================*/  .mainView:before {    background-image: url("../img/bg-body-tab.webp");  }  /* -----メイン画像ロゴ----- */  .bg-slider .sp {    display: none;  }  .bg-slider .pc {    display: block;  }  /* -----共通----- */  .subtitle2 img {    width: 50%;    height: auto;  }  /* -----memo---- */  .memo {    width: 70%;    padding: 20px;  }  /*==========================================greetingのスタイル（最小：768px）===========================================*/  #greeting .greeting-inner {    padding: 2em;  }	.textWrap .text1.move_left2 h2 img {            margin: 0 auto;      display: block;  }  /*==========================================galleryのスタイル（最小：768px）===========================================*/  #gallery .gallery-inner {    width: 95%;    padding: 5em 2em;  }  #gallery .gallery-inner .subtitle2 {    margin-bottom: 2em;  }  .gallery-inner ul {    width: 100%;  }  .gallery-inner ul li {    width: 48%;    margin-bottom: 1.5em;    display: inline-block;  }  /*==========================================  priceのスタイル（最小：768px）  ===========================================*/  #price .price-inner {    width: 95%;    padding: 5em 2em;  }  .plan-item {    flex-wrap: nowrap;    align-items: center;		max-width: 560px;    margin-left: auto;    margin-right: auto;  }  .plan-campaign {    flex-basis: auto;    align-self: center;    margin-top: 0;  }  /* 旧仕様のためコメントアウト */  /* .plan-prices .normal::before {    display: inline;  } */  .plan-name {    padding: 14px 28px;  }  .plan-name .plan-name-jp {    font-size: 1.05em;  }  .min {    font-size: 1.05em;  }  .normal {    font-size: 1.05em;  }  .plan-dots {    margin: 0 16px;  }  /* -----.coupon----- */  .price-inner .flexbox .coupon p {    width: 55%;    display: inline-block;  }  .coupon p img {    border-radius: 5px;    width: 100%;  }  /* -----.note----- */  .flexbox.cf .plan-table.matchHeight .note {    width: 60%;    margin-left: auto;    margin-right: auto;    margin-bottom: 2.5em;    padding-top: 1em;    padding-bottom: 1em;    padding-left: 2em;  }  .price-inner .accent4 {    width: 50%;  }  .option {    width: 80%;  }  /*==========================================accessImgのスタイル（最小：768px）===========================================*//*  #accessImg .shop-accessImg {    width: 40%;    margin-left: 0%;    margin-right: 0%;    display: inline-block;  }  */  #accessImg .accessTitle {    width: 50%;  }  .accessvideo {    width: 40%;  }  #accessImg h3 {    padding: 1em;    display: inline-block;  }  #accessImg h3 br {    display: none;  }	#accessImg ul {    width: 100%;  } #accessImg ul li {    width: 48%;    margin-bottom: 1.5em;    display: inline-block;  }  /*==========================================newsのスタイル（最小：768px）===========================================*/  #news .news-inner {    width: 95%;    padding: 2em;  }}@media screen and (min-width:1025px) {  .mainView:before {    background-image: url("../img/bg-body-pc.webp");  }  .accent #coupon {    padding-top: 3em;    padding-bottom: 3em;  }  /* -----memo---- */  .memo {    width: 40%;    padding: 30px;  }  /*==========================================greetingのスタイル（最小：1025px）===========================================*/  #greeting {    margin-bottom: 4em;  }  #greeting .greeting-inner {    width: 80%;    border-radius: 8px;  }  .content1 {    display: flex;    align-items: center; /* 縦方向の中央揃え */  }  .content1 .textWrap {    width: 49%;    margin-right: auto; /* 右側に配置 */  }.textWrap .text1.move_left2 .lead {    max-width: 500px;    padding: 0.15em 0.9em 0.35em;    margin: 0 auto 1.4em;  }  .greeting .content1 .photo1 {    width: 48%;  }  .box {    display: flex;    justify-content: center; /* 水平方向の中央揃え */    align-items: center; /* 縦方向の中央揃え */  }	.textWrap .text1.move_left2 h2 img {    }.textWrap .text1.move_left2 p { font-size: 1.1em;} .sns li a {    width: 64px;    height: 64px;  }  /*==========================================galleryのスタイル（最小：1025px）===========================================*/  #gallery .gallery-inner {    width: 90%;    padding: 4em 2em;    border-radius: 8px;  }	.gallery-inner ul {   width: 90%;  padding: 0.5em 0em;  border-radius: 8px;  display: flex;  flex-wrap: wrap;  justify-content: center;}.gallery-inner ul li {  width: 30%;  margin-bottom: 1.5em;  margin-right: 3.33%; }/*==========================================  priceのスタイル（最小：1025px）  ===========================================*/  #price .price-inner {    width: 90%;    padding: 4em 2em;    border-radius: 8px;  }  .plan-item {    gap: 0;  }  .plan-name {    max-width: 680px;    padding: 14px 32px;  }  .plan-name .plan-name-jp {    font-size: 1.1em;  }  .min {    font-size: 1.08em;  }  .normal {    font-size: 1.08em;  }  .plan-dots {    margin: 0 18px;  }  .option {    width: 40%;  }  /* -----.coupon----- */  .accent #coupon {    padding-top: 3em;    padding-bottom: 3em;  }  /* -----.note----- */  .flexbox.cf .plan-table.matchHeight .note {    width: 40%;    padding-top: 1.5em;    padding-bottom: 1.5em;    padding-left: 2.5em;  }  .price-inner .accent4 {    width: 30%;  }  /*==========================================accessImgのスタイル（最小：1025px）===========================================*//*  #accessImg .shop-accessImg {    width: 20%;    margin-left: 1%;    margin-right: 1%;    display: inline-block;  }*//*  #accessImg img {    width: 20%;  }*/  #accessImg .accessTitle {    width: 40%;  }  #accessImg h3 {    font-size: 1.2em;  }		#accessImg ul {   width: 90%;  padding: 0.5em 0em;  border-radius: 8px;  display: flex;  flex-wrap: wrap;  justify-content: center;}#accessImg ul li {  width: 20%;  margin-bottom: 1.5em;  margin-left: 1%;    margin-right: 1%;}  /*==========================================newsのスタイル（最小：1025px）===========================================*/  #news .news-inner {    width: 80%;    padding: 4em;    border-radius: 8px;    background-color: hsla(0, 0%, 100%, 0.00);  }  #news .news-inner h2 {    width: 50%;    margin-left: auto;    margin-right: auto;  }  #news .news-inner ul {    width: 50%;    margin-left: auto;    margin-right: auto;  }  #news .news-inner ul li {    padding-top: 1em;    padding-bottom: 1em;  }}