/* --- ベースリセット & 全体設定 --- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
body {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    background-color: #fff; 
    color: #333;
    line-height: 1.6;
}
img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}
ul {
    list-style: none;
}
a {
    text-decoration: none;
    color: inherit;
}

/* --- コンテナ（スマホ幅固定） --- */
.container {
    margin: 0 auto;
    background-color: #ffffff;
    position: relative;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
    overflow: hidden;
}
.wrap {
}
/* --- ヘッダー & メニュー --- */
.header {
    position: relative;
}
/* ① header-topの修正：細く、中央寄せ、16px */
.header-top {
    background-color: #A17B88; 
    color: #fff;
    padding: 4px 15px; /* 上下内側の隙間を8pxに固定 */
    text-align: center; /* 文字を中央寄せ */
    position: relative;
    z-index: 100;
}
.site-title {
    font-size: 14px; /* 文字サイズを16pxに変更 */
}

/* ② 3本線メニューの修正：header-topの上に被せて絶対配置 */
.menu-trigger {
    background: #FF8488;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    right: 8px; /* 右端から15pxの位置 */
    top: 8px;    /* header-topのpaddingと同じ位置に被せる */
    z-index: 110; /* header-topより上に配置 */
    cursor: pointer;
    position: fixed;
}
.menu-trigger span {
    display: block;
    position: absolute;
    left: 12px;
    width: 26px;
    height: 4px;
    background-color: #fff;
    border-radius: 2px;
}
.menu-trigger span:nth-child(1) { top: 14px; }
.menu-trigger span:nth-child(2) { top: 22px; }
.menu-trigger span:nth-child(3) { top: 30px; }

/* ドロワーメニュー */
.drawer-nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 280px;
    height: 100%;
    background-color: rgba(255, 240, 245, 0.95);
    z-index: 200;
    transition: right 0.3s ease;
    box-shadow: -2px 0 10px rgba(0,0,0,0.1);
}
.drawer-nav.is-open {
    right: 0;
}
.drawer-menu {
    padding: 20px;
}
.menu-close {
    text-align: right;
    margin-bottom: 20px;
    cursor: pointer;
    color: #A17B88;
    font-size: 12px;
}
.drawer-menu li a {
    display: block;
    padding: 15px 10px;
    border-bottom: 1px solid #f3cbd7;
    color: #5a4b4f;
    font-weight: bold;
}
.main-visual {
    max-width: 600px;
    margin: 0 auto;
}
.close-link-in {
    display: inline-block;
    text-align: center;
}
.close-link-in i {
    font-size: 32px;
}
/* --- 背景ぼかし（オーバーレイ）の設定 --- */
.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(256, 256, 256, 0.4); /* 背景を少し暗くする黒透過 */
    backdrop-filter: blur(4px);          /* ★背後をぼかすエフェクト */
    -webkit-backdrop-filter: blur(4px);  /* Safari用の記述 */
    z-index: 150;                        /* ヘッダーより上で、メニュー（200）より下の位置 */
    
    /* 初期状態は非表示（透明＆クリック不可） */
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

