:root {
  --exp2606-main: #b90814;
  --exp2606-main-dark: #8f0610;
  --exp2606-main-light: #fff4f5;
  --exp2606-border: #f0c9cc;
  --exp2606-text: #222;
  --exp2606-muted: #666;
}

.exp2606-profile {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 20px 80px;
  color: var(--exp2606-text);
  box-sizing: border-box;
}

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

.exp2606-section {
  margin-top: 70px;
  overflow-wrap: anywhere;
}

.exp2606-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 18px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .06);
}

.exp2606-title {
  color: var(--exp2606-main);
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 34px;
}

.exp2606-breadcrumb {
  font-size: 13px;
  margin-bottom: 30px;
  color: #333;
}

/* ==============================
Profile
============================== */
.exp2606-hero {
  display: grid;
  grid-template-columns: 300px 1fr 320px;
  gap: 42px;
  padding: 42px;
  align-items: center;
}

.exp2606-hero-photo img {
  width: 300px;
  height: 300px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

.exp2606-hero-body h1 {
  color: var(--exp2606-main);
  font-size: 38px;
  margin: 0 0 20px;
  line-height: 1.2;
}

.exp2606-hero-body h1::after {
  content: "";
  display: block;
  width: 58px;
  height: 3px;
  background: var(--exp2606-main);
  margin-top: 14px;
}

.exp2606-hero-body p {
  font-size: 15px;
  line-height: 2;
  margin: 0 0 12px;
}

.exp2606-hero-table table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--exp2606-border);
}

.exp2606-hero-table th,
.exp2606-hero-table td {
  border: 1px solid var(--exp2606-border);
  padding: 18px 14px;
  font-size: 15px;
}

.exp2606-hero-table th {
  text-align: left;
  background: #fffafa;
  font-weight: 600;
}

.exp2606-hero-table td {
  text-align: center;
  font-size: 18px;
}

.exp2606-hero-table p {
  margin: 12px 0 0;
  font-size: 12px;
  color: var(--exp2606-muted);
  text-align: center;
}

/* ==============================
Audio
============================== */
.exp2606-audio-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px 70px;
  max-width: 980px;
  margin: 0 50px 0 50px;
}

.exp2606-audio-item {
  display: grid;
  grid-template-columns: 54px 150px minmax(180px, 1fr) 100px;
  align-items: center;
  gap: 14px;
  margin: 0 0 30px 0;
}

.exp2606-audio-btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  min-width: 48px;
  padding: 0;
  margin: 0;
  border: 2px solid #f1b7bd;
  border-radius: 50%;
  background: #fff;
  background-image: none;
  color: var(--exp2606-main);
  box-shadow: none;
  cursor: pointer;
  position: relative;
}

.exp2606-audio-btn-icon {
  display: block;
  width: 0;
  height: 0;
  margin-left: 4px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 15px solid var(--exp2606-main);
  pointer-events: none;
}

.exp2606-audio-btn.is-playing .exp2606-audio-btn-icon {
  width: 14px;
  height: 18px;
  margin-left: 0;
  border: 0;
  position: relative;
}

.exp2606-audio-btn.is-playing .exp2606-audio-btn-icon::before,
.exp2606-audio-btn.is-playing .exp2606-audio-btn-icon::after {
  content: "";
  position: absolute;
  top: 0;
  width: 5px;
  height: 18px;
  background: #fff;
  border-radius: 2px;
}

.exp2606-audio-btn.is-playing .exp2606-audio-btn-icon::before {
  left: 0;
}

.exp2606-audio-btn.is-playing .exp2606-audio-btn-icon::after {
  right: 0;
}

.exp2606-audio-btn.is-playing {
  background: var(--exp2606-main);
  border-color: var(--exp2606-main);
}

.exp2606-audio-name {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  color: var(--exp2606-text);
  font-weight: 600;
  word-break: keep-all;
}

.exp2606-audio-wave {
  display: block;
  width: 100%;
  height: 24px;
  opacity: .75;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 24px;
  background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20360%2048%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M0%2024%20C14%2020%2021%2028%2033%2024%20C46%2019%2053%2029%2066%2024%20C80%2018%2088%2030%20102%2024%20C119%2014%20129%2034%20146%2024%20C160%2016%20170%2032%20184%2024%20C198%2019%20206%2029%20220%2024%20C235%2017%20245%2031%20260%2024%20C274%2021%20282%2027%20296%2024%20C312%2020%20324%2028%20340%2024%20C348%2022%20354%2024%20360%2024%27%20fill%3D%27none%27%20stroke%3D%27%23cfd2d6%27%20stroke-width%3D%2710%27%20stroke-linecap%3D%27round%27/%3E%3Cpath%20d%3D%27M0%2024%20L360%2024%27%20stroke%3D%27%23e3e5e8%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27/%3E%3C/svg%3E");
}

.exp2606-audio-current,
.exp2606-audio-duration {
  display: block;
  font-size: 12px;
  color: #333;
  white-space: nowrap;
  font-weight: 600;
}

.exp2606-note {
  margin-top: 34px;
  text-align: center;
  font-size: 12px;
  color: var(--exp2606-muted);
}

/* ==============================
Results / Delivery
============================== */
.exp2606-info {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
}

/* 実績ブロックを削除した場合、対応可能納期を横いっぱいにする */
.exp2606-info .exp2606-delivery:only-child {
  grid-column: 1 / -1;
}

.exp2606-results,
.exp2606-delivery {
  padding: 28px;
  border-color: var(--exp2606-border);
  box-shadow: none;
}

.exp2606-results h2,
.exp2606-delivery h2 {
  color: var(--exp2606-main);
  text-align: center;
  margin: 0 0 24px;
  font-size: 20px;
}

.exp2606-results ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.exp2606-results li {
  margin: 16px 0;
  padding-left: 22px;
  position: relative;
}

.exp2606-results li::before {
  content: "●";
  color: var(--exp2606-main);
  position: absolute;
  left: 0;
  font-size: 12px;
}

/* 納期表：PCでは横長table、SPでは2列の縦表を表示 */
.exp2606-delivery {
  overflow: visible;
}

.exp2606-profile .exp2606-delivery-table,
.exp2606-profile .exp2606-delivery-table-pc {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 13px;
}

.exp2606-profile .exp2606-delivery-table-pc {
  display: table !important;
}

.exp2606-profile .exp2606-delivery-table th,
.exp2606-profile .exp2606-delivery-table td {
  border: 1px solid var(--exp2606-border);
  padding: 14px 10px;
  text-align: center;
  vertical-align: middle;
}

.exp2606-profile .exp2606-delivery-table th {
  background: var(--exp2606-main-light);
  font-weight: 700;
}

.exp2606-profile .exp2606-delivery-table td {
  background: #fff;
}

