@charset "utf-8";
/* ----------------------------------------------------------------------
 歌詞検索サイト固有のスタイル
---------------------------------------------------------------------- */

html { color-scheme:light; }
body { background:#fff; color:#000; }

.u-phrase { display:inline-block; } /* 文節の途中で改行させない */
.u-pc-only { display:inline; }
@media (max-width: 767px) { .u-pc-only { display:none; } }

/* ----------------------------------------------------------------------
 サイトカラー (#ed80a7) に合わせた共通部品の調整
 白文字を載せる面は濃いローズ、線や装飾はサイトカラーを使う
---------------------------------------------------------------------- */
.p-header__logo .c-logo { color:rgb(var(--site-accent-dark)); }
.p-header__logo .c-logo__text { font-weight:700; }
.p-sidecat__headline { background-color:rgb(var(--site-accent-dark)); }
.p-sidecat__count--parent { border-color:rgba(var(--tcd-accent-color),0.6) !important; }
.p-sidecat__item--parent:hover, .is-active .p-sidecat__item--parent { color:rgb(var(--site-accent-dark)); }
.l-sidenav__inner { border-right-color:rgba(var(--tcd-accent-color),0.35); }
.c-breadcrumb__item > span { color:rgb(var(--site-accent-dark)); }
.p-global__nav > li > a:hover { color:rgb(var(--site-accent-dark)); }
/* ヘッダーのサブメニュー (更新情報(SNS))。開閉と位置は app.js */
.p-global__nav > li.menu-item-has-children > a:after { content:""; width:6px; height:6px; margin:-3px 0 0 8px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform 0.2s; }
.p-global__nav > li.menu-item-has-children.is-active > a:after { transform:translateY(3px) rotate(-135deg); }
.p-submenu { min-width:200px; visibility:hidden; box-shadow:0 6px 16px rgba(0,0,0,0.08); }
.p-submenu.is-open { visibility:visible; }
.p-submenu__link { display:flex; align-items:center; }
.p-archive__link:hover .p-archive__item-title { color:rgb(var(--site-accent-dark)); }
.p-footer__info { background-color:rgb(var(--site-accent-dark)); }
/* フッターのサブメニュー (更新情報(SNS))。帯の上に開く。開閉は app.js */
.p-footer-submenu { position:relative; }
.p-footer-submenu > a:after { content:""; display:inline-block; width:5px; height:5px; margin:0 0 1px 7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-135deg); vertical-align:middle; }
.p-footer__info-nav .p-footer-submenu__list { display:block; height:auto; white-space:nowrap; position:absolute; bottom:calc(100% + 21px); left:50%; z-index:10; min-width:160px; padding:6px 0; background:#fff; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,0.15); text-align:left; visibility:hidden; opacity:0; transform:translate(-50%, 6px); transition:opacity 0.2s, transform 0.2s, visibility 0.2s; }
.p-footer-submenu__list:after { content:""; position:absolute; top:100%; left:0; width:100%; height:21px; } /* マウスで帯からメニューへ移るときの隙間を埋める */
.p-footer__info-nav .p-footer-submenu__list.is-open { visibility:visible; opacity:1; transform:translate(-50%, 0); }
.p-footer__info-nav .p-footer-submenu__list a { display:block; padding:12px 20px; color:#000; }
.p-footer__info-nav .p-footer-submenu__list a:hover { color:#fff; background:rgb(var(--site-accent-dark)); }
/* 幅の狭い PC では、左のロゴと重ならないようメニューを右に寄せて詰める */
@media (min-width: 768px) and (max-width: 1100px) {
  .p-footer__info-nav { text-align:right; }
  .p-footer__info-nav ul > li > a { padding:0 10px; }
}
/* スマホではフッターのメニューを横スクロールさせず折り返す (項目が増えて 1 行に収まらないため) */
@media (max-width: 767px) {
  .p-footer__info { height:auto; padding:12px 0; }
  .p-footer__info-nav { overflow:visible; }
  .p-footer__info-nav > ul { display:flex; flex-wrap:wrap; justify-content:center; row-gap:14px; white-space:normal; }
  .p-footer__info-nav .p-footer-submenu__list { bottom:calc(100% + 10px); }
  .p-footer-submenu__list:after { height:10px; }
}
.p-footer__copyright { background:rgb(var(--site-accent-pale)); color:rgb(var(--site-accent-deep)); }
.p-return-top-button { background-color:rgb(var(--tcd-accent-color)); }
.p-page-header__tag { background:rgb(var(--site-accent-pale)); }
.p-page-header__tag-headline { color:rgb(var(--site-accent-deep)); }
.p-page-header__tag-count { background:#fff; color:rgb(var(--site-accent-dark)); }
.c-search-form { border-color:rgba(var(--tcd-accent-color),0.6); }
.c-search-form__button label { color:rgb(var(--site-accent-dark)); }
.c-pagination__item .current { border-color:rgb(var(--tcd-accent-color)); color:rgb(var(--site-accent-dark)); }
.c-post-tags:before { color:rgb(var(--tcd-accent-color)); }
::selection { background:rgba(var(--tcd-accent-color),0.3); }

/* 言語ラベル (c-category を流用) */
.c-category--lang { color:rgb(var(--site-accent-dark)); border-color:rgb(var(--tcd-accent-color)); }
.c-category--lang .c-category__bg { background-color:rgb(var(--tcd-accent-color)); }

/* ----------------------------------------------------------------------
 トップ
---------------------------------------------------------------------- */
.p-hero {
  position:relative; padding:40px 50px 60px; text-align:center; color:rgb(var(--site-accent-deep));
  background:linear-gradient(180deg, #fff 0%, #fff 55%, rgb(var(--site-accent-pale)) 100%);
  border-bottom:1px solid rgba(var(--tcd-accent-color),0.35);
}
.p-hero__inner { max-width:760px; margin:0 auto; }
.p-hero__visual { max-width:800px; margin:0 auto; }
.p-hero__visual img { display:block; width:100%; height:auto; }
.p-hero__catch { font-size:34px; line-height:1.5; margin-top:5px; }
.p-hero__desc { font-size:15px; line-height:2; margin-top:15px; color:#555; }
.p-hero__form { margin-top:30px; }
.p-hero__form .c-search-form,
.p-search-panel__form .c-search-form { background:#fff; border:2px solid rgb(var(--tcd-accent-color)); border-radius:60px; overflow:hidden; box-shadow:0 8px 24px rgba(var(--tcd-accent-color),0.18); }
.p-hero__form .c-search-form__text input,
.p-search-panel__form .c-search-form__text input { height:60px; font-size:16px; padding-left:28px; background:transparent; border:none; }
.p-hero__form .c-search-form__button label,
.p-search-panel__form .c-search-form__button label { color:rgb(var(--site-accent-dark)); }
@media (max-width: 767px) {
  .p-hero { padding:20px 20px 40px; }
  .p-hero__catch { font-size:22px; }
  .p-hero__desc { font-size:13px; }
  .p-hero__form .c-search-form__text input,
  .p-search-panel__form .c-search-form__text input { height:50px; padding-left:20px; }
}

.p-home-section { padding:50px; border-bottom:1px solid #ddd; }
.p-home-section--flush { padding:50px 0 0; }
.p-home-section--flush .p-home-section__title { padding:0 50px; }
.p-home-section__title { font-size:22px; line-height:1.4; margin-bottom:30px; }
.p-home-section__title:after { content:''; display:block; width:30px; height:3px; margin-top:15px; background:rgb(var(--tcd-accent-color)); }
.p-home-section--flush .p-archive { border-top:1px solid #ddd; }
@media (max-width: 767px) {
  .p-home-section { padding:35px 25px; }
  .p-home-section--flush { padding:35px 0 0; }
  .p-home-section--flush .p-home-section__title { padding:0 25px; }
}

.p-tag-cloud { display:flex; flex-wrap:wrap; gap:10px; }
.p-tag-cloud__item {
  display:inline-flex; align-items:center; gap:8px; font-size:14px; line-height:1;
  padding:10px 16px; border:1px solid #ddd; border-radius:30px; transition:border-color 0.2s, color 0.2s;
}
.p-tag-cloud__item span { font-size:12px; color:#999; }
.p-tag-cloud__item:hover { color:rgb(var(--site-accent-dark)); border-color:rgb(var(--tcd-accent-color)); background:rgb(var(--site-accent-pale)); }

.p-more { text-align:center; padding:50px; }
.p-more__button {
  display:inline-flex; align-items:center; justify-content:center; min-width:240px; height:55px; padding:0 30px;
  border:1px solid rgb(var(--tcd-accent-color)); color:rgb(var(--site-accent-dark)); font-size:14px; transition:background-color 0.2s, color 0.2s;
}
.p-more__button:hover { background:rgb(var(--site-accent-dark)); border-color:rgb(var(--site-accent-dark)); color:#fff; }

/* ----------------------------------------------------------------------
 曲カード
---------------------------------------------------------------------- */
.p-song-card__sub { font-size:13px; line-height:1.6; color:#666; margin-top:12px; }
.p-song-card__artist { font-weight:600; color:#333; margin-right:10px; }
.p-song-card__alt { margin-right:10px; }
.p-song-card__hymnal {
  display:inline-block; margin:0 8px 4px 0; padding:0 8px; font-size:12px; line-height:1.8;
  border-radius:3px; background:rgb(var(--site-accent-pale)); color:rgb(var(--site-accent-dark));
}
.p-song-card__alt:before { content:'/ '; color:#bbb; }
.p-archive__item--type1 .p-archive__item-desc.p-lyric-snippet {
  display:block; font-size:14px; line-height:1.9; max-height:3.8em; margin:15px 0 0; color:#555;
}
.p-lyric-snippet mark { background:rgba(var(--tcd-accent-color),0.15); color:inherit; font-style:normal; font-weight:600; padding:0 1px; }
.p-lyric-snippet__sep { color:#bbb; margin:0 4px; }
/* 曲カードの動画 (サムネイル代わり) */
.p-archive__item:has(> .p-song-card__video) { flex-direction:column; }
.p-archive__item:has(> .p-song-card__video) > .p-archive__link { flex:1; }
.p-song-card__video { padding:50px 50px 0; }
.p-archive__item--related .p-song-card__video { padding:30px 50px 0; }
.p-song-card__video + .p-archive__link .p-archive__item-content { padding-top:24px; }
/* 曲一覧の「歌詞ページを表示」ボタン (デザインは歌詞ページの「この歌詞に似た曲を探す」と同じ) */
.p-archive__item:has(> .p-song-card__actions) { flex-direction:column; }
.p-archive__item:has(> .p-song-card__actions) > .p-archive__link { flex:1; }
.p-archive__link:has(+ .p-song-card__actions) .p-archive__item-content { padding-bottom:24px; }
.p-song-card__actions { padding:0 50px 50px; }
/* 検索結果ではボタンの下に「近い」「違う」が続く */
.p-archive__item--feedback .p-song-card__actions { padding-bottom:20px; }
.p-song-card__actions + .p-feedback { margin-top:0; }
.p-song-card__video-frame {
  display:block; position:relative; width:100%; aspect-ratio:16 / 9; padding:0; border:0; background:#000; cursor:pointer; overflow:hidden;
}
.p-song-card__video-frame img { width:100%; height:100%; object-fit:cover; transition:opacity 0.2s; }
.p-song-card__video-frame:hover img { opacity:0.85; }
.p-song-card__play {
  position:absolute; top:50%; left:50%; width:64px; height:44px; margin:-22px 0 0 -32px; border-radius:12px;
  background:rgba(var(--site-accent-dark),0.9); transition:background 0.2s;
}
.p-song-card__play::after {
  content:''; position:absolute; top:50%; left:50%; width:15px; height:18px; margin:-9px 0 0 -6px;
  background:#fff; clip-path:polygon(0 0, 100% 50%, 0 100%);
}
.p-song-card__video-frame:hover .p-song-card__play { background:rgb(var(--tcd-accent-color)); }
@media (max-width: 767px) {
  .p-song-card__video { padding:30px 25px 0; }
  .p-archive__item--related .p-song-card__video { padding:20px 25px 0; }
  .p-song-card__video + .p-archive__link .p-archive__item-content { padding-top:18px; }
  .p-archive__link:has(+ .p-song-card__actions) .p-archive__item-content { padding-bottom:18px; }
  .p-song-card__actions { padding:0 25px 30px; }
  .p-archive__item--feedback .p-song-card__actions { padding-bottom:16px; }
}
@media (max-width: 767px) {
  .p-archive__item--type1 .p-archive__item-desc.p-lyric-snippet { display:block; font-size:13px; }
}
.c-no-post { padding:50px; font-size:15px; line-height:2; }

/* ----------------------------------------------------------------------
 検索
---------------------------------------------------------------------- */
.p-search-panel { padding:0 50px 40px; border-bottom:1px solid #ddd; }
.p-search-panel__form .c-search-form { display:flex; max-width:500px; margin:30px auto 0; } /* トップの検索欄と同じ幅で中央に (テーマは inline-flex なので auto では寄らない) */
.p-search-panel__filters { display:flex; flex-wrap:wrap; justify-content:center; gap:15px 25px; margin-top:20px; font-size:13px; }
.p-search-panel__filters label { display:flex; align-items:center; gap:8px; color:#666; }
.p-search-panel__filters select { font-size:13px; padding:6px 10px; border:1px solid #ddd; background:#fff; border-radius:0; }
@media (max-width: 767px) { .p-search-panel { padding:0 25px 30px; } }

.p-feedback-state, .p-query-terms { max-width:720px; margin:25px auto 0; font-size:13px; line-height:1.6; }
.p-feedback-state__title, .p-query-terms__title { color:#999; margin-bottom:8px; }
.p-feedback-state__list, .p-query-terms__list { display:flex; flex-wrap:wrap; gap:6px; }
.p-feedback-state__reset { display:inline-block; margin-top:10px; color:#999; text-decoration:underline; }
.p-chip { display:inline-flex; align-items:center; gap:8px; padding:5px 12px; border-radius:20px; }
.p-chip a { color:inherit; opacity:0.6; font-size:14px; }
.p-chip a:hover { opacity:1; }
.p-chip--rel { background:rgb(var(--site-accent-pale)); color:rgb(var(--site-accent-dark)); border:1px solid rgba(var(--tcd-accent-color),0.5); }
.p-chip--nrel { background:#f1f1f1; color:#777; text-decoration:line-through; text-decoration-color:rgba(0,0,0,0.25); }
.p-query-terms__item {
  padding:4px 10px; border-radius:3px; border:1px solid #ddd;
  background:rgba(var(--tcd-accent-color), calc(var(--w, 0.3) * 0.25));
}
.p-query-terms__item.is-expanded { border-style:dashed; border-color:rgb(var(--tcd-accent-color)); }

.p-search-help { padding:50px; font-size:15px; line-height:2.1; max-width:820px; }

.p-archive__item--feedback { flex-direction:column; }
.p-archive__item--feedback .p-archive__link { flex:1; }
.p-feedback { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:0 50px 35px; margin-top:-15px; font-size:13px; }
.p-feedback__lyric { color:#999; margin-right:auto; }
.p-feedback__toggle input { position:absolute; opacity:0; pointer-events:none; }
.p-feedback__toggle span {
  display:inline-flex; align-items:center; gap:5px; height:32px; padding:0 14px; border:1px solid #ddd; border-radius:20px;
  cursor:pointer; user-select:none; transition:all 0.15s;
}
.p-feedback__toggle--rel span:before { content:'+'; font-weight:600; }
.p-feedback__toggle--nrel span:before { content:'−'; font-weight:600; }
.p-feedback__toggle span:hover { border-color:#999; }
.p-feedback__toggle input:focus-visible + span { outline:2px solid rgb(var(--tcd-accent-color)); outline-offset:2px; }
.p-feedback__toggle--rel input:checked + span { background:rgb(var(--site-accent-dark)); border-color:rgb(var(--site-accent-dark)); color:#fff; }
.p-feedback__toggle--nrel input:checked + span { background:#555; border-color:#555; color:#fff; }
.p-feedback__similar { margin-left:auto; color:#999; text-decoration:underline; }
.p-feedback__lyric + .p-feedback__toggle { margin-left:0; }
@media (max-width: 767px) { .p-feedback { padding:0 25px 25px; margin-top:-5px; } }

.p-feedback-bar {
  position:sticky; bottom:0; z-index:20; display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap;
  padding:15px 30px; background:rgba(255,255,255,0.96); border-top:1px solid #ddd; font-size:13px;
}
.p-feedback-bar.is-dirty { background:rgb(var(--site-accent-dark)); color:#fff; border-top-color:transparent; }
.p-feedback-bar__button {
  height:42px; padding:0 28px; border:1px solid currentColor; background:transparent; color:inherit; font-size:14px; cursor:pointer;
}
.p-feedback-bar.is-dirty .p-feedback-bar__button { background:#fff; color:rgb(var(--site-accent-dark)); border-color:#fff; font-weight:600; }

/* ----------------------------------------------------------------------
 一覧ツール
---------------------------------------------------------------------- */
.p-list-tools { display:flex; flex-wrap:wrap; justify-content:space-between; gap:15px; padding:30px 50px; border-bottom:1px solid #ddd; font-size:13px; }
.p-list-tools__group { display:flex; flex-wrap:wrap; gap:6px; }
.p-list-tools__link { padding:6px 14px; border:1px solid #ddd; border-radius:20px; }
.p-list-tools__link.is-active { background:rgb(var(--site-accent-dark)); border-color:rgb(var(--site-accent-dark)); color:#fff; }
@media (max-width: 767px) { .p-list-tools { padding:30px 25px 25px; } }

/* ----------------------------------------------------------------------
 曲ページ
---------------------------------------------------------------------- */
.p-song__artist { font-size:16px; margin-top:15px; color:#555; }
.p-song__admin { margin-top:20px; }
.p-song__edit {
  display:inline-flex; align-items:center; height:36px; padding:0 18px; font-size:13px; border-radius:18px;
  background:rgb(var(--site-accent-dark)); color:#fff; transition:opacity 0.2s;
}
.p-song__edit:before { content:'✎'; margin-right:6px; }
.p-song__edit:hover { color:#fff; opacity:0.85; }
.p-song__titles { margin-top:20px; font-size:14px; line-height:1.7; }
.p-song__title-row { display:flex; gap:12px; }
.p-song__titles dt { flex:0 0 auto; min-width:7em; color:#999; font-size:12px; padding-top:2px; }
.p-song__title-reading { color:#999; font-size:12px; }
.p-article__header-title ruby rt { font-size:0.4em; font-weight:normal; color:#888; }

.p-lyric { padding:10px 0 20px; }
.p-lyric__toolbar { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px; margin-bottom:30px; border-bottom:1px solid #ddd; }
.p-lyric__tabs { display:flex; flex-wrap:wrap; gap:0; margin-bottom:-1px; }
.p-lyric__tab {
  background:none; border:1px solid transparent; border-bottom-color:#ddd; padding:12px 18px; font-size:14px; cursor:pointer; color:#777;
}
.p-lyric__tab.is-active { border-color:#ddd; border-top:3px solid rgb(var(--tcd-accent-color)); border-bottom-color:#fff; color:#000; font-weight:600; }
.p-lyric__tab-lang { font-size:11px; color:#999; font-weight:normal; margin-left:4px; }
.p-lyric__ruby-toggle {
  margin:0 0 10px; height:32px; padding:0 14px; font-size:12px; border-radius:20px; cursor:pointer;
  /* 「ひらがなにする」「漢字+読みで表示」どちらの状態も同じ色 */
  border:1px solid rgb(var(--site-accent-dark)); background:rgb(var(--site-accent-dark)); color:#fff;
}
.p-lyric__label { font-size:14px; color:#666; margin-bottom:20px; }
/* 歌詞の上の注意書き (読みの誤りについて) */
.p-lyric__notice { font-size:12px; line-height:1.8; color:#d0021b; margin:0 0 20px; }
.p-lyric__body { font-size:18px; line-height:2.3; letter-spacing:0.03em; }
.p-lyric__stanza + .p-lyric__stanza { margin-top:1.6em; }
.p-lyric__body ruby rt { font-size:0.5em; color:rgb(var(--site-accent-dark)); opacity:0.8; letter-spacing:0; }
/* ひらがな表示: 漢字 (ruby) を隠し、読みの span を出す */
.p-lyric__comment { color:#8b5a2b; }
.p-lyric__kana { display:none; }
.p-lyric.is-hiragana .p-lyric__body ruby { display:none; }
.p-lyric.is-hiragana .p-lyric__kana { display:inline; }
.p-lyric__actions { margin-top:40px; }
.p-lyric-hidden { padding:24px; background:rgb(var(--site-accent-pale)); font-size:15px; line-height:1.9; }
.p-lyric-snippet__hidden { color:#999; }
.p-song-credits { margin-top:50px; padding-top:24px; border-top:1px solid #ddd; font-size:14px; line-height:1.8; }
.p-song-credits__row { display:flex; gap:16px; }
.p-song-credits__row + .p-song-credits__row { margin-top:6px; }
.p-song-credits dt { flex:0 0 7em; color:#888; }
.p-song-credits dd { margin:0; min-width:0; }
/* 楽譜の説明などのリンク: 青色と下線でリンクと分かるようにする (長い URL は折り返す) */
.p-song-credits dd a { color:#1a5fc8; text-decoration:underline; text-underline-offset:2px; overflow-wrap:anywhere; }
.p-song-credits dd a:hover { color:#0d3f8f; }
.p-lyric__similar {
  display:inline-flex; align-items:center; height:46px; padding:0 22px; font-size:14px;
  border:1px solid rgb(var(--tcd-accent-color)); color:rgb(var(--site-accent-dark)); transition:all 0.2s;
}
.p-lyric__similar:hover { background:rgb(var(--site-accent-dark)); border-color:rgb(var(--site-accent-dark)); color:#fff; }
/* シェア */
.p-share { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:50px; }
.p-share__button {
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:150px; height:46px; padding:0 20px;
  font-size:14px; border-radius:23px; border:1px solid transparent; cursor:pointer; font-family:inherit; white-space:nowrap; transition:opacity 0.2s, border-color 0.2s, color 0.2s;
}
.p-share__icon { width:20px; height:20px; fill:currentColor; flex:none; }
.p-share__button--line { background:#06c755; color:#fff; }
.p-share__button--x { background:#000; color:#fff; }
.p-share__button--line:hover, .p-share__button--x:hover { opacity:0.8; color:#fff; }
@media (max-width: 767px) {
  .p-share { gap:10px; }
  .p-share__button { min-width:0; flex:1 1 calc(50% - 5px); padding:0 12px; white-space:nowrap; }
  .p-lyric__body { font-size:16px; line-height:2.1; }
  .p-lyric__tab { padding:10px 12px; font-size:13px; }
}

.p-song-section { margin-top:60px; }
.p-song-section__title { font-size:20px; margin-bottom:25px; padding-bottom:15px; border-bottom:1px solid #ddd; }
.p-videos { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:25px; }
.p-video__frame { position:relative; padding-top:56.25%; background:#000; }
.p-video__frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.p-video__caption { font-size:13px; color:#666; margin-top:10px; line-height:1.5; }
.p-audio-embed { margin-bottom:15px; }
.p-audio-embed iframe { width:100%; border:0; border-radius:12px; }
.p-audio-embed--spotify iframe { height:152px; }
.p-audio-embed--apple_music iframe { height:175px; }
.p-audio-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.p-audio-link {
  display:inline-flex; align-items:center; height:44px; padding:0 20px; font-size:14px; border:1px solid #ddd; border-radius:30px; transition:all 0.2s;
}
.p-audio-link:after { content:'\e92a'; font-family:'design_plus'; font-size:11px; margin-left:8px; color:#999; }
.p-audio-link:hover { border-color:#000; }
.p-audio-link--spotify { border-color:#1db954; color:#14833b; }
.p-audio-link--apple_music { border-color:#fa2d48; color:#d61f3a; }

.p-related { margin-top:20px; border-top:1px solid #ddd; }
.p-related__headline { font-size:20px; padding:40px 50px 30px; }
.p-related .p-archive { border-top:1px solid #ddd; }
@media (max-width: 767px) { .p-related__headline { padding:30px 25px 20px; } }

.p-recent-songs__item { height:auto !important; min-height:52px; padding-top:12px !important; padding-bottom:12px !important; }
.p-recent-songs__item .p-sidecat__item-name { font-size:15px; line-height:1.5; }
.p-recent-songs__count { font-size:12px; color:#999; margin-left:2px; white-space:nowrap; }

/* サイドナビ: 左に並ばない幅 (1300px 以下) では、ドロワーにせず本文の後ろに表示する */
@media (max-width: 1300px) {
  .l-sidenav { order:3; width:100%; border-top:1px solid #ddd; }
  .l-sidenav__inner {
    position:static; transform:none; transition:none; width:auto; height:auto !important;
    overflow:visible; z-index:auto; border-right:none;
  }
  .p-sidenav__overlay { display:none; }
  .p-header__menu-button { display:none; }
  .p-header__menu-button + .p-global__nav-wrapper { width:100%; }
  .p-header__menu-button + .p-global__nav-wrapper .p-global__nav { margin-left:0; }
  .p-header__menu-button + .p-global__nav-wrapper .p-global__nav > li:first-child { padding-left:15px; }
}

.p-sidenav__empty { padding:20px 30px; font-size:13px; color:#999; }

/* ----------------------------------------------------------------------
 お問い合わせ
---------------------------------------------------------------------- */
.p-contact { max-width:760px; margin:0 auto; }
.p-contact__intro p { font-size:15px; line-height:2; }
.p-contact__intro p + p { margin-top:1em; }
.p-contact__title { font-size:20px; margin:50px 0 24px; padding-bottom:12px; border-bottom:1px solid #ddd; }
.p-contact__notice { margin-bottom:24px; padding:16px 20px; font-size:15px; }
.p-contact__notice--ok { background:rgb(var(--site-accent-pale)); color:rgb(var(--site-accent-deep)); }
.p-contact__notice--ng { background:#fdecea; color:#a8322a; }
.p-contact__trap { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.p-contact__field { margin:0 0 24px; padding:0; border:0; min-width:0; }
.p-contact__field > label, .p-contact__field legend { display:block; margin-bottom:8px; font-size:15px; font-weight:600; padding:0; }
.p-contact__required { margin-left:6px; padding:1px 6px; font-size:11px; font-weight:normal; border-radius:3px; background:rgb(var(--site-accent-dark)); color:#fff; vertical-align:2px; }
.p-contact__field input[type="text"], .p-contact__field input[type="email"], .p-contact__field textarea {
  width:100%; padding:12px 14px; font-size:16px; border:1px solid #ccc; border-radius:4px; background:#fff; color:inherit; font-family:inherit;
}
.p-contact__field textarea { line-height:1.8; resize:vertical; }
.p-contact__field input:focus, .p-contact__field textarea:focus { outline:none; border-color:rgb(var(--tcd-accent-color)); box-shadow:0 0 0 3px rgba(var(--tcd-accent-color),0.2); }
.p-contact__field.is-error input, .p-contact__field.is-error textarea { border-color:#d9534f; }
.p-contact__error { margin-top:6px; font-size:13px; color:#c0392b; }
.p-contact__radios { display:flex; flex-direction:column; gap:10px; }
.p-contact__radio { display:inline-flex; align-items:center; gap:8px; font-size:15px; cursor:pointer; width:fit-content; }
.p-contact__radio input { width:18px; height:18px; margin:0; accent-color:rgb(var(--site-accent-dark)); }
.p-contact__submit { text-align:center; margin-top:36px; }
.p-contact__button {
  min-width:220px; height:54px; padding:0 30px; font-size:16px; border:0; border-radius:27px; cursor:pointer;
  background:rgb(var(--site-accent-dark)); color:#fff; transition:background 0.2s;
}
.p-contact__button:hover { background:rgb(var(--tcd-accent-color)); }

/* リンク集 */
.p-links { max-width:760px; margin:0 auto; }
.p-links__title { font-size:20px; margin:50px 0 16px; padding-bottom:12px; border-bottom:1px solid #ddd; }
.p-links__title:first-child { margin-top:0; }
.p-links__lead { font-size:15px; line-height:2; margin-bottom:12px; }
.p-links__list { list-style:none; margin:0; padding:0; }
.p-links__list li { padding:12px 0; border-bottom:1px dotted #ddd; font-size:15px; line-height:1.8; }
.p-links__list a { color:rgb(var(--site-accent-dark)); text-decoration:underline; text-underline-offset:3px; }
.p-links__list a:hover { color:rgb(var(--tcd-accent-color)); }
.p-links__note { display:block; font-size:13px; color:#777; }
.p-contact__intro a { color:rgb(var(--site-accent-dark)); text-decoration:underline; text-underline-offset:3px; }

/* ----------------------------------------------------------------------
 祈り室モード (ダークモード) の切り替え
---------------------------------------------------------------------- */
/* サイドバーの項目名付きスイッチ */
.p-theme-setting { display:flex; align-items:center; gap:12px; padding:18px 30px; border-bottom:1px solid #ddd; }
.p-theme-setting__label { font-size:15px; line-height:1.5; font-weight:600; cursor:pointer; }
.p-theme-setting__label small { display:block; font-size:12px; font-weight:normal; color:#888; }
.p-theme-switch { flex:0 0 auto; padding:0; border:none; background:none; cursor:pointer; border-radius:20px; }
.p-theme-switch:focus-visible { outline:2px solid rgb(var(--tcd-accent-color)); outline-offset:3px; }
.p-theme-switch__track { position:relative; display:block; width:46px; height:26px; border-radius:26px; background:#ccc; transition:background-color 0.2s; }
.p-theme-switch__thumb { position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,0.3); transition:transform 0.2s; }
.p-theme-switch[aria-checked="true"] .p-theme-switch__track { background:rgb(var(--site-accent-dark)); }
.p-theme-switch[aria-checked="true"] .p-theme-switch__thumb { transform:translateX(20px); }
@media (max-width: 767px) { .p-theme-setting { padding:16px 20px; } }

/* ----------------------------------------------------------------------
 祈り室モード (ダークモード) の配色
 暗い場所で目に刺さらないよう、真っ黒・真っ白を避けた落ち着いた色にする
---------------------------------------------------------------------- */
html[data-theme="dark"] {
  color-scheme:dark;
  --d-bg:22,19,26;        /* #16131a 背景 */
  --d-surface:31,26,35;   /* #1f1a23 面 */
  --d-surface-2:42,35,48; /* #2a2330 入力欄など */
  --d-border:58,49,65;    /* #3a3141 線 */
  --d-text:232,225,235;   /* #e8e1eb 文字 */
  --d-muted:170,160,176;  /* #aaa0b0 補足の文字 */
  --site-accent-dark:214,96,140;   /* #d6608c 白文字を載せる面・強調 */
  --site-accent-deep:246,200,218;  /* #f6c8da 見出し文字 */
  --site-accent-pale:42,30,38;     /* #2a1e26 淡い面 */
  --tcd-link-color:244,166,195;
}
html[data-theme="dark"] body { background:rgb(var(--d-bg)); color:rgb(var(--d-text)); }
:where(html[data-theme="dark"]) a, :where(html[data-theme="dark"]) button { color:rgb(var(--d-text)); }
html[data-theme="dark"] *, html[data-theme="dark"] *::before, html[data-theme="dark"] *::after { border-color:rgb(var(--d-border)); }
html[data-theme="dark"] ::placeholder { color:rgb(var(--d-muted)); }

/* 面の色 */
html[data-theme="dark"] .l-header,
html[data-theme="dark"] .l-sidenav__inner,
html[data-theme="dark"] .p-sidecat__list,
html[data-theme="dark"] .p-header__search { background:rgb(var(--d-bg)); }
html[data-theme="dark"] .p-submenu { background:rgb(var(--d-surface)); }
html[data-theme="dark"] .p-submenu__link { color:rgb(var(--d-text)); }
html[data-theme="dark"] .p-footer-submenu__list { background:rgb(var(--d-surface)); }
html[data-theme="dark"] .p-footer__info-nav .p-footer-submenu__list a { color:rgb(var(--d-text)); }
html[data-theme="dark"] .p-footer__info-nav .p-footer-submenu__list a:hover { color:#fff; background:rgb(var(--site-accent-dark)); }
html[data-theme="dark"] .p-submenu__link:hover { color:#fff; background:rgb(var(--site-accent-dark)); }
html[data-theme="dark"] .c-search-form,
html[data-theme="dark"] .p-hero__form .c-search-form,
html[data-theme="dark"] .p-search-panel__form .c-search-form,
html[data-theme="dark"] .p-header__search-form input,
html[data-theme="dark"] .p-header__search-button,
html[data-theme="dark"] .p-search-panel__filters select { background:rgb(var(--d-surface-2)); color:rgb(var(--d-text)); }
html[data-theme="dark"] .c-search-form__text input { color:rgb(var(--d-text)); background:transparent; }
html[data-theme="dark"] .p-hero { background:linear-gradient(180deg, rgb(var(--d-bg)) 0%, rgb(var(--d-bg)) 55%, rgb(var(--site-accent-pale)) 100%); }
html[data-theme="dark"] .p-hero__visual img { opacity:0.9; }
html[data-theme="dark"] .p-hero__desc { color:rgb(var(--d-muted)); }
html[data-theme="dark"] .p-page-header__tag-count,
html[data-theme="dark"] .p-sidecat__count { background:rgb(var(--d-surface-2)); color:rgb(var(--d-text)); }
html[data-theme="dark"] .p-return-top-button { background-color:rgb(var(--site-accent-dark)); }
html[data-theme="dark"] .p-return-top-button:before { color:#fff; }
html[data-theme="dark"] .p-feedback-bar { background:rgba(var(--d-surface),0.97); }
html[data-theme="dark"] .p-feedback-bar.is-dirty { background:rgb(var(--site-accent-dark)); }
html[data-theme="dark"] .p-feedback-bar.is-dirty .p-feedback-bar__button { background:#fff; color:rgb(122,38,72); }
html[data-theme="dark"] .p-search { background:rgb(var(--d-surface)); }
html[data-theme="dark"] .p-chip--nrel { background:rgb(var(--d-surface-2)); color:rgb(var(--d-muted)); }
html[data-theme="dark"] .p-lyric__tab.is-active { border-bottom-color:rgb(var(--d-bg)); }
html[data-theme="dark"] .p-theme-switch__track { background:#555; }
html[data-theme="dark"] .p-theme-switch[aria-checked="true"] .p-theme-switch__track { background:rgb(var(--site-accent-dark)); }
html[data-theme="dark"] .p-theme-switch__thumb { background:#f2edf4; }

/* 文字色 */
html[data-theme="dark"] .p-header__logo .c-logo { color:rgb(var(--tcd-link-color)); }
html[data-theme="dark"] .p-hero__catch,
html[data-theme="dark"] .p-page-header__tag-headline { color:rgb(var(--site-accent-deep)); }
html[data-theme="dark"] .p-song-card__sub,
html[data-theme="dark"] .p-archive__item--type1 .p-archive__item-desc.p-lyric-snippet,
html[data-theme="dark"] .p-song__artist,
html[data-theme="dark"] .p-song-credits dt,
html[data-theme="dark"] .p-lyric__label,
html[data-theme="dark"] .p-video__caption,
html[data-theme="dark"] .p-search-panel__filters label,
html[data-theme="dark"] .p-theme-setting__label small { color:rgb(var(--d-muted)); }
html[data-theme="dark"] .p-lyric__notice { color:#ff7b7b; }
html[data-theme="dark"] .p-song-card__artist { color:rgb(var(--d-text)); }
html[data-theme="dark"] .c-post-tags,
html[data-theme="dark"] .c-post-tags__link,
html[data-theme="dark"] .c-date,
html[data-theme="dark"] .p-tag-cloud__item span,
html[data-theme="dark"] .p-recent-songs__count,
html[data-theme="dark"] .p-lyric__tab-lang,
html[data-theme="dark"] .p-feedback__lyric,
html[data-theme="dark"] .p-feedback__similar,
html[data-theme="dark"] .p-feedback-state__title,
html[data-theme="dark"] .p-query-terms__title,
html[data-theme="dark"] .p-feedback-state__reset,
html[data-theme="dark"] .p-song__titles dt,
html[data-theme="dark"] .p-song__title-reading,
html[data-theme="dark"] .p-sidenav__empty { color:rgb(var(--d-muted)); }
html[data-theme="dark"] .p-lyric__tab { color:rgb(var(--d-muted)); }
html[data-theme="dark"] .p-lyric__tab.is-active,
html[data-theme="dark"] .p-lyric__body { color:rgb(var(--d-text)); }
html[data-theme="dark"] .p-lyric__comment { color:#c9a27a; }
html[data-theme="dark"] .p-lyric__body ruby rt { color:rgb(var(--tcd-link-color)); opacity:0.85; }
html[data-theme="dark"] .p-lyric-snippet mark { background:rgba(var(--tcd-accent-color),0.28); }
html[data-theme="dark"] .p-footer__copyright { color:rgb(var(--site-accent-deep)); }
html[data-theme="dark"] .p-sidecat__item--parent:hover,
html[data-theme="dark"] .p-global__nav > li > a:hover,
html[data-theme="dark"] .p-archive__link:hover .p-archive__item-title,
html[data-theme="dark"] .c-breadcrumb__item > span,
html[data-theme="dark"] .c-search-form__button label,
html[data-theme="dark"] .p-hero__form .c-search-form__button label,
html[data-theme="dark"] .p-search-panel__form .c-search-form__button label,
html[data-theme="dark"] .c-category--lang,
html[data-theme="dark"] .p-tag-cloud__item:hover,
html[data-theme="dark"] .p-chip--rel,
html[data-theme="dark"] .p-lyric__similar,
html[data-theme="dark"] .p-more__button,
html[data-theme="dark"] .c-pagination__item .current,
html[data-theme="dark"] .p-audio-link--spotify,
html[data-theme="dark"] .p-audio-link--apple_music { color:rgb(var(--tcd-link-color)); }
html[data-theme="dark"] .p-lyric__similar:hover,
html[data-theme="dark"] .p-more__button:hover { color:#fff; }

/* サイトカラーの線 (共通の線の色より優先) */
html[data-theme="dark"] .c-category--lang,
html[data-theme="dark"] .p-hero__form .c-search-form,
html[data-theme="dark"] .p-search-panel__form .c-search-form,
html[data-theme="dark"] .p-tag-cloud__item:hover,
html[data-theme="dark"] .p-query-terms__item.is-expanded,
html[data-theme="dark"] .p-lyric__similar,
html[data-theme="dark"] .p-more__button,
html[data-theme="dark"] .c-pagination__item .current,
html[data-theme="dark"] .p-lyric__tab.is-active { border-color:rgb(var(--tcd-accent-color)); }
html[data-theme="dark"] .p-lyric__tab.is-active { border-left-color:rgb(var(--d-border)); border-right-color:rgb(var(--d-border)); border-bottom-color:rgb(var(--d-bg)); }
html[data-theme="dark"] .c-search-form,
html[data-theme="dark"] .p-chip--rel,
html[data-theme="dark"] .p-sidecat__count--parent { border-color:rgba(var(--tcd-accent-color),0.5) !important; }
html[data-theme="dark"] .p-feedback__toggle--rel input:checked + span,
html[data-theme="dark"] .p-list-tools__link.is-active,
html[data-theme="dark"] .p-lyric__ruby-toggle,
html[data-theme="dark"] .p-lyric__similar:hover,
html[data-theme="dark"] .p-more__button:hover { background:rgb(var(--site-accent-dark)); border-color:rgb(var(--site-accent-dark)); color:#fff; }
html[data-theme="dark"] .p-feedback__toggle--nrel input:checked + span { background:#6a6070; border-color:#6a6070; color:#fff; }
html[data-theme="dark"] .p-audio-link--spotify { border-color:#1db954; }
html[data-theme="dark"] .p-audio-link--apple_music { border-color:#fa2d48; }
html[data-theme="dark"] .p-home-section__title:after { background:rgb(var(--tcd-accent-color)); }
/* 暗い場所でまぶしくないよう、帯状の面は濃いローズに抑える */
html[data-theme="dark"] .p-sidecat__headline,
html[data-theme="dark"] .p-footer__info,
html[data-theme="dark"] .p-return-top-button { background-color:rgb(110,40,68); }
html[data-theme="dark"] .p-sidecat__headline,
html[data-theme="dark"] .p-footer__info-nav ul > li > a,
html[data-theme="dark"] .p-footer__logo .c-logo { color:rgb(var(--site-accent-deep)); }
/* テーマで黒が直接指定されている文字 */
html[data-theme="dark"] .p-sidecat__item--parent,
html[data-theme="dark"] .p-sidecat__count--parent,
html[data-theme="dark"] .c-pagination__item a,
html[data-theme="dark"] .c-pagination__item span { color:rgb(var(--d-text)); }
html[data-theme="dark"] .p-sidecat__item--parent:hover { color:rgb(var(--tcd-link-color)); }
html[data-theme="dark"] .c-pagination__item .current { color:rgb(var(--tcd-link-color)); }

/* 詳細ページ: ページ上部に置く祈り室モードのスイッチ (上下に線を引く) */
.p-theme-setting--page { padding:14px 40px; border-top:1px solid #ddd; border-bottom:1px solid #ddd; }
.p-theme-setting--page .p-theme-setting__label { font-size:14px; }
.p-theme-setting--page .p-theme-setting__label small { display:inline; margin-left:2px; }
@media (max-width: 1300px) { .p-theme-setting--page { padding:12px 20px; } }
@media (max-width: 767px) { .p-theme-setting--page .p-theme-setting__label small { display:block; margin-left:0; } }

/* サイドバーの一番下に置くスイッチ (上の一覧との区切り線を上側に) */
.p-theme-setting--side { border-bottom:none; border-top:1px solid #ddd; margin-top:-1px; }
html[data-theme="dark"] .p-lyric-hidden { background:rgba(var(--tcd-accent-color),0.12); }
html[data-theme="dark"] .p-song-credits { border-color:rgba(255,255,255,0.15); }
html[data-theme="dark"] .p-song-credits dd a { color:#7fb2ff; }
html[data-theme="dark"] .p-song-credits dd a:hover { color:#a9cbff; }
html[data-theme="dark"] .p-song-card__hymnal { background:rgba(var(--tcd-accent-color),0.15); color:rgb(var(--tcd-accent-color)); }
html[data-theme="dark"] .p-contact__title { border-color:rgba(255,255,255,0.15); }
html[data-theme="dark"] .p-contact__field input[type="text"],
html[data-theme="dark"] .p-contact__field input[type="email"],
html[data-theme="dark"] .p-contact__field textarea { background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.2); color:rgb(var(--d-text)); }
html[data-theme="dark"] .p-contact__notice--ok { background:rgba(var(--tcd-accent-color),0.15); color:rgb(var(--d-text)); }
html[data-theme="dark"] .p-contact__notice--ng { background:rgba(217,83,79,0.2); color:#f3b6b2; }
html[data-theme="dark"] .p-share__button--x { background:#fff; color:#000; }
html[data-theme="dark"] .p-share__button--x:hover { color:#000; }
html[data-theme="dark"] .p-links__title { border-color:rgba(255,255,255,0.15); }
html[data-theme="dark"] .p-links__list li { border-color:rgba(255,255,255,0.12); }
html[data-theme="dark"] .p-links__list a,
html[data-theme="dark"] .p-contact__intro a { color:rgb(var(--tcd-accent-color)); }
html[data-theme="dark"] .p-links__note { color:rgba(var(--d-text),0.65); }
