@charset "utf-8";

@media screen and (max-width: 1100px) {
.music-list{
	width:90%;
    margin: 30px auto 0;
    padding: 60px 0;
    border-radius: 100px;
}
.music-list ul {
  width: 85%;
  list-style: none;
  margin: 0 atuo;
  text-align: left;
}
.message p{
	font-size:1rem;
}
}

@media screen and (max-width: 970px) {
.faq {
  width: 90%;
}
.txt-wrap{
  width: 90%;
}
.top-block01::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../images/tablet-top.svg") no-repeat top center;
  background-size: cover;
}
.top-mainv{
	width: 100%;
  min-height: 578px;
	height: 70vh;
}
/* TOP 商用利用できるBGMサービス */
.top-block02{
	padding: 44px 0 60px;
	background-image:none;
  background-repeat: no-repeat;
  background-color: #F1ECE7;
}
/* 右上の装飾 */
.top-block02::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -240px;
  width: 402px;
  height: 253px;
  background: url("../images/top-obj01.svg") no-repeat left top;
  background-size: contain;
  pointer-events: none; /* 装飾をクリック対象外に */
  z-index: 0;
}

/* 左の装飾 */
.top-block02::after {
 display: none;
}
/* TOP FAQブロック右上の装飾 */
.top-block03::before {
  content: "";
  position: absolute;
  top: -100px;
  right: -100px;
  width: 256px;
  height: 307px;
  background: url("../images/top-obj04.svg") no-repeat left top;
  background-size: contain;
  pointer-events: none;
}

/* トップ以外のページ共通の装飾 */
/* 右上の装飾 */
.page-top-block::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 40%;
  height: 40%;
  background: url("../images/page-header-left.svg") no-repeat left top;
  background-size: contain;
  pointer-events: none;
  z-index: 0;
}

/* 左の装飾 */
.page-top-block::after {
  content: "";
  position: absolute;
  right: 0;
  top:0;
  width: calc(404px * 0.7);
  height:calc(400px * 0.7);
  background: url("../images/page-header-right.svg") no-repeat right bottom;
  background-size: contain;
  pointer-events: none;
  z-index: 0;
}
}

/*横幅が770pxタブレット＆スマホ*/
@media only screen and (max-width: 770px) {

.sp-br {
    display: inline;
  }
  .pc-br {
    display: none;
  }

/* メニュー */
  .dot-hamburger {
    position: fixed;
    top: 15px;
    right: 15px;
    width: 45px;
    height: 45px;
  }

  .dot-hamburger span {
    position: absolute;
    width: 5px;
    height: 5px;
  }

/* 初期：3x3のグリッド */
  .dot-hamburger span:nth-child(1) { top: 10px; left: 10px; }
  .dot-hamburger span:nth-child(2) { top: 10px; left: 20px; }
  .dot-hamburger span:nth-child(3) { top: 10px; left: 30px; }
  .dot-hamburger span:nth-child(4) { top: 20px; left: 10px; }
  .dot-hamburger span:nth-child(5) { top: 20px; left: 20px; }
  .dot-hamburger span:nth-child(6) { top: 20px; left: 30px; }
  .dot-hamburger span:nth-child(7) { top: 30px; left: 10px; }
  .dot-hamburger span:nth-child(8) { top: 30px; left: 20px; }
  .dot-hamburger span:nth-child(9) { top: 30px; left: 30px; }

  /* クリック時：✗の形 */
  .dot-hamburger.active span:nth-child(1) { top: 10px; left: 10px; }
  .dot-hamburger.active span:nth-child(2) { top: 15px; left: 15px; }
  .dot-hamburger.active span:nth-child(3) { top: 10px; left: 30px; }
  .dot-hamburger.active span:nth-child(4) { top: 25px; left: 15px; }
  .dot-hamburger.active span:nth-child(5) { top: 20px; left: 20px; }
  .dot-hamburger.active span:nth-child(6) { top: 15px; left: 25px; }
  .dot-hamburger.active span:nth-child(7) { top: 30px; left: 10px; }
  .dot-hamburger.active span:nth-child(8) { top: 25px; left: 25px; }
  .dot-hamburger.active span:nth-child(9) { top: 30px; left: 30px; }

  /* 全画面背景 */
  .menu-bg {
    position: fixed;
    top: 0; right: 0;
    width: 100%;
    height: 100vh;
    background-color: #2E5C6D;
    z-index: 1000;
    clip-path: circle(0% at top right);
    transition: clip-path 0.5s ease;
    background-image: url("../images/menu-bg.svg");
    background-position: right 0 top 0;
  }
  /* メニューリンク */
  .menu {
    position: fixed;
    top:0; right:0;
    width:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    align-items: stretch;
    pointer-events:none;
    z-index: 1002; /* 背景より上に */
  }
.menu-links{
  margin: 160px auto 0;
}  
.menu-links a {
  display: block;
  padding: 15px 20px 15px 30px;
  color: #fff;
  text-decoration: none;
  border-top: 1px solid rgba(255,255,255,0.4);
  position: relative;
  text-align: left;
  font-size:1.125rem;
  font-weight: 900;
}
/* 下線は最後だけ追加 */
.menu-links a:last-child {
  border-bottom: 1px solid rgba(255,255,255,0.4);
}

/* リストマークを擬似要素で追加 */
.menu-links a::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 17px;
  background: url("../images/menu-link-mark.svg") no-repeat center;
  background-size: contain;
}

