@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Playwrite+NO+Guides&family=Zen+Kaku+Gothic+Antique:wght@400;500;700;900&family=Zen+Old+Mincho&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&family=Playwrite+NO:wght@100..400&family=Zen+Maru+Gothic&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display&display=swap');
@import url('https://use.fontawesome.com/releases/v5.15.4/css/all.css');
@import url('https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css');

:root {
  --color-brown: #5F342F;
  --color-green: #7F9A43;
  --color-green02:#A9B191;
}

*, *::before, *::after {box-sizing: border-box;}

html {font-size:62.5%;}
* {font-family:'Noto Serif JP', sans-serif; font-weight:400; font-style:normal; font-size:1.6rem; line-height:1.5em; letter-spacing:0.05em; color: #231815;}

li {
  list-style: none;
}
a {
  color: #231815;
  text-decoration: none;
  cursor: pointer;
}
a:hover {
  opacity: 0.7;
}

ul.komelist,
ul.marulist {
  list-style: none;
  padding-left: 1em;
  text-indent: -1em;
}
ul.komelist > li:before {
  content: "※";
}
ul.marulist > li:before {
  content: "●";
}

/* テキストカラー */
.text--brown {color: var(--color-brown);}
.text--green {color: var(--color-green);}
.text--green02 {color: var(--color-green02);}

/* フォントサイズ */
.fs13 {font-size: 1.3rem;}
.fs14 {font-size: 1.4rem;}
.fs15 {font-size: 1.5rem;}
.fs16 {font-size: 1.6rem;}
.fs20 {font-size: 2.0rem;}
.fs21 {font-size: 2.1rem;}
.fs26 {font-size: 2.6rem;}





/*----------------------------------------
　ヘッダー（ナビゲーションバー）
----------------------------------------*/
.navbar {
  display: flex;
  align-items: flex-start;
  padding: 15px 0;
  position: relative;
  z-index: 3;
}

.navbar-brand img {
  max-width: 150px;
  height: auto;
}

.nav-link {
  font-size: 1.6rem;
  padding: 0 !important;
  margin-left: 1.6em;
}

.nav-item a {
  color: #ffffff;
  padding: 5px 0 !important;
}

.nav-item-2nd a {
  color: var(--color-brown);
}

.dropdown-menu a {
  color: #231815;
}

.dropdown-menu-flame {
  margin: 0 20px;
  padding: 0 10px;
}

.nav-item a.nav-link-sub {
  color: #B78A50;
  background-color: #ffffff;
  padding: 5px 10px !important;
  border-radius: 3px;
}

.nav-item a.nav-link-sub-2nd {
  color: var(--color-green);
  border: 1px solid var(--color-green);
}


/*
.navbar-toggler {
  border: none;
  padding: 0;
  width: 30px;
  height: 20px;
  position: relative;
  background: transparent;
}
.navbar-toggler:focus {
  box-shadow: none;
}
.navbar-toggler-icon {
  background: none;
  position: relative;
  width: 100%;
  height: 2px;
  background-color: #5F342F;
  transition: all 0.3s ease-in-out;
}
.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #5F342F;
  transition: all 0.3s ease-in-out;
}
.navbar-toggler-icon::before {
  transform: translateY(-8px);
}
.navbar-toggler-icon::after {
  transform: translateY(8px);
}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
  background: transparent;
}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {
  transform: rotate(45deg);
}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
  transform: rotate(-45deg);
}
*/


/* 背景色が暗い場合のスタイル */
/*
.bg-mainvisual .navbar-toggler-icon,
.bg-mainvisual .navbar-toggler-icon::before,
.bg-mainvisual .navbar-toggler-icon::after {
  background-color: #D2691E;
}
*/

/*
@media (max-width: 991px) {
	.navbar-collapse {
		background-color: #444;
	}
	.navbar-nav {
		width:300px;
	}
	.navbar-nav .nav-item {
		width:250px;
	}
	.navbar-nav .nav-link {
		color: #fff; /
	}
	.navbar-nav .nav-link:hover {
		color: #f0a; 
	}
	.navbar-toggler {
		border-color: #fff;
	}
	.navbar-toggler-icon {
		background-color:
	}
}
*/



.fab {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 56px;
  height: 56px;
  background-color: #5F342F;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  font-size: 24px;
  z-index: 1000;
}
.drawer {
  position: fixed;
  top: 0;
  left: -260px;
  width: 250px;
  height: 100%;
  background: white;
  box-shadow: 2px 0 5px rgba(0, 0, 0, 0.2);
  transition: left 0.3s ease-in-out;
  padding-top: 60px;
  z-index: 999;
}
.drawer.open {
  left: 0;
}
.close-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  background: none;
  border: none;
  font-size: 24px;
  cursor: pointer;
}
.drawer ul {
  list-style: none;
  padding: 0;
}

