/* 追加したページと部品の端末条件・レスポンシブ上書きを集約する最終CSS（media.css の後に読む）。 */
/* pointer:fine→広い幅→狭い幅→reduced-motion の順で読む。ホバーは 0.4s の色の変化だけ（影・浮き上がりなし）。 */

@media (pointer: fine) {
  .global-nav-list a:not(.global-nav-cta):hover::after,
  .global-nav-list a:not(.global-nav-cta):focus-visible::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  /* 副ボタン：塗りが --ink の12%に */
  .site-button:not(.site-button--primary):not([disabled]):hover,
  .site-button:not(.site-button--primary):not([disabled]):focus-visible,
  .shutter-button:not(:disabled):hover,
  .shutter-button:not(:disabled):focus-visible,
  .admin-button:not(.admin-button--primary):not(:disabled):hover {
    background: rgba(59, 44, 34, 0.12);
    border-color: var(--ink);
    color: var(--ink);
  }

  .site-button--light:not([disabled]):hover,
  .site-button--light:not([disabled]):focus-visible {
    background: rgba(248, 238, 225, 0.12);
    border-color: var(--night-paper);
    color: var(--night-paper);
  }

  /* 主ボタン：塗りの色だけ少し明るく */
  .site-button--primary:not([disabled]):hover,
  .site-button--primary:not([disabled]):focus-visible,
  .global-nav-list a.global-nav-cta:hover,
  .global-nav-list a.global-nav-cta:focus-visible,
  .admin-button--primary:not(:disabled):hover {
    background: #4a3427;
    border-color: #4a3427;
    color: var(--paper);
  }

  .blog-card:hover .blog-card-image img {
    transform: scale(1.035);
  }

  .filter-chip:hover,
  .choice:hover span,
  .admin-tab:hover {
    color: var(--ink);
  }

  .credit-link:hover,
  .credit-link:focus-visible,
  .post-aside-list a:hover {
    color: var(--gold);
  }

  .link-card:hover::after {
    background-color: var(--ink);
  }

  .footer-nav a:hover {
    color: var(--champagne-gold);
  }

  .gallery-thumb:hover {
    box-shadow:
      inset 0 0 0 1px #e6cb7c,
      inset 0 0 0 2px #3a2b21,
      inset 0 0 0 3px #aa7a2c,
      0 18px 34px rgba(46, 31, 20, 0.24);
    transform: translateY(-3px);
  }

  .gallery-thumb:hover img {
    transform: scale(1.03);
  }

  .lightbox-button:hover {
    opacity: 1;
  }

  .daypart-option:hover .daypart-card img {
    outline-color: var(--gold);
  }
}

