* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Arimo', 'Noto Sans JP', sans-serif;
    line-height: 1.6;
    color: #333;
}

html {
    scroll-behavior: smooth;
}

/* カスタムスタイル */
.container {
    width: 100%;
    padding-left: 2rem;
    padding-right: 2rem;
}

@media (min-width: 768px) {
    .container {
        padding-left: 4rem;
        padding-right: 4rem;
    }
}

/* アニメーション */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in {
    animation: fadeIn 0.6s ease-out;
}

/* ホバーエフェクト */
nav a {
    position: relative;
    transition: color 0.3s ease;
}

nav a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: white;
    transition: width 0.3s ease;
}

nav a:hover::after {
    width: 100%;
}

/* カードホバーエフェクト */
.card-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/* フォーム入力 */
input:focus,
textarea:focus {
    outline: none;
    border-color: rgba(255, 255, 255, 0.6);
}

/* ボタンアニメーション */
button {
    transition: all 0.3s ease;
}

button:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

button:active {
    transform: translateY(0);
}

/* レスポンシブ調整 */
@media (max-width: 768px) {
    h2 {
        font-size: 1.5rem !important;
    }

    section:not(#twitter) {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }
}

/* グラデーション背景 */
.gradient-green {
    background: linear-gradient(to bottom, #006B4A, #004d35);
}

/* SVGアイコンのストローク幅統一 */
.system-icon svg,
.event-icon svg  {
    stroke-width: 2;
}

.header-logo {
    width: auto;   /* 横幅は比率を保って自動調整 */
    object-fit: contain;
}
#hero {
    margin-top: 0 !important;
    padding-top: 0px !important;
    text-align: center;
}


header img {
    height: 100%;
    object-fit: contain;
}

/* ③ 画像は全幅で表示 */
.hero-img {
    width: 100% !important;
    height: auto !important;
}
@media (min-width: 1024px) {
    header {
        height: 80px !important;
        line-height: 80px !important;
    }

    .header img {
        height: 67px !important;
    }
}

.drink-bg {
    background-image: url("../img/drink1.png") !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}
.twitter-box {
    min-height: 500px !important;
}


/* 内部レイアウト */
.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.7rem 1.2rem;
}

.logo img {
    height: 55px;
}

/* PCメニュー */
.pc-nav {
    display: none;
}

@media (min-width: 1024px) {
    .pc-nav {
        display: flex;
        gap: 2rem;
    }

    .mobile-menu,
    .hamburger {
        display: none;
    }
}

/* ハンバーガーボタン */
.hamburger {
    width: 30px;
    height: 22px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
}

.hamburger span {
    display: block;
    height: 3px;
    background: white;
    border-radius: 3px;
}

/* PCメニューのリンク色を白に強制 */
@media (min-width: 1024px) {
  .pc-nav a,
  .header a,
  .header-inner a,
  header a {
    color: white !important;
  }
}
/* system.html と同じヘッダー仕様 */
@media (min-width: 1024px) {
    header {
        height: 80px !important;
        line-height: 80px !important;
    }
    .header img {
        height: 67px !important;
    }
}


/* ▼ スマホ時（640px以下）ドリンクメニューのカード幅を最大化する */
@media (max-width: 640px) {

  /* gridの左右余白(px-8 = 2rem = 32px)を減らす */
  .drink-bg {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  /* 各カードがほぼ画面いっぱいに広がる */
  .drink-card {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* タイトル文字を改行させない */
  .drink-menu-title,
  .drink-menu-category {
    white-space: nowrap !important;
  }
}
/* ▼ スマホ時（640px以下）トーナメントブロックの横幅を広げてはみ出し防止 */
@media (max-width: 640px) {

  /* container の左右余白を縮める（ドリンクと同じ対策） */
  .container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* トーナメント全体のカードを広げる */
  .tournament-card {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* タイトルを改行させない */
  .tournament-title {
    white-space: nowrap !important;
  }
}
/* ▼ スマホ時（640px以下）お得な割引タイトル */
@media (max-width: 640px) {

  /* タイトル行のはみ出し防止 */
  .discount-title-wrap {
    flex-wrap: nowrap !important;
    justify-content: center !important;
  }

  /* 改行しない */
  .discount-title {
    white-space: nowrap !important;
  }

  /* ★ アイコンサイズは変更しない（元の 24px のまま） */
  .discount-title-icon {
    width: 24px !important;
    height: 24px !important;
  }
}
/* ▼ 割引タイトルのアイコンを強制24pxに戻す（Tailwind w-6 h-6 に勝つ） */
.discount-title-icon {
    width: 24px !important;
    height: 24px !important;
    flex-shrink: 0 !important; /* スマホで潰れないようにする */
}
/* ▼ SYSTEM / MENU のタイトル行（スマホ時に改行させない） */
@media (max-width: 640px) {
    .system-title-wrap {
        flex-wrap: nowrap !important;
        justify-content: center !important;
    }
    .system-title {
        white-space: nowrap !important;
    }
    /* アイコンが潰れたり小さくならないよう固定 */
    .system-title-icon {
        width: 32px !important;
        height: 32px !important;
        flex-shrink: 0 !important;
    }
}
/* ▼ 「P-POKERで働く6つの魅力」タイトル（スマホ時に改行させない） */
@media (max-width: 640px) {

    .six-title-wrap {
        flex-wrap: nowrap !important;
        justify-content: center !important;
    }

    .six-title {
        white-space: nowrap !important;
    }

    .six-title-icon {
        width: 24px !important;
        height: 24px !important;
        flex-shrink: 0 !important;
    }
}
/* ▼ 「P-POKERで働く6つの魅力」タイトル（スマホ時に改行せず、文字を少し小さくする） */
@media (max-width: 640px) {
    .six-title {
        white-space: nowrap !important;
        font-size: 18px !important;   /* ← スマホ時だけ文字を小さくする */
        line-height: 28px !important;
    }

    .six-title-wrap {
        flex-wrap: nowrap !important;
        justify-content: center !important;
    }

    .six-title-icon {
        width: 24px !important;
        height: 24px !important;
        flex-shrink: 0 !important;
    }
}
/* ▼ CONTACT / COMPANY のタイトル（スマホ時に改行させず、文字を少し小さくする） */
@media (max-width: 640px) {
    .contact-title {
        white-space: nowrap !important;
        font-size: 20px !important;   /* ← スマホ時に小さくする（お好みで18〜22px調整OK） */
        line-height: 30px !important;
    }

    .contact-title-wrap {
        flex-wrap: nowrap !important;
        justify-content: center !important;
    }

    .contact-title-icon {
        width: 24px !important;
        height: 24px !important;
        flex-shrink: 0 !important;
    }
}
/* ▼ トーナメント系タイトル（スマホ時に改行させず、文字を小さくする） */
@media (max-width: 640px) {
    .event-title {
        white-space: nowrap !important;
        font-size: 18px !important;
        line-height: 28px !important;
    }
}

.sp-br {
    display: none;
}

@media (max-width: 640px) {
    .sp-br {
        display: inline !important;
    }
}

header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 80px;
    background-color: #006B4A;
    z-index: 1000;
}

main {
    padding-top: 80px;
}
/* Xタイムラインを最前面に */
.twitter-section {
  position: relative;
  z-index: 10;
  background: #ffffff;
}

.twitter-wrap {
  position: relative;
  z-index: 10;
}
/* X iframeが潰れないようにする */
.twitter-box {
  min-height: 600px;
  overflow: visible;
}