.drawer ul li {
  padding: 8px 15px;
  border-bottom: 1px solid #ddd;
  cursor: pointer;
  transition: background 0.2s;
}

.drawer ul li:hover {
  background: #f0f0f0;
}
.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  display: none;
  z-index: 998;
}

.overlay.show {
  display: block;
}



/*----------------------------------------
　トップ画像
----------------------------------------*/
header {
  position: relative;
  height: 70vh;
}

/* 動画コンテナ */
.video-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 70vh;
  overflow: hidden;
  z-index: 0;
}

.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.fallback-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: none;
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.1);
  z-index: 1;
}

.bg-mainvisual {
  background-image: url(../images/mainvisual.jpg);
  background-size: cover;
  background-position: top left;
  background-repeat: no-repeat;
  height: 70vh;
  width: 100%;
  position: relative;
}

.catch {
  font-size: 2.3rem;
  text-align: center;
  top: 28%;
  right: 13%;
  position: absolute;
  z-index: 2;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
  color: #ffffff;
}
.catch-img {
  top: 41%;
  right: 6%;
  position: absolute;
  z-index: 2;
  filter: drop-shadow(1px 1px 3px rgba(0, 0, 0, 0.7));
}
.catch-img img {
  max-width: 100%;
  height: auto;
}
.main-logo-img {
  position: absolute;
  bottom: 0;
  right: 5%;
  z-index: 2;
  max-width: 100%;
  height: auto;
  filter: drop-shadow(1px 1px 3px rgba(0, 0, 0, 0.7));
}

.main-logo-img img {
  max-width: 100%;
  height: auto;
}


@media (max-width: 768px) {
	.bg-mainvisual {
	  height: 70vh;
	}
	.video-container {
	  height: 70vh;
	}
	header {
	  height: 70vh;
	}
	.catch {
	  font-size: 1.8rem;
	  top: 25%;
	  right: 10%;
	}
	.catch-img {
	  top: 35%;
	  right: 5%;
	  max-width: 40%;
	}
	.catch-img img {
	  max-width: 100%;
	  height: auto;
	}
	.main-logo-img {
	  right: 2%;
	  max-width: 40%;
	}
}


@media (max-width: 576px) {
	.bg-mainvisual {
	  height: 70vh;
	}
	.video-container {
	  height: 70vh;
	}
	header {
	  height: 70vh;
	}
	.catch {
	  font-size: 1.6rem;
	  top: 68%;
	  left: 3%;
	  max-width: 50%;
	}
	.catch-img {
	  top: 80%;
	  left: 5%;
	  max-width: 50%;
	}
	.catch-img img {
	  max-width: 100%;
	  height: auto;
	}
	.main-logo-img {
	  right: 2%;
	  max-width: 50%;
	}
}



/*----------------------------------------
　フッター
----------------------------------------*/
footer {
  color: #5F342F;
}
footer .nav-link {
  color: #5F342F !important;
  padding: 0 !important;
  margin: 0 20px;
}
footer .nav-link:hover {
  color: #2C3E50;
}

footer ul.tenlist {
  text-align: left;
  padding-left: 1.2rem;
  text-indent: -1.2rem;
}
footer ul.tenlist li a {
  color: #A8793D;
  font-size: 1.6rem;
}
footer ul.tenlist > li:before {
  content: "・";
  color: #A8793D;
  padding-left: 20px;
}

.footer-copy {
  background-color: #A9B191;
  margin-top: 20px;
}
.footer-copy p {
  font-family: "Zen Maru Gothic", serif;
  color: #ffffff;
  text-align: center;
  padding: 6px 0;
}

.footer-border {
  border-top: 1px solid rgba(35, 24, 21, 0.3);
}
.footer {
  background-color: transparent;
  color: #FF5733;
}



/*----------------------------------------
　main
----------------------------------------*/
/* 背景画像 */
.bg-introduction {
  background-image: url(../images/bg-introduction.jpg);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}

.bg-news {
  background-image: url(../images/bg-leaf.png);
  background-position: center top;
  background-repeat: repeat;
  background-size: 640px auto;
  position: relative;
}
@media (max-width: 992px) {
  .bg-news {
    background-size: 540px auto;
  }
}
@media (max-width: 768px) {
  .bg-news {
    background-size: 440px auto;
  }
}
@media (max-width: 576px) {
  .bg-news {
    background-size: 340px auto;
  }
}

