@media screen and (max-width: 768px) {

  /* 背景画像の修正(Safari/モバイル対応) */
  body::after {
    background-attachment: scroll;
    background-size: cover;
    background-position: center center;
  }

  body::before {
    background-attachment: scroll;
  }

  /* ヘッダー */
  .header {
    padding: 15px 20px;
  }

  .hamburger {
    width: 45px;
    height: 45px;
    gap: 6px;
  }

  .hamburger span {
    width: 20px;
  }

  .hamburger.active span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }

  .hamburger.active span:nth-child(2) {
    opacity: 0;
  }

  .hamburger.active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }

  /* ナビゲーションメニュー */
  .nav-menu ul li {
    margin: 25px 0;
  }

  .nav-menu ul li a {
    font-size: 1.8rem;
    padding: 8px 15px;
  }

  /* ファーストビュー */
  .stage {
    height: 100dvh;
  }

  .circle {
    width: 80vw;
    height: 80vw;
    max-width: 85vw;
    max-height: 85vw;
    font-size: 7.5vw;
    padding: 30px;
    border: 3px solid rgba(255, 255, 255, 0.8);
  }

  /* スマホ版の丸の位置調整 */
  .circle-osaka {
    left: -62vw;
  }

  .circle-tokyo {
    right: -62vw;
  }

  @keyframes moveLeft {
    to {
      left: calc(-32vw + 50px);
    }
  }

  @keyframes moveRight {
    to {
      right: calc(-32vw + 50px);
    }
  }

  h1 {
    width: 87vw;
    letter-spacing: 0.08em;
  }

  h1 span {
    font-size: 0.76rem;
    margin-bottom: 5vw;
  }

  h1 img {
    width: 90%;
  }

  h2 {
    font-size: 2.5rem;
    margin: 4vh 0 2vh;
  }

  h4 {
    font-size: 1.2rem;
    margin: 8vw auto 5vw;
    letter-spacing: 0;
  }

  section {
    max-width: 98vw;
  }

  section#schedule {
    height: 100dvh;
    min-height: 100vh;
    margin-top: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .tour-schedule {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
    padding: 2vh 0;
    position: relative;
    width: 100%;
  }

  .tour-item:first-child::after {
    display: none;
  }

  .tour-item:last-child::before {
    display: none;
  }

  .tour-schedule::before {
    content: '';
    position: absolute;
    left: 50%;
    width: 90vw;
    height: 2px;
    background: rgba(255, 255, 255, 0.4);
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    z-index: 1;
    opacity: 0;
    transition: opacity 0.8s ease 1s;
  }

  .tour-schedule:has(.tour-item:first-child.visible)::before {
    opacity: 1;
  }

  .tour-item {
    padding: 1.5vh 0;
    min-height: auto;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .tour-item::before,
  .tour-item::after {
    content: '';
    position: absolute;
    height: 2px;
    width: 90vw;
    left: 50%;
    background: rgba(255, 255, 255, 0.4);
    top: 50%;
    transform: translate(-50%, -50%);
    transition: all 1s cubic-bezier(0.34, 1.35, 0.64, 1);
  }

  .tour-item:first-child::after {
    display: none;
  }

  .tour-item:last-child::before {
    display: none;
  }

  .tour-item:first-child.visible::after {
    display: none;
  }

  .tour-item:last-child.visible::before {
    display: none;
  }

  .tour-item.visible::before {
    top: 0;
    transform: translate(-50%, 0);
  }

  .tour-item.visible::after {
    top: 100%;
    transform: translate(-50%, -100%);
  }

  .tour-item:nth-child(2).visible::before,
  .tour-item:nth-child(2).visible::after {
    transition-delay: 0.15s;
  }

  .tour-item:first-child.visible::before {
    top: 0 !important;
    transform: translate(-50%, 0) !important;
    transition: all 1s cubic-bezier(0.34, 1.35, 0.64, 1) !important;
  }

  .tour-item:first-child.visible~.tour-item::after {
    top: 100% !important;
    transform: translate(-50%, -100%) !important;
    transition: all 1s cubic-bezier(0.34, 1.35, 0.64, 1) !important;
  }

  .tour-item:first-child.visible~.tour-item .tour-content {
    opacity: 1 !important;
    transition: opacity 0.8s ease 1s !important;
  }

  .tour-content {
    opacity: 0;
    transition: opacity 0.8s ease 1s;
  }

  .tour-item.visible .tour-content {
    opacity: 1;
  }

  .tour-item:nth-child(2).visible .tour-content {
    transition-delay: 1.15s;
  }

  .tour-city {
    font-size: 2rem;
    margin-bottom: 0.5vh;
    letter-spacing: 0.2em;
  }

  .tour-date {
    font-size: 1.4rem;
    margin-bottom: 0.8vh;
    min-height: 2rem;
  }

  .tour-date .sat,
  .tour-date .sun {
    font-size: 1.2rem;
  }

  .tour-venue-en {
    font-size: 2.3rem;
    margin-bottom: 0.5vh;
    min-height: 5rem;
    padding: 0.5rem 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.05;
  }

  .tour-item:nth-child(2) .tour-venue-en {
    font-size: 2.7rem;
    min-height: 5rem;
  }

  .tour-venue {
    font-size: 0.8rem;
    margin-bottom: 0.8vh;
    min-height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.3em;
  }

  .tour-time {
    font-size: 0.9rem;
    line-height: 1.3em;
    margin: 1vh 0;
    min-height: 2.6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .tour-contact {
    font-size: 0.8rem;
    line-height: 1.3em;
    margin-bottom: 1.5vh;
    min-height: 2.6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .tour-sold {
    font-size: 1.1rem;
    padding: 0.4em 1em;
  }


  /* チケットセクション */
  #ticket {
    padding: 0;
    width: 95%;
  }

  .notes {
    font-size: 0.8rem;
    line-height: 1.7;
  }

  .ticket-wrap {
    margin-bottom: 5vw;
  }

  .ticket-wrap .ticket-type {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 5px;
    padding: 5px 0px !important;
  }

  .ticket-wrap .ticket-type.sold-out::after {
    padding: 5px 10px;
    font-size: 1rem;
  }

  .ticket-seat {
    width: auto;
    font-size: 0.875rem;
    margin: 0 10px 0 10px;
    width: 50%;
  }

  .ticket-seat li {
    padding: 12px 0;
    line-height: 1.4;
  }

  .ticket-seat li:last-of-type {
    border: none;
  }

  .ticket-seat small {
    font-size: 0.675rem;
  }

  .ticket-price {
    font-size: 1.1rem;
    text-align: left;
  }

  .ticket-price .tax {
    font-size: 0.75rem;
    padding-left: 2vw;
  }

  /* アコーディオン */
  .accordion-header {
    font-size: 0.9rem !important;
    padding: 2vw 4vw;
    margin: 5vw auto 0;
  }

  .accordion-header::after {
    font-size: 2rem;
  }

  .accordion-content-inner {
    padding: 4vw 5vw 3vw;
    font-size: 0.85rem;
  }

  .list li {
    font-size: 0.85rem;
    line-height: 1.6;
    margin: 1vw 0;
  }

  .specialseat {
    padding: 13px 20px 15px;
    width: 110%;
    margin: 30px -20px 0;
  }

  .special-seat {
    width: 100%;
  }

  .specialseat .head {
    margin: 0 0 8px;
    font-size: 1.4rem;
  }

  /*.specialseat .heading::before,
  .specialseat .heading::after {
    width: 0;
    border: none;
  }*/

  .specialseat p {
    text-align: left;
    font-size: 0.76rem;
    line-height: 1.6;
  }

  .ticket-list {
    padding: 4vw 5vw 4.5vw;
    margin: 5vw 0;
    clip-path: polygon(20px 0,
        100% 0,
        100% calc(100% - 20px),
        calc(100% - 20px) 100%,
        0 100%,
        0 20px);
  }

  .ticket-list .title {
    font-size: 0.98rem;
    margin-bottom: 1vw;
    text-align: center;
  }

  .ticket-list .title span {
    font-size: 0.75rem !important;
  }

  .ticket-list .period {
    margin: 2vw 0 2vw;
  }

  .ticket-list .period li {
    padding: 2vw 0;
    font-size: 0.82rem;
    line-height: 1.5;
    letter-spacing: -0.03em;
  }

  .ticket-list .period li span {
    font-size: 0.82rem;
    padding: 0 0.2vw;
  }

  .ticket-list .period div {
    display: block;
    margin: 0;
    padding: 0;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0;
    border-right: none;
  }

  .ticket-list .heading {
    font-size: 0.95rem;
    margin: 30px 0 10px;
  }

  .ticket-list .heading:first-of-type {
    margin: 10px 0;
  }


  .ticket-list p {
    margin: 2vw 0 0;
    font-size: 0.88rem;
    line-height: 1.5;
  }

  .ticket-list .fc {
    font-size: 0.88rem;
  }

  .ticket-list .note {
    margin: 2vw 0 0;
    font-size: 0.88rem;
  }

  .ticket-list .notice {
    font-size: 0.78rem;
    line-height: 1.6;
  }

  .ticket-list .notice2 {
    font-size: 0.76rem;
    margin: 0.5rem 0rem 0;
  }

  .detail-toggle-btn {
    padding: 1.5vw 5vw 1.7vw;
    font-size: 0.8rem;
    margin: 2vw auto 0;
  }

  .detail-toggle-btn::after {
    font-size: 0.7rem;
  }



  footer {
    margin-top: 20px;
    font-size: 0.75rem;
  }

  footer .copyright {
    font-size: 0.7rem;
  }


  #news {
    width: 95%;
    padding-top: 3vw;
    padding-bottom: 5vw;
  }

  .news-header {
    padding: 4vw 1vw;
    gap: 2vw;
    flex-wrap: wrap;
    align-items: center;
  }

  .news-date {
    font-size: 0.72rem;
    min-width: auto;
    flex-shrink: 0;
    order: 1;
  }

  .news-body-inner .news-goods img {
    width: 98%;
    margin-bottom: 30px;
  }


  .news-badge-new {
    font-size: 0.62rem;
    padding: 2px 6px 3px;
    flex-shrink: 0;
    align-self: center;
    order: 2;
  }

  .news-title-text {
    font-size: 0.9rem;
    line-height: 1.55;
    flex: 0 0 calc(100% - 1.5rem);
    order: 3;
  }

  .news-arrow {
    display: inline-block;
    font-size: 0.65rem;
    order: 4;
    margin-left: auto;
  }

  .news-body-inner {
    margin-left: 0;
    padding-left: 0;
    padding-bottom: 5vw;
  }

  .news-body-inner p {
    font-size: 0.87rem;
    line-height: 1.7;
    margin: 0 10px 20px;
  }

  .news-body-inner .note {
    font-size: 0.78rem;
    line-height: 1.65;
  }

  .news-body-inner .detail-btn {
    width: 30%;
    margin: 15px 0 0;
    font-size: 0.8rem;
    padding: 8px;
  }

  .news-more-btn {
    padding: 10px 30px;
    font-size: 0.85rem;
    letter-spacing: 0.2em;
    margin: 10px 0 0;
  }

  .news-tokuten {
    display: block;
    width: 70%;
    margin-bottom: 20px
  }



  /* ========================================
     Goods 
     ======================================== */

  .goods-hero {
    height: 20vh;
  }

  .goods-hero-sub {
    font-size: 0.62rem;
    letter-spacing: 0.2em;
    margin-bottom: 0.8rem;
  }

  h1.goods-hero-title {
    font-size: 2.5rem;
    letter-spacing: 0.05em;
  }

  .goods-hero-quote {
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    margin-top: 1.2rem;
  }

  section.goods-section {
    width: 90%;
    padding-bottom: 16vw;
  }

  .goods-category {
    margin-bottom: 10vw;
  }

  .goods-cat-header {
    margin-bottom: 5vw;
    padding-bottom: 3vw;
    gap: 0.8rem;
  }

  h2.goods-cat-title {
    font-size: 1rem;
  }

  .goods-cat-note {
    font-size: 0.68rem;
  }

  .goods-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 6vw 4vw;
  }

  .goods-info {
    padding-top: 2.8vw;
  }

  .goods-name {
    font-size: 0.75rem;
    margin-bottom: 1.5vw;
  }

  .goods-price {
    font-size: 0.88rem;
  }

  .goods-price .tax {
    font-size: 0.68em;
  }

  .goods-badge-new {
    font-size: 0.56rem;
    padding: 2px 7px 3px;
  }

  .goods-banner {
    width: 100%;
    margin: 30px auto 40px;
    font-size: 0.72rem;
  }

  .goods-lineup-modal-header {
    position: sticky;
    top: 0;
    display: flex;
    justify-content: flex-end;
    padding: 12px 0;
  }

  /* ----- INFO TABS (SP) ----- */
  section.goods-info-section {
    width: 90%;
    padding-bottom: 18vw;
  }

  .info-tabs {
    margin-bottom: 8vw;
  }

  .info-tab {
    padding: 1.3rem 0.4rem;
    gap: 0.3rem;
  }

  .tab-label-jp {
    font-size: 1rem;
    letter-spacing: 0.1em;
  }

  .tab-label-en {
    font-size: 0.55rem;
    letter-spacing: 0.25em;
  }

  .info-title {
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 1.2rem;
    padding-bottom: 0.95rem;
  }

  .info-lead {
    font-size: 0.96rem;
    line-height: 1.85;
    margin-bottom: 1.6rem;
  }

  .info-subtitle {
    font-size: 1.12rem;
    margin: 5rem 0 1.2rem;
    padding-left: 0.75rem;
    gap: 0.6rem;
  }

  .info-sub-subtitle {
    display: block;
    font-size: 0.98rem;
    margin: 2rem 0 0.95rem;
    text-align: left;
  }

  .info-sub-subtitle::before {
    display: inline-block;
    width: 12px;
    height: 1px;
    background: rgba(255, 255, 255, 0.5);
    vertical-align: middle;
    margin-right: 0.65rem;
  }

  .info-text {
    font-size: 0.88rem;
    line-height: 1.7;
    margin-bottom: 1.2rem;
  }

  .info-text-small {
    font-size: 0.82rem;
    line-height: 1.8;
  }

  .info-block.notes {
    padding: 1.1rem 1.2rem;
    margin: 1.2rem 0 1.6rem;
  }

  .info-block.notes p {
    font-size: 0.82rem;
    line-height: 1.7;
    margin-bottom: 0.6rem;
  }

  .info-block.notes.large p {
    font-size: 0.85rem;
    line-height: 1.9;
    margin-bottom: 0.85rem;
  }

  .info-schedule li {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 1rem 0;
    font-size: 0.95rem;
  }

  .info-schedule .date {
    min-width: 0;
    font-size: 1rem;
  }

  .info-schedule .venue {
    font-size: 0.92rem;
  }

  .info-schedule .time {
    margin-left: 0;
    font-size: 0.85rem;
  }

  .info-product-list li {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 1.15rem 0.2rem;
  }

  .info-product-list .product-name {
    font-size: 0.98rem;
    flex: 1 1 auto;
  }

  .info-product-list .product-meta {
    font-size: 0.83rem;
  }

  .info-product-list .product-price {
    font-size: 0.98rem;
    margin-left: 0;
    color: #fff;
  }

  .info-note {
    font-size: 0.78rem;
    margin-bottom: 2rem;
  }

  .info-key-info {
    padding: 0.8rem 1rem;
    margin: 1.8rem 0 2rem;
  }

  .key-row {
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.7rem 0;
  }

  .key-row+.key-row {
    padding-top: 1rem;
    margin-top: 0.3rem;
  }

  .key-label {
    font-size: 0.82rem;
    min-width: 0;
  }

  .key-value {
    font-size: 0.96rem;
    padding-left: 0.85rem;
  }

  .info-shops {
    grid-template-columns: 1fr;
    gap: 0.8rem;
  }

  .shop-link {
    padding: 1.2rem 1.3rem;
    gap: 0.35rem;
  }

  .shop-link .shop-name {
    font-size: 0.98rem;
  }

  .shop-link .shop-meta {
    font-size: 0.8rem;
  }

  .shop-link .shop-url {
    font-size: 0.78rem;
    margin-top: 0.3rem;
  }

  .info-contact {
    font-size: 1rem;
    word-break: break-all;
  }

  /* ----- ANCHOR NAV (SP) ----- */
  .info-anchor-nav {
    gap: 0.5rem;
    margin-bottom: 2.8rem;
  }

  .anchor-btn {
    padding: 0.85rem 0.5rem;
    gap: 0;
    justify-content: center;
    position: relative;
  }

  .anchor-btn::after {
    content: '▼';
    position: absolute;
    right: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.5rem;
    color: rgba(255, 255, 255, 0.55);
  }

  .anchor-arrow {
    display: none;
  }

  .anchor-text {
    align-items: center;
  }

  .anchor-btn-jp {
    font-size: 0.73rem;
    letter-spacing: 0.03em;
    white-space: nowrap;

    text-align: center;
  }

  .anchor-btn-en {
    display: none;
  }

  .anchor-arrow {
    width: 32px;
    height: 32px;
  }

  .anchor-arrow svg {
    width: 12px;
    height: 12px;
  }

  /* ----- GACHA (SP) ----- */
  .gacha-price-badge {
    font-size: 0.78rem;
    padding: 0.2em 0.7em 0.25em;
  }

  .gacha-schedule {
    grid-template-columns: 1fr;
    gap: 0.8rem;
    margin-bottom: 1.6rem;
  }

  .gacha-img {
    margin: 30px 0 -15px;
  }

  .gacha-day {
    padding: 0.6rem 1.2rem 1rem;
  }

  .gacha-day-title {
    font-size: 0.95rem;
    margin-bottom: 0.7rem;
    padding-bottom: 0.6rem;
  }

  .gacha-day-num {
    font-size: 0.72rem;
  }

  .gacha-times li {
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.4rem 0.8rem;
    padding: 0.4rem 0;
  }

  .gacha-label {
    font-size: 0.78rem;
  }

  .gacha-time {
    font-size: 0.95rem;
  }

  .gacha-time-note {
    display: block;
    font-size: 0.68rem;
    margin-top: -0.3rem;
  }

  .tokuten-img {
    display: block;
    width: 80%;
    margin: 20px 0;
  }



  /* ========================================
   goods-info-section
   ======================================== */

  .info-panel p {
    font-size: 0.85rem;
    line-height: 1.8;
    margin: 1.5rem 0;
  }

  .info-panel .small {
    font-size: 0.78rem;
  }

  .info-text-xsmall {
    font-size: 0.8rem;
    margin: 0 0 2.5rem;
  }

  .pickup-schedule {
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
    margin-bottom: -0.5rem;
  }

  .pickup-day {
    padding: 0.9rem 1rem 1rem;
  }

  .pickup-schedule .pickup-day-title {
    font-size: 0.85rem;
    margin-bottom: 0.65rem;
    padding-bottom: 0.55rem;
  }

  .pickup-label {
    font-size: 0.7rem;
  }

  .pickup-time {
    font-size: 0.95rem;
  }

  .pickup-time-note {
    font-size: 0.66rem;
  }

  .pickup-time-after {
    font-size: 0.66rem;
  }

  .app-info-block {
    padding: 1rem 1.4rem 1.4rem;
    margin: 2rem 0 1.5rem;
    border-width: 3px;
  }

  .app-info-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .app-info-block .app-info-title {
    font-size: 1.15rem !important;
    margin: 0 0 0.5rem !important;
  }

  .app-info-block p {
    margin: 0 0 0.3rem !important;
    font-size: 0.8rem !important;
    line-height: 1.65 !important;
  }

  .app-install-btn {
    display: none;
  }

  section.goods-info-section .info-schedule li {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem 1.8rem;
    padding: 0.9rem 0;
  }

  section.goods-info-section .info-schedule .date-venue {
    border-right: none;
    padding-right: 0;
    font-size: 0.85rem;
    min-width: 100%;
  }

  section.goods-info-section .info-schedule .time {
    font-size: 0.95rem;
  }

  section.goods-info-section .info-schedule .time small {
    display: block;
    font-size: 0.65rem;
    margin-top: 0.1rem;
  }

  /* ========================================
     Detail Page (SP)
     ======================================== */

  .detail-container {
    padding-top: 5px;
  }

  .detail-slide {
    max-width: 96vw;
  }

  .detail-back-btn {
    font-size: 0.72rem;
  }

  .goods-detail-content {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 5vw;
    margin-top: 3vw;
  }

  .detail-main-img-wrap {
    aspect-ratio: 1 / 1;
    width: 100%;
  }


  .detail-thumbs {
    gap: 3vw;
    margin-top: 3vw;
  }

  .detail-thumbs img {
    width: calc(30% - 1.5vw);
  }

  .detail-info {
    padding-top: 0;
  }

  .detail-tour-name {
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    padding-top: 1.1rem;
  }

  h1.detail-product-name {
    font-size: 1.25rem;
    margin-bottom: 0.2rem;
  }

  h1.detail-product-name .kids {
    font-size: 0.7rem;
  }

  .detail-product-price {
    font-size: 1.2rem;
    padding-bottom: 1.2rem;
  }

  .detail-specs {
    grid-template-columns: 5em 1fr;
  }

  .detail-specs dt {
    font-size: 0.6rem;
    padding: 0.6rem 0;
  }

  .detail-specs dd {
    font-size: 0.8rem;
    padding: 0.6rem 0 0.6rem 1rem;
  }

  .detail-specs dd.has-accordion .detail-accordion-body {
    margin-left: 0;
    width: 100%;
  }

  .detail-specs dd.has-accordion .detail-accordion {
    margin-top: 0.4rem;
  }

  .detail-specs dd .note {
    font-size: 0.8rem !important;
    margin: 15px 0;
    padding: 15px;
  }


  .detail-accordion-trigger {
    font-size: 0.6rem;
    padding-bottom: 0.65rem;
  }

  .detail-size-table th,
  .detail-size-table td {
    font-size: 0.75rem;
    padding: 0.35rem 0.4rem 0.35rem 0;
  }

  .detail-note-highlight {
    font-size: 0.75rem;
    line-height: 1.7;
  }

  .detail-note-text {
    font-size: 0.65rem;
  }

  .detail-nav-btn svg {
    width: 14px;
    height: 22px;
  }

  .detail-nav {
    width: 90%;
    margin: 5vw auto 7vw;
    padding-top: 3.5vw;
    display: flex;
    justify-content: space-between;
  }

  .detail-nav-btn {
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    position: static;
    transform: none;
    padding: 0;
  }

  .detail-prev {
    left: auto;
  }

  .detail-next {
    right: auto;
  }

  .detail-prev:hover {
    letter-spacing: 0.08em;
  }

  .detail-next:hover {
    letter-spacing: 0.22em;
  }
}