/* PCではモバイル用納期表示を必ず隠す */
.exp2606-profile .exp2606-delivery-mobile {
  display: none !important;
}

.exp2606-delivery-mobile {
  width: 100%;
  border: 1px solid var(--exp2606-border);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.exp2606-delivery-mobile-head,
.exp2606-delivery-mobile-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border-bottom: 1px solid var(--exp2606-border);
}

.exp2606-delivery-mobile-item:last-child {
  border-bottom: none;
}

.exp2606-delivery-mobile-head {
  background: #fff;
}

.exp2606-delivery-mobile-label,
.exp2606-delivery-mobile-days {
  padding: 11px 8px;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 700;
}

.exp2606-delivery-mobile-label {
  text-align: left;
}

.exp2606-delivery-mobile-days {
  text-align: right;
  white-space: nowrap;
}

.exp2606-delivery-empty {
  margin: 0;
  text-align: center;
  color: var(--exp2606-muted);
}

.exp2606-delivery p {
  margin: 18px 0 0;
  font-size: 12px;
  color: var(--exp2606-muted);
  text-align: center;
}

/* ==============================
CTA
============================== */
.exp2606-cta {
  text-align: center;
  margin-top: 42px;
  clear: both;
}

.exp2606-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 420px;
  height: 58px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--exp2606-main), var(--exp2606-main-dark));
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(185, 8, 20, .25);
  margin-left: auto;
  margin-right: auto;
}

.exp2606-btn:hover {
  color: #fff;
  opacity: .92;
}

/* ==============================
Other narrators
============================== */
.exp2606-other-list {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
  max-width: 980px;
  margin: 0 auto;
}

.exp2606-other-list a {
  display: block;
  padding: 14px;
  border: 1px solid #eee;
  border-radius: 10px;
  text-align: center;
  text-decoration: none;
  color: #222;
  background: #fff;
}

.exp2606-other-list img {
  width: 88px;
  height: 88px;
  object-fit: cover;
  border-radius: 6px;
  display: block;
  margin: 0 auto 10px;
}

.exp2606-other-list span {
  font-size: 13px;
}

/* ==============================
Search
============================== */
.exp2606-search {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  padding: 34px;
  background: var(--exp2606-main-light);
  border-radius: 12px;
  text-align: center;
}

.exp2606-search h2 {
  color: var(--exp2606-main);
  font-size: 20px;
  margin: 0 0 24px;
}

.exp2606-search-inner {
  display: grid;
  grid-template-columns: 1fr 1fr 90px;
  gap: 22px;
}

.exp2606-search select,
.exp2606-search button {
  height: 48px;
  border-radius: 6px;
  border: 1px solid #ddd;
  padding: 0 16px;
  background: #fff;
  font-size: 14px;
}

.exp2606-search button {
  background: var(--exp2606-main);
  color: #fff;
  border-color: var(--exp2606-main);
  font-weight: 700;
  cursor: pointer;
}

/* ==============================
Contact
============================== */
.exp2606-contact {
  display: grid;
  grid-template-columns: 220px 200px 1fr;
  gap: 36px;
  padding: 50px 40px;
  background: linear-gradient(180deg, #fff6f7, #fff);
}

.exp2606-contact-logo {
  color: var(--exp2606-main);
  font-size: 34px;
  font-weight: 800;
}

.exp2606-contact-nav a {
  display: block;
  margin-bottom: 12px;
  color: #222;
  text-decoration: none;
  font-size: 14px;
}

.exp2606-contact-form h2 {
  color: var(--exp2606-main);
  font-size: 18px;
  margin: 0 0 18px;
  text-align: center;
}

.exp2606-contact-form select,
.exp2606-contact-form input,
.exp2606-contact-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 12px;
  margin-bottom: 12px;
  font-size: 14px;
  background: #fff;
}

.exp2606-contact-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.exp2606-contact-form textarea {
  min-height: 110px;
}

.exp2606-contact-form button {
  display: block;
  width: 140px;
  height: 42px;
  margin: 8px auto 0;
  background: var(--exp2606-main);
  color: #fff;
  border: none;
  border-radius: 4px;
  font-weight: 700;
  cursor: pointer;
}

/* ==============================
Footer
============================== */
.exp2606-footer {
  text-align: center;
  font-size: 13px;
  color: #444;
  padding: 34px 0 0;
}

.exp2606-footer p {
  margin: 6px 0;
}

/* ==============================
Responsive
============================== */
@media (max-width: 980px) {
  .exp2606-hero {
    grid-template-columns: 1fr;
  }

  .exp2606-hero-photo img {
    width: 100%;
    max-width: 320px;
    height: auto;
    aspect-ratio: 1 / 1;
  }
}

@media (max-width: 768px) {
  .exp2606-profile {
    width: 100%;
    max-width: 100%;
    padding: 24px 15px 60px;
    overflow-x: hidden;
  }

  .exp2606-section {
    margin-top: 48px;
  }

  .exp2606-audio-grid,
  .exp2606-info,
  .exp2606-search-inner,
  .exp2606-contact,
  .exp2606-contact-row {
    grid-template-columns: 1fr;
  }

  .exp2606-audio-grid {
    gap: 24px;
  }

  .exp2606-audio-item {
    grid-template-columns: 54px 1fr;
    gap: 10px 14px;
  }

  .exp2606-audio-wave,
  .exp2606-audio-current,
.exp2606-audio-duration {
    grid-column: 2;
  }

  .exp2606-results,
  .exp2606-delivery {
    padding: 22px 18px;
    overflow: hidden;
  }

  /* SPではPC用納期表を完全に消す */
  .exp2606-profile .exp2606-delivery-table-pc {
    display: none !important;
  }

  /* SPではモバイル用の2列表だけ表示 */
  .exp2606-profile .exp2606-delivery-mobile {
    display: block !important;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }

  .exp2606-cta {
    text-align: center;
    margin-top: 36px;
  }

  .exp2606-btn {
    min-width: 0;
    width: 100%;
    max-width: 420px;
    box-sizing: border-box;
  }

  .exp2606-other-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .exp2606-hero {
    padding: 24px 18px;
  }

  .exp2606-hero-body h1 {
    font-size: 32px;
  }

  .exp2606-title {
    font-size: 21px;
  }

  .exp2606-audio-item {
    gap: 10px;
  }

  .exp2606-other-list {
    gap: 12px;
  }
}

@media (min-width: 769px) {
  .exp2606-profile {
    padding-top: 100px;
  }
}


.exp2606-audio-progress {
  position: relative;
  width: 100%;
  height: 8px;
  background: #e5e7eb;
  border-radius: 999px;
  cursor: pointer;
  overflow: visible;
}