/* トップメイン */
.top-block01::before {
  content: "";
  position: fixed;   /* ← iOSでも動く */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../images/tablet-top.svg") no-repeat top center;
  background-size: cover;
}
.top-mainv{
	width: 100%;
  min-height: 578px;
	height: 70vh;
}

.message{
	background-color: rgba(255, 255, 255, 0.95);
	padding:64px 0;
}
.message p{
  width: 80%;
  text-align: left;
	margin: 0 auto 40px;
}

.top-block03{
	background-color:#fefefe;
	padding:20px 0 50px;
	position: relative;
}
.faq-btn{
	margin: 2rem auto 0;
}

.music-list{
	width:90%;
    padding: 60px 0;
    border-radius: 70px;
}

.music-list ul {
  width: 90%;
  list-style: none;
  margin: 0 atuo;
  text-align: left;
}

.music-list li a {
  display: block;
  padding: 16px 5px 10px 18px;
  color: #EF483E;
  text-decoration: none;
  background: url("../images/list-link-mark.svg") no-repeat 2px 22px;
  background-size: 12px 12px;
  font-size:1rem;
  display: flex;
  justify-content: space-between;
  align-items: top;
  display: flex;
  flex-wrap:wrap;
}
.music-list li {
  border-bottom: 1px solid #2E5C6D;
}

.music-list li:first-child {
  border-top: 1px solid #2E5C6D;
}

.music-list li a span{
  display: block;
  width: 100%;
  margin-bottom: 0.5rem;
}
.music-list li a span.company-n {
  margin-left: 0.5em;
  margin-bottom: 0;
  text-align: right;
  color:#2E5C6D;
  font-size:0.875rem;
  line-height: 1.4;
  display: block;
  width: 100%;
}

h2::before {
  content: "";
  display: block;
  width: auto;
  height: 52px;
  margin: 0 auto 16px;
  background: url("../images/h2-mark.svg") no-repeat center / contain;
}

/* # ===========================
# FAQ
# ========================== */

.page-top-block{
  position: relative;
  overflow: hidden;
  padding:76px 0 60px;
}
/* 左の装飾 */
.page-top-block::after {
  content: "";
  position: absolute;
  right: 0;
  top:0;
  width: calc(404px * 0.6);
  height:calc(400px * 0.6);
  background: url("../images/page-header-right.svg") no-repeat right bottom;
  background-size: contain;
  pointer-events: none;
  z-index: 0;
}
.contact-f .page-top-block{
  padding:76px 0 0;
}

.page-deco-leftbottom,.page-deco-rightmiddle{
  display: none;
}

.faq {
  margin: 28px auto 0;
  position:relative;
  z-index: 1; /* ← 前面に */
}