/* メニューが開いた時、オーバーレイを表示状態にする */
.menu-overlay.is-open {
    opacity: 1;
    pointer-events: auto; /* タップできるようにする */
}
/* --- ③ セクション上部の波線（うねうねデザイン）の共通設定 --- */
.wave-top {
   --size: 12px;
  --m: 0.5;
  --p: calc(var(--m)*var(--size));
  --R: calc(var(--size)*sqrt(var(--m)*var(--m) + 1));

  mask:
    /* Gradient 1 */
    radial-gradient(var(--R) at left 50% bottom calc(var(--size) + var(--p)), #000 99%, #0000 101%) 
      left calc(50% - 2*var(--size)) bottom 0 / calc(4 * var(--size)) 51% repeat-x,
    /* Gradient 2 */
    radial-gradient(var(--R) at left 50% bottom calc(-1 * var(--p)), #0000 99%, #000 101%) 
      left 50% bottom var(--size) / calc(4 * var(--size)) calc(51% - var(--size)) repeat-x,
    /* Gradient 3 */
    radial-gradient(var(--R) at left 50% top calc(var(--size) + var(--p)), #000 99%, #0000 101%) 
      left calc(50% - 2 * var(--size)) top 0 / calc(4 * var(--size)) 51% repeat-x,
    /* Gradient 4 */
    radial-gradient(var(--R) at left 50% top calc(-1 * var(--p)), #0000 99%, #000 101%) 
      left 50% top var(--size) / calc(4 * var(--size)) calc(51% - var(--size)) repeat-x;
}
/* ページトップへ戻るボタン */
/**********
トップへ戻るボタン
**********/
#page-top-btn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  font-size: 77%;
  z-index: 100;
}
#page-top-btn a {
  background: rgba(0, 0, 0, 0.5);
  text-decoration: none;
  color: #fff;
  width: 50px;
  height: 50px;
  padding: 10px 0;
  text-align: center;
  display: block;
  border-radius: 35px;
  box-sizing: border-box;
  font-size: 24px;
  position: relative;
}
#page-top-btn a i {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -12px;
  margin-left: -11px;
}
#page-top-btn a:hover {
  text-decoration: none;
}
/* --- 各種コンテンツパーツ --- */
.search-img-box {
    max-width: 600px;
    margin: 0 auto;
    padding: 16px;
    text-align: center;
}
.search-img-box a {
    display: inline-block;
    border-radius: 8px;
    overflow: hidden;
}
/* 3つの丸ボタン */
.sub-menu-box {
    max-width: 600px;
    margin: 0 auto 24px;
    padding: 8px 16px;
}
.sub-menu-box ul {
    display: flex;
    justify-content: space-between;
}
.sub-menu-box li {
    width: 30%;
}

/* セクション共通見出し */
.content-section {
    padding: 25px 15px;
}
.content-section h2 {
    max-width: 600px;
    text-align: center;
    margin: 16px auto;
}