.exp2606-audio-progress-bar {
  display: block;
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, #ff5a8a 0%, #e60033 100%);
  border-radius: 999px;
}

.exp2606-audio-progress-handle {
  position: absolute;
  top: 50%;
  left: 0%;
  width: 22px;
  height: 22px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #ff3366;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  cursor: grab;
}

.exp2606-audio-progress-handle:active {
  cursor: grabbing;
}

@media (max-width: 768px) {
  .exp2606-audio-progress,
  .exp2606-audio-current,
.exp2606-audio-duration {
    grid-column: 2;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .exp2606-audio-progress {
    width: calc(100% - 20px);
    margin: 6px 10px 6px 0;
  }
}

.exp2606-audio-name {
  text-decoration: none;
  color: var(--exp2606-text);
}

.exp2606-audio-name:hover {
  color: var(--exp2606-main);
  text-decoration: none;
}

.exp2606-audio-download-note {
  margin-top: 50px;
  text-align: center;
  font-size: 12px;
  color: var(--exp2606-muted);
}

/* ==============================
Audio mobile layout override
添付画像の配置に合わせ、スマホでは
タイトル上段／下段に「再生・現在時間・バー・総時間」を横並び
============================== */
@media (max-width: 768px) {
  .exp2606-audio-grid {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
  }

  .exp2606-audio-item {
    width: 100%;
    max-width: 360px;
    margin: 0 auto 28px;
    display: grid;
    grid-template-columns: 54px 48px minmax(90px, 1fr) 48px;
    grid-template-areas:
      "title title title title"
      "button current progress duration";
    align-items: center;
    gap: 12px 10px;
  }

  .exp2606-audio-name {
    grid-area: title;
    text-align: center;
    justify-self: center;
    width: 100%;
    margin-bottom: 4px;
  }

  .exp2606-audio-btn {
    grid-area: button;
  }

  .exp2606-audio-current {
    grid-area: current;
    text-align: right;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 500;
  }

  .exp2606-audio-progress {
    grid-area: progress;
    width: calc(100% - 12px);
    margin: 0 6px;
  }

  .exp2606-audio-duration {
    grid-area: duration;
    text-align: left;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 500;
  }
}

/* ==============================
Audio PC time layout fix
PCでは「00:00 / 00:30」を右端1か所にまとめて表示
============================== */
@media (min-width: 769px) {
  .exp2606-audio-item {
    grid-template-columns: 54px 150px minmax(180px, 1fr) 110px;
    grid-template-areas: "button title progress clock";
  }

  .exp2606-audio-btn {
    grid-area: button;
  }

  .exp2606-audio-name {
    grid-area: title;
  }

  .exp2606-audio-progress {
    grid-area: progress;
    width: 100%;
    margin: 0;
  }

  .exp2606-audio-current,
  .exp2606-audio-duration {
    grid-area: clock;
    align-self: center;
    justify-self: start;
    display: inline-block;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 600;
    color: #333;
  }

  .exp2606-audio-current::after {
    content: " /";
  }

  .exp2606-audio-duration {
    margin-left: 42px;
  }
}

/* ==============================
Audio width overflow fix
サンプル音源パートだけがブラウザ幅からはみ出る問題を修正
============================== */
.exp2606-audio {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.exp2606-audio-grid {
  width: 100%;
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}

.exp2606-audio-item,
.exp2606-audio-name,
.exp2606-audio-progress,
.exp2606-audio-current,
.exp2606-audio-duration {
  min-width: 0;
}

/* PC版：2列のまま、ブラウザ幅に応じて自然に縮む */
@media (min-width: 981px) {
  .exp2606-audio-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px clamp(28px, 4vw, 70px);
  }

  .exp2606-audio-item {
    width: 100%;
    grid-template-columns: 48px minmax(90px, 140px) minmax(100px, 1fr) 104px;
    gap: 12px;
  }

  .exp2606-audio-btn {
    width: 44px;
    height: 44px;
    min-width: 44px;
  }
}

/* 中間幅：2列では詰まるため1列化してはみ出しを防ぐ */
@media (min-width: 769px) and (max-width: 980px) {
  .exp2606-audio-grid {
    grid-template-columns: 1fr;
    max-width: 620px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .exp2606-audio-item {
    width: 100%;
    grid-template-columns: 48px minmax(100px, 160px) minmax(120px, 1fr) 104px;
    gap: 12px;
  }

  .exp2606-audio-btn {
    width: 44px;
    height: 44px;
    min-width: 44px;
  }
}

/* スマホ版：既存の添付画像風レイアウトを維持しつつ横幅に収める */
@media (max-width: 768px) {
  .exp2606-audio-grid {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 12px;
    padding-right: 12px;
    box-sizing: border-box;
  }

  .exp2606-audio-item {
    max-width: 360px;
    width: 100%;
    box-sizing: border-box;
  }

  .exp2606-audio-progress {
    min-width: 0;
  }
}

@media (max-width: 380px) {
  .exp2606-audio-item {
    grid-template-columns: 48px 42px minmax(70px, 1fr) 42px;
    gap: 10px 8px;
  }

  .exp2606-audio-btn {
    width: 44px;
    height: 44px;
    min-width: 44px;
  }

  .exp2606-audio-current,
  .exp2606-audio-duration {
    font-size: 11px;
  }
}

/* ==============================
YARPP 関連ナレーター
============================== */
.exp2606-related {
  text-align: center;
}

.exp2606-related-inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}

.exp2606-related-inner .yarpp-thumbnails-horizontal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
}

.exp2606-related-inner .yarpp-thumbnail {
  width: 200px !important;
  height: auto !important;
  text-align: center !important;
  text-decoration: none;
  display: block;
}

.exp2606-related-inner .yarpp-thumbnail img {
  width: 200px !important;
  height: 200px !important;
  max-width: 240px !important;
  object-fit: cover;
  display: block;
  margin: 0 auto 12px !important;
  border-radius: 8px;
}

.exp2606-related-inner .yarpp-thumbnail-title {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 600;
}

/* ==============================
Narrators category filter
============================== */