.faq-item {
  background-color: #fff;
  border-radius: 20px;
  margin: 0 auto 10px;
}
.faq-question {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size:1.15rem;
  line-height: 1.6;
  font-weight: 900;
  width: 100%;
  padding:24px 60px 24px 80px;
  text-align: left;
}
/* Qアイコン */
.faq-question::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  background: url("../images/icon-q.svg") no-repeat center center;
  background-size: contain;
}
.faq-answer p::before {
  content: "";
  position: absolute;
  left: 20px;
  top:0;
  width: 42px;
  height: 42px;
  background: url("../images/icon-a.svg") no-repeat center center;
  background-size: contain;
}
/* Aアイコン */
.faq-answer p {
  position: relative;
  padding: 0 20px 0 80px ;
  font-size:1rem;
  font-weight: 700;
  text-align: left;
}

.contact-block{
background-color:#fefefe;
	padding:18px 0 50px;
	position: relative;
}
.contact-form-area{
  padding:0 0 0 0;
}
.txt-wrap{
  margin: 20px auto 0;
  padding:40px 0 20px 0;
}
.txt-wrap p{
  text-align: left;
  font-size:0.8125rem;
  line-height: 2;
  margin: 0 0 20px 0;
}
h2.general span{
  font-size:1.25rem;
	font-weight: 500;
  line-height: 1.4;
  display: inline-block;
  margin-bottom: 0.2em;
}
h2.general span.title-sub2{
	font-size:1.25rem;
	font-weight: 500;
  line-height: 1.4;
  display: inline-block;
  margin-bottom: 0.2em;
}
}

/*横幅が499pxスマホ*/
@media screen and (max-width: 499px) {
 .top-block01::before {
  content: "";
  position: fixed;   /* ← iOSでも動く */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../images/top-sp.svg") no-repeat top center;
  background-size: cover;
}
.top-mainv{
	width: 100%;
  min-height: 578px;
	height: 87vh;
}
.top-mainv h1{
	font-size:2.187rem;
	line-height:1.4;
	font-weight:900;
}
/* pagetop */
.page-top {
  position: fixed;
  right: 6px;
  bottom: 6px;
  width: 55px;
  height:52px;
}
.page-top img {
  width: 55px;
  height: auto;
  transition: transform 0.3s ease;
}
.footer-inner{
  width: 100%;
	height: 80px;
	margin: 0 auto;
  padding: 10px;
}

.logo-footer {
  height: 48px;
  margin-top: 15px;
}

.copyr {
  font-size: 0.75rem;
  color: #707070;
}

/* 右上の装飾 */
.top-block03::before {
  display: none;
}
.music-list{
	width:90%;
    padding: 40px 0;
    border-radius: 40px;
}

.top-block02 .music-list{
    margin: 0 auto;
}

.contact-btn {
min-width: 60%;
padding: 0.75rem 1.5rem;
font-size: 1rem;
}
.faq-question {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size:1rem;
  line-height: 1.6;
  font-weight: 900;
  width: 100%;
  padding:18px 50px 18px 70px;
  text-align: left;
}
/* Qアイコン */
.faq-question::before {
  content: "";
  position: absolute;
  left: 16px;
  top:40px;
  width: 42px;
  height: 42px;
  background: url("../images/icon-q.svg") no-repeat center center;
  background-size: contain;
}
/* Aアイコン */
.faq-answer p {
  position: relative;
  padding: 0 0 0 70px ;
  font-size:0.9rem;
  font-weight: 500;
  text-align: left;
}
.faq-answer p::before {
  content: "";
  position: absolute;
  left: 20px;
  top:0;
  width: 42px;
  height: 42px;
  background: url("../images/icon-a.svg") no-repeat center center;
  background-size: contain;
}
.faq-item.open .faq-answer {
  max-height: 1000px; /* ← 想定より大きめに */
  opacity: 1;
  padding: 0 50px 20px 0;
  text-align: left;
}

.faq-toggle {
  position: relative;
  width: 18px;
  height: 18px;
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%); /* ← 縦中央に固定 */
}
/* 下層ページ 左の装飾 */

.page-top-block::after {
  content: "";
  position: absolute;
  right: -20px;
  top:-20px;
  width: calc(404px * 0.4);
  height:calc(400px * 0.4);
  background: url("../images/page-header-right.svg") no-repeat right bottom;
  background-size: contain;
  pointer-events: none;
  z-index: 0;
}
h2.general{
  font-size:1.75rem;
}
}