/* Responsive Styles */

/* Mobile First Approach */
@media (max-width: 767px) {
    .main-content {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        padding: 0 20px;
        overflow-x: hidden;
    }

    .hero-visuals {
        flex-direction: column;
        align-items: center;
    }

    .app-screenshot {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }

    .hero-character {
        width: 100%;
        max-width: 200px;
        margin: 0 auto;
    }

    .hero-content {
        text-align: center;
    }

    .method-text {
        padding-left: -20px;
        font-size: 14px; /* モバイル用のフォントサイズ */
    }
    
    .method-text h3 {
        font-size: 18px; /* モバイル用のh3フォントサイズ */
    }
    }

    .logo-img {
        width: 100%;
        max-width: 240px;
        height: auto;
        margin: 10px auto;
        display: block;
    }

    /* デスクトップ用のlogo-img設定 */
    @media (min-width: 768px) {
        .logo-img {
            max-width: 400px;
        }
    }

    /* モバイル用のmethodスタイル */
    .method {
        gap: 8px;
        padding: 0 20px;
    }

    /* モバイル用のterms-tableスタイル */
    .terms-table {
        width: 100%;
        overflow-x: auto;
        display: block;
        -webkit-overflow-scrolling: touch;
    }

    .terms-table table {
        width: 100%;
        min-width: 300px;
    }

    .terms-table th,
    .terms-table td,
    .policy-table th,
    .policy-table td {
        white-space: nowrap;
    }

    /* モバイル用のpolicy-tableスタイル */
    .policy-table {
        width: 100%;
        overflow-x: auto;
        display: block;
        -webkit-overflow-scrolling: touch;
    }

    .policy-table table {
        width: 100%;
        min-width: 300px;
    }

    /* モバイル用のテーブル内のテキストサイズ設定 */
    .terms-table th,
    .terms-table td,
    .policy-table th,
    .policy-table td {
        font-size: 12px; /* モバイル用のフォントサイズ */
    }

    .terms-table th,
    .terms-table td a,
    .policy-table th,
    .policy-table td a {
        font-size: 12px; /* モバイル用のリンクフォントサイズ */
    }

    /* デスクトップ用のテーブルフォントサイズ設定 */
    @media (min-width: 768px) {
        .terms-table th,
        .terms-table td,
        .policy-table th,
        .policy-table td {
            font-size: inherit; /* デフォルトのフォントサイズを継承 */
        }

        .terms-table th,
        .terms-table td a,
        .policy-table th,
        .policy-table td a {
            font-size: inherit; /* デフォルトのフォントサイズを継承 */
        }
    }

    .stamps-methods .method:not(:last-child)::after {
        width: 300px;
        height: 10px;
        top: 50%;
        left: 30%;
        transform-origin: 0 50%;
        margin-top: -2px;
        margin-left: -2px;
      }
      .stamps-methods .method:nth-child(2)::after {
        margin-left: 0;
        margin-right: -2px;
        top: 140%;
      }

    /* デスクトップ用のmethodのパディング設定 */
    @media (min-width: 768px) {
      .method {
        padding: 0 20px;
      }
    }


@media (min-width: 768px) {
    html {
        font-size: 18px;
    }

    .section-title {
        font-size: 32px;
    }

    .feature-list {
        flex-direction: row;
    }

    .feature-item {
        flex: 1;
    }

    .stamps-container {
        flex-direction: row;
    }

    .stamp-method {
        flex: 1;
    }
}

@media (min-width: 1024px) {
    /* PC版のレイアウト */
    .page-wrapper {
        flex-direction: row;
        justify-content: center;
        min-height: auto;
        padding: 0; /* 上下のパディングを0に変更 */
    }

    .main-content {
        width: var(--main-width);
        margin: 0 auto;
        padding: 0 20px;
        max-height: none;
        overflow-y: visible;
    }

    /* サイドバーのスタイル */
    .sidebar {
        /* 画面上端から下端までをカバー */
        position: fixed !important;
        top: 0; 
        bottom: 0;
        display: flex !important;
        justify-content: center;
        align-items: center;
        /* 幅は左右スペース全体に */
        width: auto !important;
      }
    
      /* 左サイドバー：左端からメインの左端まで */
      .sidebar-left {
        left: 0 !important;
        right: calc(50% + (var(--main-width) / 2)) !important;
      }
    
      /* 右サイドバー：メインの右端から右端まで */
      .sidebar-right {
        right: 0 !important;
        left:  calc(50% + (var(--main-width) / 2)) !important;
      }

      .sidebar-logo-img {
       max-width: 300px; 
      }
  
}