.exp2606-search-filter,
form.exp2606-narrator-filter {
  max-width: 1000px !important;
  margin: 40px auto !important;
  padding: 28px 20px !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.exp2606-filter-list {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px 20px !important;
  margin: 0 auto 22px !important;
  padding: 0 !important;
  max-width: 900px !important;
}

.exp2606-filter-list label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

.exp2606-filter-list input[type="checkbox"] {
  margin: 0 !important;
}

.exp2606-narrator-filter button,
.exp2606-narrator-filter input[type="submit"] {
  display: inline-block !important;
  padding: 10px 32px !important;
  border: none !important;
  border-radius: 999px !important;
  background: #b90814 !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}

@media (max-width: 768px) {
  .exp2606-filter-list {
    display: block !important;
    text-align: left !important;
    max-width: 320px !important;
  }

  .exp2606-filter-list label {
    display: block !important;
    margin: 8px 0 !important;
  }
}


/* ==============================
Narrators archive result page
/archive-narrators.php
============================== */

.exp-narrators-archive-page {
  margin-top: 100px;
}

.exp-narrators-archive-page,
.exp-narrators-archive-page * {
  box-sizing: border-box;
}

.exp-narrators-result-title {
  margin: 0 0 40px;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
  color: #111;
}

.exp-narrators-result-list {
  width: 100%;
}

.exp-narrator-result-card {
  max-width: 760px;
  margin: 0 auto 58px;
  padding: 0;
}

.exp-narrator-result-name {
  margin: 0 0 18px;
  padding: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  color: #111;
}


.exp-narrator-result-name a:hover {
  color: #b90814;
  text-decoration: none;
}

.exp-narrator-result-body {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 56px;
  align-items: start;
}

.exp-narrator-result-photo {
  width: 220px;
}

.exp-narrator-result-photo a,
.exp-narrator-result-photo img {
  display: block;
}

.exp-narrator-result-photo img {
  width: 220px;
  height: 220px;
  object-fit: cover;
  border: 0;
}

.exp-narrator-result-voice {
  min-width: 0;
  padding-top: 20px;
}

/* functions.php の [narrators_voice_samples] が出力する table を検索結果用に整える */
.exp-narrator-result-voice table.voice_sample {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
}

.exp-narrator-result-voice table.voice_sample tr {
  border: 0;
}

.exp-narrator-result-voice table.voice_sample td {
  height: 52px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid #dcdfe3;
  vertical-align: middle;
  background: transparent;
}

.exp-narrator-result-voice table.voice_sample tr:last-child td {
  border-bottom: 0;
}

.exp-narrator-result-voice table.voice_sample td:first-child {
  width: auto;
  padding: 0 18px 0 0;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
  color: #111;
  word-break: keep-all;
}

.exp-narrator-result-voice table.voice_sample td:last-child {
  width: 48px;
  text-align: right;
}

/* 「もっと聞く」行：functions.php側は空のp.mottokikuを出しているためCSSで表示 */
.exp-narrator-result-voice table.voice_sample .mottokiku {
  margin: 0;
}

.exp-narrator-result-voice table.voice_sample .mottokiku::before {
  content: "もっと聞く";
  color: #111;
}

/* 旧ボタン画像が大きく出る場合の抑制 */
.exp-narrator-result-voice table.voice_sample img {
  width: 34px;
  max-width: 34px;
  height: 34px;
  object-fit: contain;
  display: inline-block;
}

/* mediPlayer の丸ボタンを添付画像風に調整 */
.exp-narrator-result-voice .mediPlayer {
  width: 36px;
  height: 36px;
  margin-left: auto;
}

.exp-narrator-result-voice .mediPlayer svg,
.exp-narrator-result-voice .mediPlayer canvas {
  max-width: 36px !important;
  max-height: 36px !important;
}

.exp-narrator-result-voice audio {
  max-width: 36px;
}

.exp-narrators-no-result {
  text-align: center;
  margin: 40px 0 80px;
}

.exp-narrators-archive-page .pagination,
.exp-narrators-archive-page .page-numbers {
  text-align: center;
}

@media screen and (max-width: 768px) {
  .exp-narrators-archive-page {
    margin-top: 100px;
  }

  .exp-narrators-result-title {
    margin-bottom: 30px;
    font-size: 20px;
  }

  .exp-narrator-result-card {
    max-width: 420px;
    margin-bottom: 46px;
  }

  .exp-narrator-result-body {
    display: block;
  }

  .exp-narrator-result-photo {
    width: 220px;
    margin: 0 auto 22px;
  }

  .exp-narrator-result-voice {
    padding-top: 0;
  }

  .exp-narrator-result-voice table.voice_sample td:first-child {
    padding-right: 12px;
    font-size: 14px;
  }
}



/* ==============================
Narrators archive result page
/archive-narrators.php
※ archiveページでも add_2606.css を読み込む前提
============================== */

body.post-type-archive-narrators .title_outer,
body.post-type-archive-narrators .title,
body.post-type-archive-narrators .title_holder,
body.post-type-archive-narrators .breadcrumb,
body.post-type-archive-narrators .subtitle {
  display: none !important;
}

.exp-narrators-archive-page {
  margin-top: 100px !important;
  padding-top: 0 !important;
}

.exp-narrators-archive-page,
.exp-narrators-archive-page * {
  box-sizing: border-box !important;
}

.exp-narrators-result-title {
  margin: 0 0 42px !important;
  padding: 0 !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
  text-align: center !important;
  color: #111 !important;
  letter-spacing: 0.04em !important;
}

.exp-narrators-result-list {
  width: 100% !important;
}

.exp-narrator-result-card {
  width: 100% !important;
  max-width: 760px !important;
  margin: 0 auto 58px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.exp-narrator-result-name {
  margin: 0 0 18px !important;
  padding: 0 !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  color: #111 !important;
  text-transform: none !important;
}

.exp-narrator-result-name a {
  color: #111 !important;
  text-decoration: none !important;
}

.exp-narrator-result-name a:hover {
  color: #b90814 !important;
  text-decoration: none !important;
}

.exp-narrator-result-body {
  display: grid !important;
  grid-template-columns: 220px minmax(0, 1fr) !important;
  gap: 56px !important;
  align-items: start !important;
  width: 100% !important;
}

.exp-narrator-result-photo {
  width: 220px !important;
  min-width: 220px !important;
  max-width: 220px !important;
}

.exp-narrator-result-photo a,
.exp-narrator-result-photo img {
  display: block !important;
}

.exp-narrator-result-photo img {
  width: 220px !important;
  height: 220px !important;
  max-width: 220px !important;
  object-fit: cover !important;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.exp-narrator-result-voice {
  min-width: 0 !important;
  padding-top: 20px !important;
}

/* functions.php の [narrators_voice_samples] が出力する table.voice_sample を検索結果用に整える */
.exp-narrator-result-voice table.voice_sample {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  table-layout: fixed !important;
  border: 0 !important;
  background: transparent !important;
}

.exp-narrator-result-voice table.voice_sample tbody,
.exp-narrator-result-voice table.voice_sample tr {
  width: 100% !important;
  border: 0 !important;
  background: transparent !important;
}

.exp-narrator-result-voice table.voice_sample td {
  height: 52px !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #dcdfe3 !important;
  vertical-align: middle !important;
  background: transparent !important;
}

.exp-narrator-result-voice table.voice_sample tr:last-child td {
  border-bottom: 0 !important;
}

.exp-narrator-result-voice table.voice_sample td:first-child {
  width: auto !important;
  padding: 0 18px 0 0 !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  text-align: center !important;
  color: #111 !important;
  word-break: keep-all !important;
  white-space: normal !important;
}

.exp-narrator-result-voice table.voice_sample td:last-child {
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  text-align: right !important;
}

/* 「もっと聞く」行：functions.php側は空のp.mottokikuを出しているためCSSで表示 */
.exp-narrator-result-voice table.voice_sample .mottokiku {
  margin: 0 !important;
  padding: 0 !important;
}

.exp-narrator-result-voice table.voice_sample .mottokiku::before {
  content: "もっと聞く" !important;
  color: #111 !important;
}

/* 旧ボタン画像が大きく出る場合の抑制 */
.exp-narrator-result-voice table.voice_sample img {
  width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  max-height: 34px !important;
  object-fit: contain !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

/* mediPlayer の丸ボタンを添付画像風に調整 */
.exp-narrator-result-voice .mediPlayer {
  width: 36px !important;
  height: 36px !important;
  margin-left: auto !important;
  overflow: hidden !important;
}

.exp-narrator-result-voice .mediPlayer svg,
.exp-narrator-result-voice .mediPlayer canvas {
  width: 36px !important;
  height: 36px !important;
  max-width: 36px !important;
  max-height: 36px !important;
}

.exp-narrator-result-voice audio {
  max-width: 36px !important;
}

.exp-narrators-no-result {
  text-align: center !important;
  margin: 40px 0 80px !important;
}

.exp-narrators-archive-page .pagination,
.exp-narrators-archive-page .page-numbers,
.exp-narrators-archive-page .nav-links {
  text-align: center !important;
}

@media screen and (max-width: 768px) {
  .exp-narrators-archive-page {
    margin-top: 100px !important;
  }

  .exp-narrators-result-title {
    margin-bottom: 30px !important;
    font-size: 20px !important;
  }

  .exp-narrator-result-card {
    max-width: 420px !important;
    margin-bottom: 46px !important;
  }

  .exp-narrator-result-body {
    display: block !important;
  }

  .exp-narrator-result-photo {
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
    margin: 0 auto 22px !important;
  }

  .exp-narrator-result-voice {
    padding-top: 0 !important;
  }

  .exp-narrator-result-voice table.voice_sample td:first-child {
    padding-right: 12px !important;
    font-size: 14px !important;
  }
}


/* ==============================
Narrators archive grid override
PCでは3名横並び。2列以上では各カード上部に区切り線を表示。
============================== */
@media screen and (min-width: 769px) {
  body.post-type-archive-narrators .exp-narrators-archive-page .container_inner {
    width: calc(100% - 64px) !important;
    max-width: 1480px !important;
  }

  .exp-narrators-result-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 30px !important;
    row-gap: 56px !important;
    width: 100% !important;
    max-width: 1480px !important;
    margin: 0 auto !important;
  }

  .exp-narrator-result-card {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 28px 0 0 !important;
    border-top: 1px solid #111 !important;
  }

  .exp-narrator-result-body {
    display: grid !important;
    grid-template-columns: minmax(150px, 44%) minmax(0, 1fr) !important;
    gap: 28px !important;
    align-items: start !important;
  }

  .exp-narrator-result-photo {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .exp-narrator-result-photo img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    max-width: none !important;
    object-fit: cover !important;
  }

  .exp-narrator-result-voice {
    padding-top: 18px !important;
  }

  .exp-narrator-result-voice table.voice_sample td {
    height: 52px !important;
  }

  .exp-narrator-result-voice table.voice_sample td:first-child {
    padding-right: 10px !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
  }

  .exp-narrator-result-voice table.voice_sample td:last-child {
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
  }

  .exp-narrator-result-voice .mediPlayer,
  .exp-narrator-result-voice .mediPlayer svg,
  .exp-narrator-result-voice .mediPlayer canvas,
  .exp-narrator-result-voice table.voice_sample img {
    width: 34px !important;
    height: 34px !important;
    max-width: 34px !important;
    max-height: 34px !important;
  }
}

@media screen and (min-width: 1180px) {
  .exp-narrators-result-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media screen and (min-width: 769px) and (max-width: 1179px) {
  body.post-type-archive-narrators .exp-narrators-archive-page .container_inner {
    width: calc(100% - 40px) !important;
    max-width: 980px !important;
  }
}

@media screen and (max-width: 768px) {
  .exp-narrators-result-list {
    display: block !important;
  }

  .exp-narrator-result-card {
    border-top: 1px solid #111 !important;
    padding-top: 24px !important;
  }
}


/* ==============================
Single narrators search filter
カード型：親カテゴリーを見出し、子カテゴリーをチェック項目として表示
============================== */

.exp2606-search-filter-card {
  width: calc(100% - 40px) !important;
  max-width: 1180px !important;
  margin: 70px auto 80px !important;
  padding: 0 !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.exp2606-narrator-filter-card {
  width: 100% !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.exp2606-filter-card-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
  width: 100% !important;
  margin: 0 auto 28px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.exp2606-filter-card {
  border: 1px solid #f0c9cc !important;
  border-radius: 12px !important;
  background: #fff !important;
  overflow: hidden !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .04) !important;
  text-align: left !important;
}

.exp2606-filter-card-title {
  margin: 0 !important;
  padding: 12px 16px !important;
  background: linear-gradient(180deg, #fff4f5, #fff) !important;
  color: #111 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: center !important;
  border-bottom: 1px solid #f0d7da !important;
}

.exp2606-filter-card-options {
  padding: 16px 18px 18px !important;
}

.exp2606-filter-card-label {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  color: #222 !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  white-space: normal !important;
  cursor: pointer !important;
}

.exp2606-filter-card-label:last-child {
  margin-bottom: 0 !important;
}

.exp2606-filter-card-label input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
}

.exp2606-filter-card-label span {
  display: inline-block !important;
}

.exp2606-filter-submit-wrap {
  margin-top: 26px !important;
  text-align: center !important;
}

.exp2606-filter-submit,
.exp2606-narrator-filter-card .exp2606-filter-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 150px !important;
  height: 48px !important;
  padding: 0 36px !important;
  border: none !important;
  border-radius: 999px !important;
  background: #b90814 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: 0 8px 18px rgba(185, 8, 20, .22) !important;
}

.exp2606-filter-submit:hover {
  opacity: .9 !important;
}

@media screen and (max-width: 980px) {
  .exp2606-filter-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media screen and (max-width: 600px) {
  .exp2606-search-filter-card {
    width: calc(100% - 30px) !important;
    margin-top: 54px !important;
  }

  .exp2606-filter-card-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .exp2606-filter-card-title {
    font-size: 15px !important;
  }

  .exp2606-filter-card-label {
    font-size: 14px !important;
  }

  .exp2606-filter-submit {
    width: 100% !important;
    max-width: 260px !important;
  }
}


/* ==============================
Single narrators search filter
カード型の中の選択肢をチップ型に変更
============================== */

.exp2606-filter-card-options {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px 10px !important;
  align-items: flex-start !important;
  padding: 18px !important;
}

.exp2606-filter-chip {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.exp2606-filter-chip input[type="checkbox"] {
  position: absolute !important;
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
}

.exp2606-filter-chip span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 36px !important;
  padding: 8px 16px !important;
  border: 1px solid #ddd !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #222 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  box-sizing: border-box !important;
  transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease !important;
}

.exp2606-filter-chip:hover span {
  border-color: #b90814 !important;
  color: #b90814 !important;
}

.exp2606-filter-chip input[type="checkbox"]:checked + span {
  border-color: #b90814 !important;
  background: #b90814 !important;
  color: #fff !important;
  box-shadow: 0 5px 12px rgba(185, 8, 20, .18) !important;
}

.exp2606-filter-chip input[type="checkbox"]:checked + span::before {
  content: "✓" !important;
  display: inline-block !important;
  margin-right: 6px !important;
  font-weight: 700 !important;
}

.exp2606-filter-chip input[type="checkbox"]:focus-visible + span {
  outline: 2px solid #b90814 !important;
  outline-offset: 3px !important;
}

/* 旧チェックボックス用指定の影響を打ち消す */
.exp2606-filter-card-options .exp2606-filter-card-label {
  display: none !important;
}

@media screen and (max-width: 600px) {
  .exp2606-filter-card-options {
    gap: 9px 8px !important;
    padding: 16px !important;
  }

  .exp2606-filter-chip span {
    min-height: 34px !important;
    padding: 7px 13px !important;
    font-size: 13px !important;
  }
}


/* ==============================
Archive narrators sidebar layout
C案：PCは左検索・右検索結果2列。検索条件は親カテゴリーごとに縦型チップ表示。
============================== */

@media screen and (min-width: 981px) {
  body.post-type-archive-narrators .exp-narrators-sidebar-page .container_inner {
    width: calc(100% - 64px) !important;
    max-width: 1480px !important;
  }

  .exp-narrators-archive-layout {
    display: grid !important;
    grid-template-columns: 260px minmax(0, 1fr) !important;
    gap: 36px !important;
    align-items: start !important;
    width: 100% !important;
    margin-bottom: 100px;
  }

  .exp-narrators-search-sidebar {
    position: sticky !important;
    top: 110px !important;
    align-self: start !important;
  }

  .exp-narrators-result-main {
    min-width: 0 !important;
  }

  .exp-narrators-sidebar-page .exp-narrators-result-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 30px !important;
    row-gap: 56px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .exp-narrators-sidebar-page .exp-narrator-result-card {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 28px 0 0 !important;
    border-top: 1px solid #111 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .exp-narrators-sidebar-page .exp-narrator-result-body {
    display: grid !important;
    grid-template-columns: minmax(150px, 44%) minmax(0, 1fr) !important;
    gap: 28px !important;
    align-items: start !important;
    width: 100% !important;
  }

  .exp-narrators-sidebar-page .exp-narrator-result-photo {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .exp-narrators-sidebar-page .exp-narrator-result-photo img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    max-width: none !important;
    object-fit: cover !important;
  }
}

.exp2606-search-filter-sidebar {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 22px 18px !important;
  border: 1px solid #eee !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .05) !important;
  text-align: left !important;
  box-sizing: border-box !important;
}

.exp2606-search-filter-sidebar .exp2606-title {
  margin: 0 0 22px !important;
  font-size: 18px !important;
  line-height: 1.5 !important;
  text-align: center !important;
}

.exp2606-narrator-filter-sidebar {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

.exp2606-sidebar-filter-groups {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
}

.exp2606-sidebar-filter-group {
  padding: 0 0 15px !important;
  border-bottom: 1px solid #eee !important;
}

.exp2606-sidebar-filter-group:last-child {
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

.exp2606-sidebar-filter-title {
  margin: 0 0 10px !important;
  padding: 0 !important;
  color: #111 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: left !important;
}

.exp2606-sidebar-filter-options {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 8px !important;
}

.exp2606-filter-chip-vertical {
  width: 100% !important;
  justify-content: flex-start !important;
}

.exp2606-filter-chip-vertical span {
  width: 100% !important;
  justify-content: flex-start !important;
  min-height: 34px !important;
  padding: 7px 13px !important;
  font-size: 13px !important;
  text-align: left !important;
}

.exp2606-narrator-filter-sidebar .exp2606-filter-submit-wrap {
  margin-top: 22px !important;
  text-align: center !important;
}

.exp2606-narrator-filter-sidebar .exp2606-filter-submit {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 190px !important;
  height: 44px !important;
  font-size: 14px !important;
}

@media screen and (min-width: 769px) and (max-width: 980px) {
  .exp-narrators-archive-layout {
    display: block !important;
    margin-bottom: 100px;
  }

  .exp-narrators-search-sidebar {
    margin-bottom: 42px !important;
  }

  .exp2606-search-filter-sidebar {
    max-width: 760px !important;
    margin: 0 auto !important;
  }

  .exp2606-sidebar-filter-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 20px !important;
  }

  .exp-narrators-sidebar-page .exp-narrators-result-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 30px !important;
    row-gap: 56px !important;
  }
}

@media screen and (max-width: 768px) {
  .exp-narrators-archive-layout {
    display: block !important;
  }

  .exp-narrators-search-sidebar {
    margin-bottom: 38px !important;
  }

  .exp2606-search-filter-sidebar {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 20px 16px !important;
  }

  .exp2606-sidebar-filter-options {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
  }

  .exp2606-filter-chip-vertical {
    width: auto !important;
  }

  .exp2606-filter-chip-vertical span {
    width: auto !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .exp2606-narrator-filter-sidebar .exp2606-filter-submit {
    width: 100% !important;
    max-width: 260px !important;
  }
}


/* ==============================
Narrator search hierarchy
親 → 子 → 孫対応：孫がある場合は孫のみ、孫がない場合は子をチップ表示
============================== */
.exp2606-filter-child-block {
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
}

.exp2606-filter-child-block:last-child {
  margin-bottom: 0 !important;
}

.exp2606-filter-child-title {
  width: 100% !important;
  margin: 0 0 10px !important;
  padding: 0 0 0 2px !important;
  color: #555 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: left !important;
}

.exp2606-filter-child-options {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px 10px !important;
  align-items: flex-start !important;
}

.exp2606-filter-child-block-sidebar {
  margin-bottom: 18px !important;
}

.exp2606-filter-child-title-sidebar {
  margin-bottom: 9px !important;
  padding-left: 1px !important;
  font-size: 13px !important;
}

.exp2606-filter-child-options-sidebar {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
}

.exp2606-sidebar-filter-options > .exp2606-filter-chip-vertical + .exp2606-filter-child-block-sidebar {
  margin-top: 14px !important;
}


/* ==============================
Narrator search hierarchy selection
親・子もチップとして選択可能にする
============================== */
.exp2606-filter-chip-parent span,
.exp2606-filter-chip-child-control span {
  border-color: #f0c9cc !important;
  background: #fff7f8 !important;
  color: #8f0610 !important;
  font-weight: 700 !important;
}

.exp2606-filter-chip-parent:hover span,
.exp2606-filter-chip-child-control:hover span {
  border-color: #b90814 !important;
  color: #b90814 !important;
}

.exp2606-filter-chip-parent input[type="checkbox"]:checked + span,
.exp2606-filter-chip-child-control input[type="checkbox"]:checked + span {
  border-color: #b90814 !important;
  background: #b90814 !important;
  color: #fff !important;
}

.exp2606-filter-child-options {
  padding-left: 10px !important;
}

.exp2606-filter-child-options-sidebar {
  padding-left: 10px !important;
}

.exp2606-filter-chip-grandchild span {
  font-weight: 500 !important;
}

.exp2606-filter-chip-child-control {
  margin-bottom: 10px !important;
}

.exp2606-filter-chip-child-control + .exp2606-filter-child-options {
  margin-top: 0 !important;
}

.exp2606-filter-chip-parent {
  margin-bottom: 14px !important;
}

.exp2606-sidebar-filter-options > .exp2606-filter-chip-parent {
  margin-bottom: 12px !important;
}

/* ==============================
Parent category as title chip
親カテゴリー名を見出し兼ボタンとして使う
============================== */
.exp2606-filter-parent-title {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
  line-height: 1 !important;
}

.exp2606-filter-parent-title input[type="checkbox"] {
  position: absolute !important;
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
}

.exp2606-filter-card-title.exp2606-filter-parent-title span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 12px 16px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(180deg, #fff4f5, #fff) !important;
  color: #111 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: center !important;
  box-shadow: none !important;
}

.exp2606-filter-card-title.exp2606-filter-parent-title:hover span {
  background: #fff4f5 !important;
  color: #b90814 !important;
}

.exp2606-filter-card-title.exp2606-filter-parent-title input[type="checkbox"]:checked + span {
  background: #b90814 !important;
  color: #fff !important;
}

.exp2606-sidebar-filter-title.exp2606-filter-parent-title {
  display: flex !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
}

.exp2606-sidebar-filter-title.exp2606-filter-parent-title span {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 7px 13px !important;
  border: 1px solid #f0c9cc !important;
  border-radius: 999px !important;
  background: #fff7f8 !important;
  color: #8f0610 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-align: left !important;
  box-shadow: none !important;
}

.exp2606-sidebar-filter-title.exp2606-filter-parent-title:hover span {
  border-color: #b90814 !important;
  color: #b90814 !important;
}

.exp2606-sidebar-filter-title.exp2606-filter-parent-title input[type="checkbox"]:checked + span {
  border-color: #b90814 !important;
  background: #b90814 !important;
  color: #fff !important;
}

.exp2606-sidebar-filter-options > .exp2606-filter-child-block-sidebar:first-child {
  margin-top: 0 !important;
}



/* ==============================
Archive narrator compact audio player
mediPlayerを使わず、single-narrators と同じ audioplayer2606.js 用HTMLで表示
============================== */
.exp-narrator-result-voice .exp2606-archive-voice-samples {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact,
.exp-narrator-result-voice .exp2606-archive-more-link {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 40px !important;
  grid-template-areas: "title button" !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid #dcdfe3 !important;
  box-sizing: border-box !important;
  text-decoration: none !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact:last-of-type {
  border-bottom: 1px solid #dcdfe3 !important;
}

.exp-narrator-result-voice .exp2606-archive-more-link {
  border-bottom: 0 !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-name,
.exp-narrator-result-voice .exp2606-archive-more-text {
  grid-area: title !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 5px !important;
  padding: 0 4px 0 0 !important;
  color: #111 !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  text-align: center !important;
  text-decoration: none !important;
  word-break: keep-all !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-name:hover,
.exp-narrator-result-voice .exp2606-archive-more-link:hover .exp2606-archive-more-text {
  color: var(--exp2606-main) !important;
  text-decoration: none !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn,
.exp-narrator-result-voice .exp2606-archive-more-button {
  grid-area: button !important;
  justify-self: end !important;
  align-self: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #f0c9cc !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: var(--exp2606-main) !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn:hover,
.exp-narrator-result-voice .exp2606-archive-more-link:hover .exp2606-archive-more-button {
  border-color: var(--exp2606-main) !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn-icon,
.exp-narrator-result-voice .exp2606-archive-more-button .exp2606-audio-btn-icon {
  display: block !important;
  width: 0 !important;
  height: 0 !important;
  margin-left: 3px !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 10px solid var(--exp2606-main) !important;
  pointer-events: none !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn.is-playing {
  background: var(--exp2606-main) !important;
  border-color: var(--exp2606-main) !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn.is-playing .exp2606-audio-btn-icon {
  width: 12px !important;
  height: 15px !important;
  margin-left: 0 !important;
  border: 0 !important;
  position: relative !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn.is-playing .exp2606-audio-btn-icon::before,
.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn.is-playing .exp2606-audio-btn-icon::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  width: 4px !important;
  height: 15px !important;
  background: #fff !important;
  border-radius: 2px !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn.is-playing .exp2606-audio-btn-icon::before {
  left: 0 !important;
}

.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn.is-playing .exp2606-audio-btn-icon::after {
  right: 0 !important;
}

/* JS用要素は残しつつ、archive表示では時間・バーを非表示 */
.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-progress,
.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-current,
.exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-duration {
  display: none !important;
}

@media screen and (max-width: 768px) {
  .exp-narrator-result-voice .exp2606-audio-item-compact,
  .exp-narrator-result-voice .exp2606-archive-more-link {
    min-height: 50px !important;
    grid-template-columns: minmax(0, 1fr) 38px !important;
  }

  .exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-name,
  .exp-narrator-result-voice .exp2606-archive-more-text {
    font-size: 14px !important;
  }
}

/* ==============================
Archive compact audio mobile fix
「もっと聞く」の再生ボタンだけ右にずれる問題を修正
============================== */
@media screen and (max-width: 768px) {
  .exp-narrator-result-voice .exp2606-archive-more-link {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 40px !important;
    grid-template-areas: "title button" !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .exp-narrator-result-voice .exp2606-archive-more-text {
    grid-area: title !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 4px 0 0 !important;
    text-align: center !important;
  }

  .exp-narrator-result-voice .exp2606-archive-more-button {
    grid-area: button !important;
    justify-self: end !important;
    align-self: center !important;
    margin: 0 !important;
    position: static !important;
    transform: none !important;
  }
}


/* ==============================
Archive compact audio "more" row alignment fix
「もっと聞く」は下線なしの別クラスのまま、音声行と同じ2カラム幅で揃える
============================== */
@media screen and (max-width: 768px) {
  .exp-narrator-result-voice .exp2606-archive-voice-samples {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .exp-narrator-result-voice .exp2606-audio-item-compact,
  .exp-narrator-result-voice .exp2606-archive-more-link {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 38px !important;
    grid-template-areas: "title button" !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .exp-narrator-result-voice .exp2606-audio-item-compact {
    border-bottom: 1px solid #dcdfe3 !important;
  }

  .exp-narrator-result-voice .exp2606-archive-more-link {
    border-bottom: 0 !important;
  }

  .exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-name,
  .exp-narrator-result-voice .exp2606-archive-more-text {
    grid-area: title !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 4px 0 0 !important;
    box-sizing: border-box !important;
    text-align: center !important;
  }

  .exp-narrator-result-voice .exp2606-audio-item-compact .exp2606-audio-btn,
  .exp-narrator-result-voice .exp2606-archive-more-button {
    grid-area: button !important;
    justify-self: end !important;
    align-self: center !important;
    display: inline-flex !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    float: none !important;
    box-sizing: border-box !important;
  }
}

/* ==============================
Archive search hierarchy indent fix
親 → 子 → 孫 の階層が分かるように、archive側の検索チップを段階的に右へずらす
============================== */
.exp-narrators-sidebar-page .exp2606-sidebar-filter-group > .exp2606-sidebar-filter-title.exp2606-filter-parent-title,
.exp-narrators-sidebar-page .exp2606-sidebar-filter-group > .exp2606-sidebar-filter-title.exp2606-filter-parent-title.exp2606-filter-chip,
.exp-narrators-sidebar-page .exp2606-sidebar-filter-group > .exp2606-filter-chip-parent {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.exp-narrators-sidebar-page .exp2606-sidebar-filter-options > .exp2606-filter-child-block-sidebar,
.exp-narrators-sidebar-page .exp2606-sidebar-filter-options > .exp2606-filter-chip-child-leaf {
  width: calc(100% - 14px) !important;
  margin-left: 14px !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.exp-narrators-sidebar-page .exp2606-filter-child-block-sidebar > .exp2606-filter-chip-child-control {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.exp-narrators-sidebar-page .exp2606-filter-child-options-sidebar {
  width: calc(100% - 14px) !important;
  margin-left: 14px !important;
  padding-left: 0 !important;
  box-sizing: border-box !important;
}

.exp-narrators-sidebar-page .exp2606-filter-child-options-sidebar .exp2606-filter-chip-grandchild {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.exp-narrators-sidebar-page .exp2606-filter-chip-vertical span {
  width: 100% !important;
  box-sizing: border-box !important;
}

@media screen and (max-width: 768px) {
  .exp-narrators-sidebar-page .exp2606-sidebar-filter-options {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
  }

  .exp-narrators-sidebar-page .exp2606-filter-chip-vertical,
  .exp-narrators-sidebar-page .exp2606-filter-chip-vertical span {
    width: 100% !important;
  }

  .exp-narrators-sidebar-page .exp2606-sidebar-filter-options > .exp2606-filter-child-block-sidebar,
  .exp-narrators-sidebar-page .exp2606-sidebar-filter-options > .exp2606-filter-chip-child-leaf {
    width: calc(100% - 14px) !important;
    margin-left: 14px !important;
  }

  .exp-narrators-sidebar-page .exp2606-filter-child-options-sidebar {
    width: calc(100% - 14px) !important;
    margin-left: 14px !important;
    padding-left: 0 !important;
  }
}

/* ==============================
Audio PC progress spacing fix
タイトル幅を維持しつつ、プログレスバーを少し短くして左側に余白を作る
秒数が改行されないよう clock 領域を少し広げる
============================== */
@media (min-width: 769px) {
  .exp2606-profile .exp2606-audio-item:not(.exp2606-audio-item-compact) {
    grid-template-columns: 48px minmax(90px, 150px) minmax(120px, 1fr) 120px !important;
    grid-template-areas: "button title progress clock" !important;
    column-gap: 20px !important;
    row-gap: 12px !important;
  }

  .exp2606-profile .exp2606-audio-item:not(.exp2606-audio-item-compact) .exp2606-audio-progress {
    grid-area: progress !important;
    width: calc(100% - 16px) !important;
    margin-left: 16px !important;
    margin-right: 0 !important;
    justify-self: start !important;
  }

  .exp2606-profile .exp2606-audio-item:not(.exp2606-audio-item-compact) .exp2606-audio-current,
  .exp2606-profile .exp2606-audio-item:not(.exp2606-audio-item-compact) .exp2606-audio-duration {
    grid-area: clock !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .exp2606-profile .exp2606-audio-item:not(.exp2606-audio-item-compact) .exp2606-audio-current {
    justify-self: start !important;
  }

  .exp2606-profile .exp2606-audio-item:not(.exp2606-audio-item-compact) .exp2606-audio-duration {
    margin-left: 42px !important;
  }
}


/* ==============================
Archive filter reset button
検索条件が選択されている時だけ表示される「条件をリセット」リンク
============================== */
.exp-narrators-sidebar-page .exp2606-filter-reset-wrap {
  margin: -6px 0 22px !important;
  padding: 0 !important;
  text-align: center !important;
}

.exp-narrators-sidebar-page .exp2606-filter-reset-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 36px !important;
  padding: 7px 17px !important;
  border: 1px solid #b90814 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #b90814 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-shadow: 0 4px 12px rgba(185, 8, 20, .10) !important;
  transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease !important;
}

.exp-narrators-sidebar-page .exp2606-filter-reset-link::before {
  content: "×" !important;
  display: inline-block !important;
  margin-right: 7px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.exp-narrators-sidebar-page .exp2606-filter-reset-link:hover {
  background: #b90814 !important;
  border-color: #b90814 !important;
  color: #fff !important;
  text-decoration: none !important;
  box-shadow: 0 6px 16px rgba(185, 8, 20, .20) !important;
}

.exp-narrators-sidebar-page .exp2606-filter-reset-link:focus-visible {
  outline: 2px solid #b90814 !important;
  outline-offset: 3px !important;
}
