/* Club experience page — page-specific components */
.page-club .hero__title > span { letter-spacing: .08em; }
.club-flow .flow-step:last-child { padding-bottom: 0; }
.drink-gift { display:flex; align-items:center; gap:14px; margin-top:24px; padding:16px 20px; border:1px solid rgba(190,142,38,.45); background:linear-gradient(110deg,#fffdf6,#f7efd9); font-weight:700; color:#1c3153; }
.drink-gift span { flex:none; padding:7px 10px; background:#b98b28; color:#fff; font-size:10px; letter-spacing:.16em; }
.clubs-section,.simultaneous-section { position:relative; overflow:hidden; padding:clamp(96px,11vw,160px) 0; }
.clubs-section { background:#f7f5ef; }
.clubs-section__background-word,.simultaneous-section__background-word { position:absolute; top:38px; left:50%; transform:translateX(-50%); white-space:nowrap; font:700 clamp(54px,10vw,150px)/1 Arial,sans-serif; letter-spacing:.04em; color:rgba(16,46,84,.035); pointer-events:none; }
.club-filters { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:48px auto 18px; }
.club-filter { min-width:112px; padding:13px 20px; border:1px solid #c8b88c; background:#fff; color:#17355c; font:600 14px/1.2 inherit; letter-spacing:.06em; cursor:pointer; transition:.25s ease; }
.club-filter:hover,.club-filter.is-active { background:#17355c; border-color:#17355c; color:#fff; }
.club-filter:focus-visible { outline:3px solid rgba(190,142,38,.45); outline-offset:3px; }
.club-result-status { margin:0 0 24px; text-align:right; color:#6d7480; font-size:13px; }
.club-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.club-card { position:relative; min-height:230px; padding:28px 24px 24px; overflow:hidden; border:1px solid rgba(18,48,84,.13); background:#fff; box-shadow:0 14px 38px rgba(14,42,75,.06); transition:transform .3s ease,box-shadow .3s ease,opacity .2s ease; }
.club-card:hover { transform:translateY(-5px); box-shadow:0 20px 42px rgba(14,42,75,.11); }
.club-card[hidden] { display:none; }
.club-card__number { position:absolute; right:17px; top:12px; margin:0; color:rgba(190,142,38,.22); font:700 42px/1 Arial,sans-serif; }
.club-card__category { margin:0 0 34px; color:#a17720; font:700 10px/1 Arial,sans-serif; letter-spacing:.18em; }
/*.club-card__title { margin:0; color:#142f53; font-size:clamp(17px,1.35vw,21px); line-height:1.55; letter-spacing:.035em; }*/
.club-card__title { margin:0; color:#142f53; font-size:clamp(15px,1.35vw,19px); line-height:1.55; letter-spacing:.035em; white-space:nowrap;}
.club-card__gender { margin:18px 0 0; color:#646d79; font-size:13px; }
.club-card__line { position:absolute; left:24px; bottom:24px; width:38px; height:1px; background:#c79b3f; }
.simultaneous-section { background:#fff; }
.simultaneous-section__lead { margin:0 0 12px; color:#b48627; font-size:clamp(18px,2vw,26px); font-weight:700; letter-spacing:.12em; }
.simultaneous-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; margin-top:54px; }
.simultaneous-card { background:#fff; box-shadow:0 18px 50px rgba(16,46,84,.1); }
.simultaneous-card__visual { position:relative; aspect-ratio:768/419; margin:0; overflow:hidden; }
.simultaneous-card__visual img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.simultaneous-card:hover .simultaneous-card__visual img { transform:scale(1.025); }
.simultaneous-card__number { position:absolute; right:20px; bottom:13px; color:#fff; font:700 28px/1 Arial,sans-serif; letter-spacing:.08em; text-shadow:0 2px 12px rgba(0,0,0,.35); }
.simultaneous-card__body { padding:31px 34px 36px; }
.simultaneous-card__english { margin:0 0 14px; color:#ad7f20; font:700 11px/1 Arial,sans-serif; letter-spacing:.14em; }
.simultaneous-card__time { display:inline-block; margin:0 0 18px; padding:8px 14px; border:1px solid #d5bd82; border-radius:30px; color:#815d14; font-size:13px; font-weight:700; }
.simultaneous-card__title { margin:0; color:#132f54; font-size:clamp(25px,2.5vw,36px); line-height:1.4; }
.simultaneous-card__line { display:block; width:42px; height:1px; margin:18px 0; background:#c79735; }
.simultaneous-card__text { margin:0; color:#5f6874; font-size:15px; line-height:2; }
.club-information .container { max-width:1180px; }
.notice-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:52px 0 0; padding:0; list-style:none; }
.notice-item { display:grid; grid-template-columns:50px 1fr; gap:20px; align-items:start; min-height:126px; padding:27px 28px; border:1px solid rgba(18,48,84,.12); background:#fff; }
.notice-item:last-child { grid-column:1/-1; }
.notice-item__number { color:#b48729; font:700 12px/1.6 Arial,sans-serif; letter-spacing:.1em; border-right:1px solid #d6bd82; }
.notice-item p { margin:0; color:#384758; font-size:14px; line-height:1.9; }
@media (max-width:1024px){.club-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.page-club .global-nav{overflow-y:auto;}}
@media (max-width:760px){.clubs-section,.simultaneous-section{padding:82px 0}.club-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.club-card{min-height:190px;padding:22px 18px}.club-card__category{margin-bottom:26px}.club-card__line{left:18px;bottom:20px}.simultaneous-grid{grid-template-columns:1fr;gap:22px;margin-top:38px}.notice-list{grid-template-columns:1fr;margin-top:38px}.notice-item:last-child{grid-column:auto}.drink-gift{align-items:flex-start;flex-direction:column;gap:9px}.club-result-status{text-align:center}.club-filters{gap:8px;margin-top:34px}.club-filter{min-width:calc(33.333% - 6px);padding:12px 8px;font-size:12px}}
@media (max-width:430px){.club-grid{grid-template-columns:1fr}.club-card{min-height:165px}.club-filter{min-width:calc(50% - 4px)}.simultaneous-card__body{padding:25px 23px 29px}.notice-item{grid-template-columns:38px 1fr;gap:14px;padding:22px 18px}}


/* v0.2 adjustments */
h2.section-heading__title {
  white-space: nowrap;
  font-size: clamp(30px, 4.1vw, 58px);
}
h2.section-heading__title span { display: inline; }
h2.section-heading__title .title__join { margin-left: .05em; }

.notice-item {
  grid-template-columns: 72px 1fr;
  align-items: center;
}
.notice-item__number { display: none; }
.notice-item__icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-right: 1px solid #d6bd82;
  padding-right: 14px;
}
.notice-item__icon img {
  display: block;
  width: 42px;
  height: 42px;
  object-fit: contain;
}

@media (max-width: 760px) {
  h2.section-heading__title {
    white-space: normal;
    font-size: clamp(30px, 9vw, 43px);
    line-height: 1.2;
  }
  h2.section-heading__title span { display: block; }
  h2.section-heading__title .title__join { margin-left: 0; }
}

@media (max-width: 430px) {
  .notice-item { grid-template-columns: 56px 1fr; }
  .notice-item__icon { width: 48px; height: 52px; padding-right: 10px; }
  .notice-item__icon img { width: 36px; height: 36px; }
}


/* Club unavailable state */
.club-card--unavailable {
  background:
    linear-gradient(rgba(255,255,255,.88), rgba(255,255,255,.88)),
    repeating-linear-gradient(-45deg, rgba(160,70,65,.06) 0 8px, transparent 8px 16px);
  border-color: rgba(154,65,61,.28);
}
.club-card--unavailable .club-card__title,
.club-card--unavailable .club-card__gender {
  color: #7b8189;
}
.club-card--unavailable .club-card__line {
  background: #a55752;
}
.club-card__status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin: 14px 0 22px;
  padding: 5px 11px;
  border: 1px solid rgba(154,65,61,.32);
  background: #fff5f4;
  color: #963f3b;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .02em;
}


/* =====================================
   v0.4 Compact club cards
   Reduce vertical scrolling, especially on mobile.
===================================== */
.club-grid {
  gap: 14px;
}

.club-card {
  min-height: 150px;
  padding: 22px 20px 20px;
}

.club-card__number {
  right: 14px;
  top: 10px;
  font-size: 34px;
}

.club-card__category {
  margin-bottom: 24px;
}

.club-card__gender {
  margin-top: 12px;
}

.club-card__line {
  left: 20px;
  bottom: 18px;
}

.club-card__status {
  margin: 9px 0 17px;
  min-height: 25px;
  padding: 4px 8px;
  font-size: 11px;
}

@media (max-width: 760px) {
  .club-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .club-card {
    min-height: 130px;
    padding: 17px 14px 16px;
  }

  .club-card__number {
    right: 10px;
    top: 9px;
    font-size: 26px;
  }

  .club-card__category {
    margin-bottom: 16px;
    font-size: 8px;
  }

  .club-card__title {
    padding-right: 10px;
    font-size: clamp(13px, 3.7vw, 15px);
    line-height: 1.45;
  }

  .club-card__gender {
    margin-top: 8px;
    font-size: 11px;
  }

  .club-card__line {
    left: 14px;
    bottom: 13px;
    width: 28px;
  }

  .club-card__status {
    margin: 7px 0 13px;
    padding: 3px 6px;
    font-size: 9px;
  }
}

@media (max-width: 430px) {
  /* Keep two columns on phones to reduce page length. */
  .club-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .club-card {
    min-height: 110px;
    padding: 16px 12px 15px;
  }

  .club-card__title {
    font-size: 13px;
  }
}


/* =====================================
   Client fix v2
   - Center the single consultation card on desktop
   - Keep all notice cards the same width
===================================== */
@media (min-width: 761px) {
  /* 個別相談が1件だけになったため、カード自体を中央配置 */
  .simultaneous-grid {
    grid-template-columns: minmax(0, 680px);
    justify-content: center;
  }

  .simultaneous-card {
    width: 100%;
    margin-inline: auto;
  }

  /* 8項目すべてを同じカード幅に揃える */
  .notice-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .notice-item {
    grid-column: auto !important;
    width: 100%;
  }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .notice-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