@media (max-width: 900px) {
  .card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .schedule-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .event-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.subpage .event-row .event-side {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.75rem;
    grid-column: 1 / -1;
  }

  .profile-intro,
  .post-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .post-aside {
    position: static;
  }

  .daypart-picker {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gallery-item--landscape,
  .gallery-item--portrait {
    grid-column: span 6;
  }

  .gallery-series-text {
    max-width: 80%;
  }

  .footer-top {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .header-cta {
    display: none;
  }

  .info-table,
  .info-table tbody,
  .info-table tr,
  .info-table th,
  .info-table td {
    display: block;
    width: auto;
  }

  .info-table thead {
    display: none;
  }

  .info-table tr {
    border-bottom: 1px solid var(--hairline);
    padding-block: 1.1rem;
  }

  .info-table tr:first-child {
    border-top: 1px solid var(--hairline);
  }

  .info-table th,
  .info-table td,
  .info-table tr:first-child th,
  .info-table tr:first-child td {
    border: 0;
    padding: 0;
  }

  .info-table tbody th,
  .info-table--timeline tbody th,
  .rule-table .rule-category,
  .rule-table .rule-item,
  .rule-table .rule-judge,
  .credit-table .credit-role,
  .credit-table .credit-name {
    white-space: normal;
    width: auto;
  }

  .info-table tbody th {
    color: var(--ink-soft);
    font-size: 0.875rem;
    margin-bottom: 0.2rem;
  }

  .rule-table td {
    display: inline;
  }

  .rule-table .rule-category {
    display: block;
    font-size: 0.8125rem;
  }

  .rule-table .rule-item {
    display: inline;
    margin-right: 0.75rem;
  }

  .rule-table .rule-judge {
    display: inline-block;
  }

  .rule-table td:last-child {
    display: block;
    font-size: 0.9375rem;
    margin-top: 0.35rem;
  }

  .credit-table .credit-role {
    font-size: 0.8125rem;
  }

  .credit-table .credit-name {
    margin-block: 0.15rem 0.3rem;
  }

  .gallery-filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-count {
    grid-column: 1;
    grid-row: auto;
    justify-self: end;
  }

  .filter-group {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-fields,
  .admin-image-field {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .brand,
  .site-footer .footer-brand {
    font-size: 0.9375rem;
  }

  .card-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .chapter-head {
    align-items: start;
    display: block;
  }

  .chapter-head p {
    margin-top: 0.5rem;
  }

  /* heading-polish.js がスマホで h2 を 26px に抑えるので、それを外した章タイトルと帯の h1 も同じ大きさにそろえる。 */
  .chapter-head h2,
  .page-head .page-title,
  .page-head .post-title {
    font-size: 1.625rem;
  }

  .event-card {
    grid-template-areas:
      "date"
      "body"
      "side";
    grid-template-columns: minmax(0, 1fr);
  }

  .event-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .event-card .event-date,
  body.subpage .event-date {
    align-items: baseline;
    display: flex;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
  }

  .event-date-day,
  .event-date-week,
  body.subpage .event-date-day,
  body.subpage .event-date-week {
    margin-top: 0;
  }

  .event-date-day,
  body.subpage .event-date-day {
    font-size: 2.25rem;
  }

  body.subpage .event-row .event-date {
    margin-bottom: 0;
  }

  .gallery-item--landscape,
  .gallery-item--portrait {
    grid-column: 1 / -1;
  }

  .gallery-item--portrait .gallery-thumb {
    margin-inline: auto;
    max-width: 80%;
  }

  .gallery-series-text {
    max-width: none;
  }

  .lightbox {
    padding: 3.75rem 0.75rem 3rem;
  }

  .lightbox-image {
    max-height: 58vh;
  }

  .lightbox-button--prev,
  .lightbox-button--next {
    bottom: 0.6rem;
    top: auto;
    transform: none;
  }

  .lightbox-count {
    bottom: 1.5rem;
  }

  .form-input,
  .form-textarea {
    width: 100%;
  }

  .date-field {
    width: 100%;
  }

  .form-input--short {
    width: 100%;
  }

  .step-list li {
    padding-left: 3.8rem;
  }

  .step-list li::before {
    font-size: 1.875rem;
  }

  .step-list::before {
    left: 1.3rem;
  }

  .copy-box .site-button,
  .cta-row .site-button {
    max-width: 100%;
  }

  .footer-nav ul {
    gap: 0.75rem 2.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html::after {
    display: none !important;
  }

  .sub-motion body.subpage [data-sub-reveal] {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .page-head::after {
    animation: none !important;
  }

  .lightbox-image {
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .lightbox-caption > * {
    opacity: 1 !important;
    transform: none !important;
  }

  .global-nav,
  .js.intro-lock .global-nav,
  .js.intro-lock .header-cta {
    opacity: 1 !important;
  }
}

/* ===== 第2波（2026-09-24）の担当ごとの区切り ===== */

/* ==== H1 コンポジットカード・プレス・作品・ギャラリー・実績・衣装 ここから ==== */

@media (pointer: fine) {
  .series-card-link:hover .series-card-image img,
  .press-photo-link:hover .press-photo-frame img,
  .series-shot:hover img {
    transform: scale(1.035);
  }

  .series-card-link:hover .series-card-title,
  .series-pager-link:hover .series-pager-title,
  .page-tools-note a:hover {
    color: var(--gold);
  }

  .part-filter__button:hover,
  .part-lang__button:hover {
    color: var(--ink);
  }

  .part-print-sheet__button:hover {
    background: #4a3427;
    border-color: #4a3427;
  }

  .part-lightbox__close:hover,
  .part-lightbox__nav:hover,
  .lightbox-strip-item:hover {
    opacity: 1;
  }

  html[data-daypart="golden"] .page-head .site-button--primary:not([disabled]):hover,
  html[data-daypart="night"] .page-head .site-button--primary:not([disabled]):hover {
    background: var(--paper);
    border-color: var(--paper);
    color: var(--ink);
  }
}

@media (max-width: 900px) {
  .series-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .series-detail {
    grid-template-areas:
      "data"
      "note"
      "credit";
    grid-template-columns: minmax(0, 1fr);
  }

  .press-photos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .works-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .works-number,
  .works-number:first-child {
    padding: 1.5rem 1.25rem 1.5rem 0;
  }

  .works-number + .works-number {
    border-left: 0;
  }

  .works-number:nth-child(n + 4) {
    border-top: 1px solid var(--hairline);
  }

  /* 5つを3列に並べると2段目の右の欄が空くので、そこにも区切り線を引く（線が途中で切れないように） */
  .works-summary::after {
    border-top: 1px solid var(--hairline);
    content: "";
    grid-column: 3;
    grid-row: 2;
  }

  .works-year {
    grid-template-columns: minmax(0, 1fr);
  }

  .works-year-title {
    margin-bottom: 1rem;
    padding-top: 0;
  }

  .works-row {
    grid-template-columns: 7.5rem minmax(0, 1fr);
  }

  .works-kind {
    grid-column: 2;
    text-align: left;
  }
}

@media (max-width: 760px) {
  .works-filters,
  .wardrobe-filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .works-count,
  .wardrobe-count {
    grid-column: 1;
    grid-row: auto;
    justify-self: end;
  }

  .wardrobe-row {
    align-items: start;
    grid-template-columns: 4.75rem minmax(0, 1fr);
  }

  .wardrobe-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem 1.25rem;
    grid-column: 2;
    justify-items: start;
  }
}

@media (max-width: 640px) {
  .series-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .series-row {
    flex-direction: column;
  }

  .series-shot {
    flex: none;
    width: 100%;
  }

  .series-pager {
    grid-template-columns: minmax(0, 1fr);
  }

  .series-pager-link--next {
    border-left: 0;
    border-top: 1px solid var(--hairline);
    padding-left: 0;
    text-align: left;
  }

  .series-pager-link--prev {
    padding-right: 0;
  }

  .series-pager-link.is-empty {
    display: none;
  }

  .series-credit-list div {
    grid-template-columns: minmax(0, 1fr);
  }

  .press-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* 5枚を 1・2・2 に（1枚目の全身を大きく） */
  .press-photo:first-child {
    grid-column: 1 / -1;
  }

  .press-photo:first-child .press-photo-frame {
    aspect-ratio: 3 / 2;
  }

  .press-bio {
    padding: 1.5rem 1.25rem;
  }

  .works-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .works-number:nth-child(n + 3) {
    border-top: 1px solid var(--hairline);
  }

  /* 2列では3段目の右の欄が空く */
  .works-summary::after {
    grid-column: 2;
    grid-row: 3;
  }

  .works-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .works-kind {
    grid-column: 1;
  }

  .lightbox-strip {
    display: none;
  }

  .lightbox-count {
    top: auto;
  }
}

/* ==== H1 コンポジットカード・プレス・作品・ギャラリー・実績・衣装 ここまで ==== */

/* ==== H2 ナビ・トップ・配信予定・料金・依頼・ガイドライン・英語 ここから ==== */
/* 全ページ共通で site.js が組むもの：PC は主要ページの直リンク＋全件メニュー、スマホは全画面メニュー。 */
/* フッターのグループ別サイトマップ、ヘッダーの言語の切り替え、「日本語だけのページ」の帯。profile の肩書き。 */
/* 全ページが読むのがこのファイルだけなので、ここに置く。幅の切り替えはこの区切りの後半のメディアクエリ。 */

/* ---- ナビ：主要ページの直リンク（PC＝幅1100以上だけ出す） ---- */

.nav-quicklinks {
  align-items: center;
  display: none;
  gap: 1.6rem;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 2;
}

.nav-quicklink {
  align-items: center;
  color: inherit;
  display: inline-flex;
  font-family: var(--font-serif);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  /* 直リンクのタップ領域を44px以上に保つ。 */
  min-height: 44px;
  position: relative;
  white-space: nowrap;
}

.nav-quicklink > span {
  position: relative;
}

.nav-quicklink > span::after {
  background: currentColor;
  bottom: -0.3rem;
  content: "";
  /* 現在地とホバーを示す装飾の1px罫線。 */
  height: 1px;
  inset-inline: 0;
  opacity: 0.55;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s var(--ease-light);
}

.nav-quicklink[aria-current="page"] > span::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nav-quicklink:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
}

/* English の直リンクは字間を詰める（ヘッダーの1段に収める） */
html[data-site-lang="en"] .nav-quicklink {
  font-family: var(--font-latin);
  letter-spacing: 0.03em;
}

/* ---- ナビ：一覧の幕（スマホ・タブレットは全画面の紙。PC は上から開く紙の面＋後ろの薄い幕） ---- */

.global-nav-panel.nav-panel {
  display: block;
  padding: 0;
}

.nav-sheet-inner {
  padding-block: 6.5rem 3.5rem;
}

.nav-groups {
  display: grid;
  gap: 2.5rem 3rem;
  grid-template-columns: minmax(0, 1fr);
}

.nav-group-kicker {
  font-size: 0.7rem;
  margin-bottom: 0.3rem;
}

.nav-group-name {
  color: var(--ink-soft);
  font-family: var(--font-serif);
  font-size: 0.9rem;
  letter-spacing: 0.14em;
  line-height: 1.6;
}

html[data-site-lang="en"] .nav-group-kicker {
  display: none;
}

.nav-group-list {
  border-top: 1px solid var(--hairline);
  display: grid;
  gap: 0.1rem;
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0.85rem 0 0;
  transition: border-color 0.4s var(--ease-light);
}

.nav-link {
  display: inline-block;
  font-family: var(--font-serif);
  font-size: 1.0625rem;
  letter-spacing: 0.1em;
  line-height: 1.6;
  padding-block: 0.45rem;
  position: relative;
}

.nav-link > span {
  position: relative;
}

.nav-link > span::after {
  background: currentColor;
  bottom: -0.2rem;
  content: "";
  height: 1px;
  inset-inline: 0;
  opacity: 0.55;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s var(--ease-light);
}

.nav-link[aria-current="page"] > span::after {
  transform: scaleX(1);
}

.nav-link:focus-visible {
  outline: 1px solid var(--gold);
  outline-offset: 2px;
}

.nav-sheet-foot {
  align-items: center;
  border-top: 1px solid var(--hairline);
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 2.5rem;
  justify-content: space-between;
  margin-top: 2.75rem;
  padding-top: 1.75rem;
}

/* ---- フッター：グループ別のサイトマップ ---- */

.footer-nav.footer-sitemap {
  display: grid;
  gap: 2.5rem 3rem;
  grid-template-columns: repeat(4, auto);
}

.footer-sitemap ul {
  display: grid;
  gap: 0.45rem;
  line-height: 1.6;
  grid-auto-flow: row;
  grid-template-rows: none;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-group-name {
  color: var(--champagne-gold);
  font-family: var(--font-serif);
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  line-height: 1.6;
  margin: 0 0 1.1rem !important;
}

.footer-sitemap a[aria-current="page"] {
  color: var(--champagne-gold);
}

/* ---- 「日本語だけのページ」の帯（English を選んだとき、扉の帯の直下） ---- */

.lang-notice {
  background: #fffdf9;
  border-bottom: 1px solid var(--hairline);
  padding-block: 1.5rem;
  position: relative;
  z-index: 1;
}

.lang-notice[hidden] {
  display: none;
}

.lang-notice-title {
  font-family: var(--font-latin);
  font-size: 1rem;
  letter-spacing: 0.02em;
  line-height: 1.7;
}

.lang-notice-text {
  color: var(--ink-soft);
  font-family: var(--font-latin);
  font-size: 0.875rem;
  line-height: 1.8;
  margin-top: 0.2rem;
}

.lang-notice-text a {
  text-decoration: underline;
  text-decoration-color: var(--champagne-gold);
  text-underline-offset: 0.25em;
}

/* ---- 受付の状態「予約不要」：受付中と同じ金の点（トップの次の出演と出演予定で使う） ---- */

.badge--free {
  color: var(--ink);
}

.badge--free::before {
  background: var(--gold);
  border-radius: 50%;
  content: "";
  flex: none;
  height: 6px;
  width: 6px;
}

/* ---- profile：名前（扉の帯）の直下の肩書き ---- */

.profile-titles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.6rem;
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}

.profile-titles li {
  align-items: baseline;
  color: var(--ink-soft);
  display: inline-flex;
  font-family: var(--font-serif);
  font-size: 0.875rem;
  gap: 0.6rem;
  letter-spacing: 0.06em;
  line-height: 1.8;
}

.profile-titles li::before {
  background: var(--champagne-gold);
  border-radius: 50%;
  content: "";
  flex: none;
  height: 0.3rem;
  position: relative;
  top: -0.15em;
  width: 0.3rem;
}

html[data-daypart="golden"] .page-head .profile-titles li,
html[data-daypart="night"] .page-head .profile-titles li {
  color: var(--soft-on-dark);
}

@media (pointer: fine) {
  .nav-link:hover > span::after,
  .footer-sitemap a:hover > span::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  .nav-quicklink:hover > span::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  .nav-sheet .nav-lang .part-lang__button:hover {
    opacity: 1;
  }

  .part-tabs__tab:hover {
    color: var(--ink);
  }

  .part-month-calendar__nav:hover,
  .part-month-calendar__add-link:hover {
    background: rgba(59, 44, 34, 0.08);
    border-color: var(--ink);
  }

  .part-card-slider__btn:hover:not(:disabled) {
    background: rgba(59, 44, 34, 0.08);
    border-color: var(--ink);
  }

  .portfolio-cta .part-card-slider__btn:hover:not(:disabled) {
    background: rgba(248, 238, 225, 0.12);
    border-color: var(--night-paper);
  }

  .recent-card:hover .recent-card-image img {
    transform: scale(1.035);
  }

  .cal-add-summary:hover {
    color: var(--ink);
  }

  .cal-add-link:hover {
    border-bottom-color: currentColor;
  }

  .request-type:hover .request-type-card {
    border-color: var(--gold);
  }

  .request-type input:checked + .request-type-card:hover {
    border-color: var(--ink);
  }
}

@media (max-width: 900px) {
  .numbers-grid,
  .numbers-grid--four {
    column-gap: 2rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .request-types {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .numbers-grid,
  .numbers-grid--four {
    column-gap: 1.25rem;
  }

  .number-item {
    padding-block: 1.5rem 1.6rem;
  }

  .number-name {
    font-size: 0.95rem;
    margin-top: 0.8rem;
  }

  .number-note {
    font-size: 0.8rem;
  }

  .request-types {
    grid-template-columns: minmax(0, 1fr);
  }

  .request-type-card {
    padding: 1.1rem 1.25rem 1.2rem;
  }

  .menu-section-lead {
    margin-top: calc(var(--space-title) * -0.35);
  }
}

/* 640 以上：メニューの幕の一覧を2列に */
@media (min-width: 640px) {
  .nav-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 1100 以上（PC）：ロゴは左端、ナビゲーションは右端へ置く。主要ページの直リンクと「メニュー」を並べ、一覧はヘッダーから下へ開く紙の面（4列）。 */
@media (min-width: 1100px) {
  .nav-quicklinks {
    display: flex;
  }

  .global-nav {
    gap: 1.6rem;
  }

  .header-inner {
    column-gap: 1.6rem;
    /* PCのヘッダーだけは外枠の整列幅を外し、ロゴとナビを画面の両端へ寄せる。 */
    max-width: none;
    padding-inline: clamp(2rem, 4vw, 5rem);
  }

  /* English の直リンクは字間を詰め、ヘッダーの1段に収める */
  html[data-site-lang="en"] .nav-quicklinks {
    gap: 1.2rem;
  }

  html[data-site-lang="en"] .nav-quicklink {
    letter-spacing: 0.01em;
  }

  /* comp-card・press：メニュー内に言語の切り替えがあるので、ページ内の切り替えは出さない */
  .page-tools .page-tools-lang {
    display: none;
  }

  .header-cta {
    position: relative;
    z-index: 2;
  }

  .global-nav-panel.nav-panel {
    background: rgba(29, 21, 15, 0.28);
    background-image: none;
    overflow-y: auto;
  }

  .nav-sheet {
    background-color: var(--paper);
    background-image: url("../images/paper-washi.webp");
    background-repeat: repeat;
    border-bottom: 1px solid var(--hairline);
    position: relative;
  }

  /* ヘッダーの下に細線を1本（一覧との区切り） */
  .nav-sheet::before {
    background: var(--hairline);
    content: "";
    height: 1px;
    inset: 5rem 0 auto;
    position: absolute;
  }

  .nav-sheet-inner {
    padding-block: 7.75rem 3.75rem;
  }

  .nav-groups {
    gap: 3rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .nav-link {
    font-size: 1rem;
    padding-block: 0.4rem;
  }

  .nav-sheet-foot {
    display: block;
  }

  /* 言語切替はヘッダーではなく開いたメニューの中に置く。PCの撮影依頼はヘッダーに残す。 */
  .nav-sheet-foot .nav-sheet-cta,
  .nav-sheet-foot .nav-sheet-sitemap {
    display: none;
  }

  html.nav-open .site-header {
    border-bottom-color: transparent;
  }
}

/* 1100〜1199pxではヘッダーの残り幅に合わせ、出演予定は全件メニューへ任せる。 */
@media (min-width: 1100px) and (max-width: 1199px) {
  .nav-quicklinks li:last-child {
    display: none;
  }
}

/* 1100 未満：フッターは名前の下にサイトマップ */
@media (max-width: 1099px) {
  /* タブレット・スマホでは依頼導線を全画面メニューの中へまとめる。 */
  .header-cta {
    display: none;
  }

  .footer-top {
    grid-template-columns: minmax(0, 1fr);
  }

  /* 全画面のメニュー：一覧を下へ送っても、ロゴと「メニュー」の下に一覧が入らないよう、ヘッダーの高さの紙を上に留める */
  .global-nav-panel.nav-panel::before {
    background-color: var(--paper);
    background-image: url("../images/paper-washi.webp");
    background-repeat: repeat;
    content: "";
    display: block;
    height: 5rem;
    margin-bottom: -5rem;
    position: sticky;
    top: 0;
    z-index: 1;
  }
}

@media (max-width: 900px) {
  .footer-nav.footer-sitemap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .nav-sheet-inner {
    padding-block: 5.5rem 3rem;
  }

  .nav-sheet-foot {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-nav.footer-sitemap {
    gap: 2.25rem 1.5rem;
  }

  .part-tabs__list {
    gap: 1.75rem;
  }

  .part-month-calendar {
    --part-cal-cell: 3rem;
  }

  .part-month-calendar__panel {
    padding: 1.25rem 1.1rem;
  }

  .part-card-slider {
    --part-slider-gap: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nav-quicklink > span::after,
  .nav-link > span::after {
    transition: none !important;
  }
}

/* ==== H2 ナビ・トップ・配信予定・料金・依頼・ガイドライン・英語 ここまで ==== */

/* ==== H3 Q&A・お店・ファン・ブログ・クレジット・リンク・プロフィール ここから ==== */
/* ホバー（0.4s の色の変化だけ）→ 900px 以下 → 760px 以下 → 640px 以下 → 動きを減らす設定。 */

@media (pointer: fine) {
  .part-accordion__item > summary:hover,
  .faq-index-list a:hover,
  .post-pager-link:hover,
  .credit-sns a:hover,
  .credit-series-list a:hover,
  .post-tag:hover {
    color: var(--gold);
  }

  .part-accordion__filter:hover {
    color: var(--ink);
  }
}

@media (max-width: 900px) {
  .faq-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .faq-index {
    position: static;
  }

  .faq-index-list {
    border-top: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem 1.75rem;
  }

  .faq-index-list a {
    border-bottom: 1px solid transparent;
    gap: 0.35em;
    padding: 0.3rem 0 0.1rem;
  }

  .faq-index-count {
    font-size: 0.7rem;
    position: relative;
    top: -0.35em;
  }

  .shop-grid,
  .fan-tips {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fan-letters {
    grid-template-columns: minmax(0, 1fr);
  }

  .fan-ng {
    max-width: 26rem;
  }

  .fan-plans {
    gap: var(--space-title) 1.5rem;
  }

  .fan-way {
    grid-template-columns: 3.25rem minmax(0, 1fr);
  }

  .fan-way-text {
    grid-column: 2;
  }

  .link-group {
    grid-template-columns: 10rem minmax(0, 1fr);
    gap: 0 2rem;
  }

  .link-grid--fixed {
    margin-left: calc(10rem + 2rem);
  }
}

@media (max-width: 760px) {
  .shop-feature,
  .shop-ways {
    grid-template-columns: minmax(0, 1fr);
  }

  .shop-feature-cover {
    max-width: 22rem;
  }

  .fan-plans {
    grid-template-columns: minmax(0, 1fr);
    max-width: 34rem;
  }

  .credit-table .credit-name {
    white-space: normal;
  }

  .credit-since {
    display: inline;
    margin-left: 0.75rem;
  }

  .blog-filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .blog-status {
    grid-column: 1;
    grid-row: auto;
    justify-self: end;
  }

  .link-group {
    grid-template-columns: minmax(0, 1fr);
  }

  .link-group-head {
    padding-top: 0;
    margin-bottom: 1rem;
  }

  .link-grid--fixed {
    margin-left: 0;
  }
}

@media (max-width: 640px) {
  .faq-answer {
    padding-left: 0;
    padding-right: 0;
  }

  .faq-list .faq-item > summary {
    grid-template-columns: 2.25rem minmax(0, 1fr);
  }

  .part-accordion__item > summary {
    font-size: 1rem;
  }

  .shop-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .shop-item {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 6.5rem minmax(0, 1fr);
  }

  .shop-item .shop-cover {
    margin: 0.35rem;
    outline-offset: 0.35rem;
  }

  .shop-feature-cover {
    max-width: none;
  }

  .fan-tips {
    grid-template-columns: minmax(0, 1fr);
  }

  .fan-way {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.25rem 0.75rem;
  }

  .post-pager {
    grid-template-columns: minmax(0, 1fr);
  }

  .post-pager-link--next {
    border-left: 0;
    border-top: 1px solid var(--hairline);
    padding-left: 0;
    text-align: left;
  }

  .post-pager-link--prev {
    padding-right: 0;
  }

  .post-pager-link.is-empty {
    display: none;
  }

  .profile-more-text {
    font-size: 1.1875rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .part-accordion__item > summary::before,
  .part-accordion__item > summary::after {
    transition: none !important;
  }
}

/* ==== H3 Q&A・お店・ファン・ブログ・クレジット・リンク・プロフィール ここまで ==== */

/* ==== 総点検（QH）ここから ==== */

/* 761〜900：絞り込みの右に件数の列が残ると、選択肢の列が 330px ほどに狭まり「お仕事」などが1つだけ次の行に落ちる。 */
/* 760 以下と同じく、件数は絞り込みの下（右寄せ）へ、行の名前（TIME など）は選択肢の上へ。 */
@media (max-width: 900px) {
  .gallery-filters,
  .blog-filters,
  .works-filters,
  .wardrobe-filters,
  .filter-group {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-count,
  .blog-status,
  .works-count,
  .wardrobe-count {
    grid-column: 1;
    grid-row: auto;
    justify-self: end;
  }
}

/* ==== 総点検（QH）ここまで ==== */

/* ==== 画像の仕上げ（2026-09-24）ここから ==== */
/* お店：横並び（表紙＋本文）になる幅では、文字組みの表紙が6.5rem四方まで縮む。分類名・撮影者名と年は隠し、題名だけを小さく残す。 */
@media (max-width: 640px) {
  .shop-item .shop-cover--type .shop-cover-eyebrow,
  .shop-item .shop-cover--type .shop-cover-credit {
    display: none;
  }

  .shop-item .shop-cover--type .shop-cover-face {
    padding: 10% 8% 10% 13%;
  }

  .shop-item .shop-cover--type .shop-cover-rule {
    margin-bottom: 0.5rem;
    width: 1rem;
  }

  .shop-item .shop-cover--type .shop-cover-title {
    font-size: 0.66rem;
    letter-spacing: 0.02em;
    line-height: 1.55;
  }
}
/* ==== 画像の仕上げ（2026-09-24）ここまで ==== */

/* ==== サイトマップ（2026-09-24）ここから ==== */
@media (max-width: 900px) {
  .sitemap-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .sitemap-groups { grid-template-columns: 1fr; gap: 1.5rem; }
}
/* ==== サイトマップ（2026-09-24）ここまで ==== */