/* よるジョブってなに？ 本文 */
.about-section {
    background-image: url('../img/bg_q.webp');
    background-color: #DEF5F7;
    background-repeat: no-repeat;
    background-position: right 0 top 36px;
    background-size: 120px auto;
    position: relative;
    padding: 40px 24px;
}
/* 水色セクション用の波線（白ベースに水色の丸を並べて表現） */
.about-section::before {
  mask: 
    radial-gradient(18.66px at 50% 25.6px,#000 99%,#0000 101%) calc(50% - 32px) 0/64px 100%,
    radial-gradient(18.66px at 50% -9.6px,#0000 99%,#000 101%) 50% 16px/64px 100% repeat-x;
}
.content-text {
    max-width: 600px;
    margin: 0 auto 20px;
}
.content-text p {
    font-size: 16px;
    margin-bottom: 15px;
    text-align: justify;
}
.content-text .lead-text {
    font-size: 16px;
}

/* キャラクターセクション */
.character-section {
    background-color: #fff;
    padding: 25px 16px 32px;
}
/* 白色セクション用の波線（水色ベースに白の丸を並べて表現） */
.character-section::before {
    background-image: radial-gradient(circle at 20px -7px, #edf7fa 24px, #ffffff 25px);
}
.character-card {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 16px;
    border-radius: 10px;
    margin: 0 auto;
    max-width: 600px;
}
.ch-profile {
    width: 50%;
    background-image: url('../img/profile.webp');
    background-repeat: no-repeat;
    background-position: left -8px top 3px;
    background-size: 100px auto;
    position: relative;
    padding-top: 30px;
}
.ch-label {
    font-family: 'Georgia', serif;
    font-style: italic;
    color: #ff5978;
    font-size: 18px;
    display: block;
}
.ch-name {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 5px;
    text-align: center;
}
.ch-birthday {
    margin-bottom: 4px;
    line-height: 1.2em;
}
.ch-birthday .b-title {
    background: #A17B88;
    color: #fff;
    font-size: 11px;
    padding: 3px 6px;
    border-radius: 3px;
    margin-right: 5px;
}
.ch-birthday .b-date {
    font-size: 14px;
    font-weight: bold;
}
.ch-desc {
    font-size: 14px;
    margin-bottom: 16px;
    max-width: 600px;
    margin: 0 auto 24px;
    padding: 0 16px;
}
.ch-img {
    width: 45%;
}

/* LINEスタンプ */
.line-stamp-container {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
}
.line-stamp-title {
    background: #E5CFDE;
    color: #111;
    font-weight: bold;
    border-radius: 20px;
    display: inline-block;
    padding: 8px 52px;
    margin-bottom: 32px;
    font-size: 16px;
    position: relative;
}
.line-stamp-title::after {
    content: "";
    position: absolute;
    bottom: -8px;      /* 三角形の高さ分、下に飛び出させる */
    left: 50%;         /* いったん左端から50%の位置に移動 */
    transform: translateX(-50%); /* 自分の幅の半分だけ左に戻して「真ん中」にする */
    
    /* 三角形を描くためのborder設定 */
    border-style: solid;
    border-width: 8px 6px 0 6px; /* 上・右・下・左 の太さ（これで下向きの三角になる） */
    border-color: #E5CFDE transparent transparent transparent; /* 上だけ帯と同じピンク、他は透明 */
}
.line-stamp-ul {
    display: flex;
    justify-content: space-around;
}
.line-stamp-ul li {
    width: 45%;
    background: #fff;
    border: 1px solid #E5CFDE;
    padding: 8px;
}
.stamp-name {
    font-size: 14px;
    font-weight: bold;
    margin: 5px 0;
}
.btn-store {
    display: block;
    background: #A17B88;
    color: #fff;
    font-size: 14px;
    padding: 5px 0;
    border-radius: 15px;
    font-weight: bold;
}

/* テーマ曲セクション */
.theme-section {
    text-align: center;
    background-image: url('../img/bg_music.webp');
    background-color: #FFEBD7;
    background-repeat: no-repeat;
    background-position: right 0 top 36px;
    background-size: 120px auto;
    position: relative;
    padding: 40px 24px;

}
/* テーマ曲セクション用の波線（白ベースに薄ピンクの丸を並べて表現） */
.theme-section::before {
    background-image: radial-gradient(circle at 10px -5px, #ffffff 12px, #FFEBD7 13px);
}
.theme-lead {
    font-size: 16px;
    color: #ff5978;
    font-weight: bold;
    margin-bottom: 15px;
}
.video-wrapper {
    max-width: 600px;
    margin: 0 auto 20px;
    overflow: hidden;
    background: #000;
}
.video-wrapper video {
    width: 100%;
    display: block;
}

/* 歌詞（縦スクロール指定） */
.lyrics-container {
    max-width: 600px;
    margin: 0 auto;
    background: #fff;
    border-radius: 8px;
    padding: 16px;
}
.lyrics-title {
    color: #ff5978;
    font-weight: bold;
    font-size: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid #f3cbd7;
    padding-bottom: 16px;
}
.lyrics-scroll-box {
    height: 180px;
    overflow-y: scroll;
    text-align: center;
    font-size: 14px;
    padding-right: 5px;
}
.lyrics-scroll-box::-webkit-scrollbar {
    width: 6px;
}
.lyrics-scroll-box::-webkit-scrollbar-thumb {
    background-color: #d7d7d7;
    border-radius: 3px;
}

/* フッター */
footer {
    color: #5a4b4f;
    text-align: center;
    padding: 15px;
    font-size: 11px;
}
@media screen and (min-width: 600px) {
    .ch-profile {
        background-position: left -8px top 57px;
        padding-top: 82px;
    }
}