.bg-logo-right {
  background-image: url(../images/bg-logo.png);
  background-position: right top;
  background-size: 400px;
  background-repeat: no-repeat;
  position: relative;
}
.bg-logo-right::after {
  content: "";
  background-color: rgba(247, 220, 129, 0.2);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  z-index: 1;
}

.bg-kids {
  background-image: url(../images/bg-kids.jpg);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  position: relative;
}
.bg-kids::after {
  content: "";
  background-color: rgba(247, 220, 129, 0.2);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  z-index: 1;
}

.bg-logo-left {
  background-image: url(../images/bg-logo.png);
  background-position: left top;
  background-size: 400px;
  background-repeat: no-repeat;
}

.bg-reserve {
  background-image: url(../images/bg-reserve.jpg);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  position: relative;
}
.bg-reserve::after {
  content: "";
  background-color: rgba(121, 106, 86, 0.9);
  mix-blend-mode: multiply;
  pointer-events: none;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  z-index: 1;
}



/* VIEW MOREボタンのスタイル */
a.btn01 {
  display: inline-block;
  padding: 10px 80px;
  background: transparent;
  border: 1px solid #ffffff;
  color: #ffffff;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  margin: 10px;
}
a.btn01:hover {
  color: #ffffff;
  background-color: #7F9A43;
  border: 1px solid #7F9A43;
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(139, 69, 19, 0.3);
}

a.btn02 {
  display: inline-block;
  padding: 10px 80px;
  background-image: linear-gradient(to right, #AF8F5B, #9AA765);
  border: 1px solid #ffffff;
  color: #ffffff;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  margin: 10px;
}
a.btn02:hover {
  color: #ffffff;
  background: #8B4513;
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(139, 69, 19, 0.3);
}

a.btn03 {
  display: inline-block;
  padding: 10px 80px;
  background: transparent;
  border: 1px solid #5F342F;
  color: #5F342F;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  margin: 10px;
}
a.btn03:hover {
  color: #ffffff;
  background-color: #5F342F;
  border: 1px solid #5F342F;
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(139, 69, 19, 0.3);
}

a.btn04 {
  display: inline-block;
  padding: 10px 30px;
  background: transparent;
  border: 1px solid #ffffff;
  color: #ffffff;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  margin: 10px;
}
a.btn04:hover {
  color: #ffffff;
  background-color: #5F342F;
  border: 1px solid #5F342F;
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(139, 69, 19, 0.3);
}

a.btn05 {
  display: inline-block;
  padding: 10px 80px;
  background: transparent;
  border: 1px solid #7F9A43;
  color: #7F9A43;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  margin: 10px;
}
a.btn05:hover {
  color: #ffffff;
  background-color: #7F9A43;
  border: 1px solid #7F9A43;
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(139, 69, 19, 0.3);
}

a.btn01::before, a.btn02::before, a.btn03::before, a.btn04::before, a.btn05::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.3), transparent);
  transition: all 0.5s ease;
}
a.btn01:hover::before, a.btn02:hover::before, a.btn03:hover::before, a.btn04:hover::before, a.btn05:hover::before {
  left: 100%;
}


/* 背景色が暗い場合のボタンスタイル */
a.btn04, a.btn04 i {
  border-color: #ffffff;
  color: #ffffff;
}
a.btn04:hover {
  background: #ffffff;
  color: #8B4513;
}
a.btn04:hover i {
  color: #8B4513;
}
a.btn04::before {
  background: linear-gradient(120deg, transparent, rgba(139, 69, 19, 0.3), transparent);
}

.btn04-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

@media (max-width: 576px) {
	a.btn04 {
	  display: block;
	  width: 100%;
	}
}