@media (max-width: 767px) {

  /* スマホでは固定矢印を非表示 */
  .detail-nav-btn-fixed {
    display: none;
  }

  /* 3列grid：左矢印 | GOODS LIST | 右矢印 */
  .detail-nav {
    display: grid;
    grid-template-columns: 44px 1fr 44px;
    align-items: center;
  }

  .detail-nav-btn {
    display: flex;
    position: static;
    transform: none;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
  }

  .detail-prev {
    grid-column: 1;
    left: auto;
  }

  .detail-next {
    grid-column: 3;
    right: auto;
  }

  .detail-back-btn {
    grid-column: 2;
    justify-self: center;
  }


  .apology {
    padding: 10px 15px;
    margin-bottom: 10px;
  }

  /* ============================================================
     FAQ (SP)
     ============================================================ */

  #faq {
    width: 100%;
    font-size: 0.9rem;
    padding-bottom: 50px;
  }

  .faq-category {
    margin-top: 20px;
  }

  .faq-category-label {
    font-size: 12px;
    padding: 10px 0;
    letter-spacing: 0.2em;
  }

  .faq-category .accordion-header {
    padding: 5px 0px 10px 0 !important;
    line-height: 1.6;

  }

  .accordion-header::after {
    font-size: 24px;
    margin-left: 20px;
  }

  .faq-venue-tabs {
    margin-bottom: 30px;
  }

  .faq-venue-tab {
    padding: 16px 8px;
    gap: 4px;
  }

  .faq-tab-label-main {
    font-size: 1.2rem;
    letter-spacing: 0.1em;
  }

  .faq-tab-label-sub {
    font-size: 0.66rem;
    letter-spacing: 0.06em;
  }

  .faq-answer {
    padding: 15px 20px 20px 0;
    font-size: 0.85rem;
  }

  #faq .accordion-content.active {
    max-height: 1200px;
  }

  /* ========================================
   Fanclub Styles
   ======================================== */

  #fanclub {
    width: 100%;
    font-size: 0.88rem;
  }


  .fanclub-list {
    padding: 20px 15px;
    margin: 30px auto;
  }

  .fanclub-list dt {
    margin: 20px 0 5px;
    font-size: 0.92rem;
  }

  .fanclub-list .head {
    font-size: 1rem;
    margin: 0 0 20px;
    padding: 8px 0 10px;
  }


  .fanclub-list .head span {
    font-size: 0.9rem;
  }

  .fanclub-list p {
    font-size: 0.88rem;
    line-height: 1.7;
    margin: 1vw 0;
  }

  .fanclub-list a {
    color: #000;
  }

  .fanclub-list .note {
    font-size: 0.78rem;
    line-height: 1.6;
    margin-top: 5px;
  }



  .howto {
    display: block;
  }

  .howto li {
    width: 100%;
    padding: 10px 15px 10px;
    margin: 0 0 20px;
  }

  .howto li:last-of-type {
    margin: 0 0 20px;
  }

  .howto li div {
    font-size: 1.8rem;
  }

  .howto li p {
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    margin: 10px 0 !important;
  }

  .howto-caution {
    padding: 20px;
    margin: 20px 0 0;
  }

  .fanclub-list .caution {
    font-size: 0.85rem;
    line-height: 1.3 !important;
  }

  .about-sendoff {
    padding: 20px;
    margin: 20px 0 0;
  }

  .about-sendoff dt {
    margin: 0rem 0 10px;
    font-size: 0.9rem;
    padding: 0 0 8px;
  }


  .venue-map-btn {
    margin: 20px auto;
    color: #000;
    font-size: 16px;
    padding: 0.6em 1.8em;
  }

  .info-reveal-modal-inner {
    padding: 2.2rem 1.6rem 2.6rem;
  }

  .info-reveal-modal-title {
    margin-bottom: 0.8rem;
  }

  .info-reveal-modal-body {
    font-size: 0.92rem;
  }


}