/* タイトル部分 */
.title-flex {
  display: flex;
  justify-content: center;
  align-items: center;
}
.title {
  font-family: "Playfair Display", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 4.2rem;
  letter-spacing: 0rem;
  text-align: center;
  margin: 0 20px;
}
.section-ttl {
  font-family: "Playfair Display", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2.6rem;
  letter-spacing: 0rem;
  text-align: center;
  margin: 0 20px;
}
.title-sub {
  font-size: 1.8rem;
  text-align: center;
}
.leaf-left {
  transform: scaleX(1);
}
.leaf-right {
  transform: scaleX(-1);
}
.gradation-green {
  background: linear-gradient(to right, transparent 0%, #A9B191 40%, #A9B191 60%, transparent 100%);
}

.gradation-brown {
  background: linear-gradient(to right, transparent 0%, #5F342F 40%, #5F342F 60%, transparent 100%);
}

@media (max-width: 576px) {
	.leaf-img img {
	  width: 50px;
	}
	.title {
	  font-size: 3.4rem;
	}
	.title-sub {
	  font-size: 1.6rem;
	}
}


/* はじめに */
h4.intro-text {
  font-size: 2.5rem;
  font-weight: bold;
}
p.intro-text {
  font-size: 1.8rem;
}
p.intro-text-small {
  font-size: 1.4rem;
}

@media (max-width: 576px) {
	h4.intro-text {
	  font-size: 2.1rem;
	}
	p.intro-text {
	  font-size: 1.6rem;
	}
	p.intro-text-small {
	  font-size: 1.3rem;
	}
}


/* お知らせ */
table.tbl-news {
  width: 100%;
}
table.tbl-news th,
table.tbl-news td {
  border-bottom: 1px solid #231815;
  padding: 12px 10px 12px 20px;
  text-align: left;
}
table.tbl-news th {
  white-space: nowrap;
}
table.tbl-news td {
  width: 100%;
}
table.tbl-news td {
  color: var(--color-brown);
}
span.badge-danger {
  background-color: #AC0E23;
}

@media (max-width: 576px) {
	table.tbl-news {
	  width: 100%;
	}
	table.tbl-news th,
	table.tbl-news td {
	  display: block;
	  width: 100%;
	}
	table.tbl-news th {
	  border-bottom: none;
	  padding-bottom: 3px;
	  padding-left: 10px;
	  padding-right: 10px;
	}
	table.tbl-news td {
	  padding-top: 3px;
	  padding-left: 10px;
	  padding-right: 10px;
	}
}


/* キッズルーム */
p.kids-catch {
  font-size: 2.0rem;
}

@media (max-width: 576px) {
	p.kids-catch {
	  font-size: 1.8rem;
	}
}


/* お問い合わせ */
.contact-box .sub-box {
  margin: 0 20px;
}
.contact-box .text-bg {
  background-color: #D6C8C2;
  padding: 1px 5px;
}

.contact-box .contact-flex {
  display: flex;
  align-items: center;
}

.contact-box .text-right {
  margin-right: 20px;
}

@media (max-width: 768px) {
	.flex-container {
	  flex-direction: column;
	  align-items: center;
	}
	.flex-container img {
	  margin-bottom: 20px;
	}
	.contact-box {
	  text-align: center;
	}
	.contact-box .contact-flex {
	  display: block;
	}
	.contact-box .text-right {
	  margin-right: 0px;
	}
}



/*----------------------------------------
　セカンドページ
----------------------------------------*/
@media (max-width: 992px) {
	.concept-main {
	  background-image: url('../concept/images/concept-main.jpg');
	}
	.menu-main {
	  background-image: url('../menu/images/menu-main.jpg');
	}
	.kids-room-main {
	  background-image: url('../kids-room/images/kids-room-main.jpg');
	}
	.nav-bg {
	  background-size: cover;
	  background-position: center center;
	  background-repeat: no-repeat;
	  height: 15vh;
	  width: 100%;
	  position: relative;
	}
}
@media (max-width: 768px) {
	.nav-bg {
	  height: 15vh;
	}
}
@media (max-width: 576px) {
	.concept-main {
	  background-image: url('../concept/images/concept-main-sp.jpg');
	}
	.menu-main {
	  background-image: url('../menu/images/menu-main-sp.jpg');
	}
	.kids-room-main {
	  background-image: url('../kids-room/images/kids-room-main-sp.jpg');
	}
	.nav-bg {
	  height: 17vh;
	}
}




.line-spaced-lg {
  line-height: 2.5em;
  margin-bottom: 0;
}


/* 施術メニュー */
/* テーブルのスタイル調整 */
.tbl-box {
  padding-left: 20px;
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 30px;
}
.tbl-menu {
  width: 100%;
  table-layout: fixed;
  max-width: 100%;
  box-sizing: border-box;
}
.tbl-menu th,
.tbl-menu-period th {
  white-space: nowrap;
  border-right: 15px solid #ffffff;
  text-align: center;
  color: #ffffff;
  background-color: #B1AFB1;
/*  background-color: #717071; */
  font-size: 1.6rem;
}

.tbl-menu th {
  width: 80px;
}

.tbl-menu-period th {
  width: 180px;
}

.tbl-box .border-btm10 tr {
  border-bottom: 10px solid #ffffff;
}
.tbl-box .border-btm10 tr:last-child {
  border-bottom: none;
}

@media (max-width: 576px) {
	.tbl-menu th {
	  width: 60px;
	  border-right: 10px solid #ffffff;
	}
.tbl-menu-period th {
	  width: 130px;
	  border-right: 10px solid #ffffff;
	}
	.tbl-menu td,
	.tbl-menu-period td {
	  width: auto;
	  font-size: 1.6rem;
	}
}


.tbl-menu-period td {
  width: auto;
}


/* 回数指定のある料金表用 */
.tbl-menu-nth th,
.tbl-menu-nth td {
  text-align: center;
  min-width: 120px;
  border-right: 5px solid #ffffff;
}
.tbl-menu-nth th:last-child,
.tbl-menu-nth td:last-child {
  border-right: none;
}

.menu-box {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  padding: 0 20px;
}


/* 右寄せテキスト用 */
.right-align {
  float: right;
  margin-right: 15%;
}
.right-align-flu {
  float: right;
}

@media (max-width: 576px) {
	.right-align {
	  margin-right: 0px;
	}
}


.menu-list .text-bg {
  color: #ffffff;
  background-color: #B1AFB1;
  font-size: 1.6rem;
  text-align: center;
  display: inline-block;
  padding: 0 20px;
  margin-right: 20px;
}

.menu-box .menu-list::first-letter {
  color: #A9B191;
  font-size: 1.3rem;
  margin-right: 0.5em;
}
.menu-box .menu-indent {
  margin-left: 1em;
  text-indent: -1em;
}

.menu-box .menu-list-border span {
  display: flex;
  align-items: center;
}
.menu-box .menu-list-border span::before {
  content: '●';
  color: #A9B191;
  font-size: 1.3rem;
  margin-right: 0.5em;
}
.menu-box .menu-list-border span::after {
  content: "";
  height: 1px;
  flex-grow: 1;
  background-color: #A9B191;
  margin-left: 0.5em;
}


/* キッズルーム*/
.underline {
  display: inline-block;
  position: relative;
}
.underline::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: -60px;
  right: -60px;
  height: 1px;
  background-color: #B49662;
}
.charge-box {
  padding: 0 100px;
}

@media (max-width: 992px) {
	.charge-box {
	  padding: 0 50px;
	}
}


/* ローディングアニメーション */
.loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.85);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    opacity: 1;
    transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1);
}

.loading.fade-out {
    opacity: 0;
    pointer-events: none;
}

.loading-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../images/bg-introduction.jpg');
    background-size: cover;
    background-position: center;
    opacity: 1;
    transition: opacity 1.2s ease-out;
    filter: blur(4px) brightness(0.9) contrast(1.1);
}

.loading-logo {
    width: 200px;
    height: auto;
    opacity: 0;
    transform: scale(0.8) translateY(20px);
    animation: logoFadeIn 2.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.3)) 
            drop-shadow(0 0 30px rgba(255, 255, 255, 0.6));
    position: relative;
}

.loading-logo::before {
    content: '';
    position: absolute;
    top: -20px;
    left: -20px;
    right: -20px;
    bottom: -20px;
    background: radial-gradient(circle at center, 
                              rgba(255,255,255,0.9) 0%, 
                              rgba(255,255,255,0.3) 50%, 
                              rgba(255,255,255,0) 100%);
    border-radius: 50%;
    z-index: -1;
    opacity: 0;
    animation: glowFadeIn 2.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.loading-logo::after {
    content: '';
    position: absolute;
    top: -30px;
    left: -30px;
    right: -30px;
    bottom: -30px;
    background: radial-gradient(circle at center, 
                              rgba(0,0,0,0.1) 0%, 
                              rgba(0,0,0,0) 70%);
    border-radius: 50%;
    z-index: -2;
    opacity: 0;
    animation: shadowFadeIn 2.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes logoFadeIn {
    0% {
        opacity: 0;
        transform: scale(0.8) translateY(20px);
    }
    30% {
        opacity: 0.5;
        transform: scale(0.9) translateY(10px);
    }
    60% {
        opacity: 0.8;
        transform: scale(0.95) translateY(5px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes glowFadeIn {
    0% {
        opacity: 0;
        transform: scale(0.8);
    }
    50% {
        opacity: 0.8;
    }
    100% {
        opacity: 0.5;
        transform: scale(1.2);
    }
}

@keyframes shadowFadeIn {
    0% {
        opacity: 0;
        transform: scale(0.8);
    }
    50% {
        opacity: 0.5;
    }
    100% {
        opacity: 0.3;
        transform: scale(1.2);
    }
}

/* スマホ表示の最適化 */
@media (max-width: 768px) {
    .loading-logo {
        width: 150px;
    }
    
    .loading-bg {
        opacity: 0.3;
        filter: blur(6px) brightness(0.95) contrast(1.1);
    }
    
    .loading {
        background-color: rgba(255, 255, 255, 0.9);
    }
}


