/* ============================================================
   premium.css — 高級ビリヤードラウンジテーマ
   body.theme-premium で有効化
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:wght@400;500;600;700&display=swap');

/* ---- テーマ変数 ---- */
body.theme-premium {
  --pm-black:        #0a0a0b;
  --pm-charcoal:     #141418;
  --pm-surface:      #1b1b21;
  --pm-surface-alt:  #22222a;
  --pm-border:       #2a2a34;
  --pm-border-light: #353542;
  --pm-gold:         #c9a96e;
  --pm-gold-light:   #ddc08a;
  --pm-gold-dim:     #8a7548;
  --pm-gold-glow:    rgba(201, 169, 110, .12);
  --pm-green:        #2d6b4f;
  --pm-green-light:  #3a8a66;
  --pm-text:         #e8e4dd;
  --pm-text-muted:   #9e9a92;
  --pm-text-subtle:  #6b6760;
  --pm-cream:        #f5f0e8;

  --pm-font-display: 'Cormorant Garamond', 'Georgia', 'Hiragino Mincho ProN', serif;
  --pm-font-body:    'DM Sans', 'Hiragino Sans', sans-serif;

  --pm-radius:       4px;
  --pm-radius-lg:    8px;
  --pm-shadow:       0 2px 12px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3);
  --pm-shadow-lg:    0 8px 32px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .3);
  --pm-transition:   .3s cubic-bezier(.4, 0, .2, 1);

  /* base.css 変数のオーバーライド */
  --color-primary:     var(--pm-gold);
  --color-primary-dk:  var(--pm-gold-dim);
  --color-gray-50:     var(--pm-charcoal);
  --color-gray-100:    var(--pm-surface);
  --color-gray-200:    var(--pm-border);
  --color-gray-400:    var(--pm-text-subtle);
  --color-gray-600:    var(--pm-text-muted);
  --color-gray-800:    var(--pm-text);
  --color-gray-900:    var(--pm-black);

  --status-idle:        rgba(45, 107, 79, .2);
  --status-idle-text:   #6fcf97;
  --status-in-use:      rgba(201, 85, 85, .15);
  --status-in-use-text: #e87c7c;
  --status-cleaning:    rgba(201, 169, 110, .15);
  --status-cleaning-text: var(--pm-gold-light);
  --status-maint:       rgba(255, 255, 255, .06);
  --status-maint-text:  var(--pm-text-subtle);

  --radius:  var(--pm-radius);
  --shadow:  var(--pm-shadow);
  --shadow-md: var(--pm-shadow-lg);
}


/* ================================================================
   グローバル
   ================================================================ */

body.theme-premium {
  font-family: var(--pm-font-body);
  color: var(--pm-text);
  background: var(--pm-black);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 微細なノイズテクスチャ（背景の奥行き感） */
body.theme-premium::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size: 256px 256px;
  pointer-events: none;
}

body.theme-premium a {
  color: var(--pm-gold);
  transition: color var(--pm-transition);
}
body.theme-premium a:hover {
  color: var(--pm-gold-light);
  text-decoration: none;
}


/* ================================================================
   ヘッダー
   ================================================================ */

body.theme-premium .site-header {
  background: var(--pm-black);
  min-height: 280px;
  border-bottom: 1px solid var(--pm-border);
}

body.theme-premium .site-cover-image {
  opacity: .5;
  filter: saturate(.6) contrast(1.1);
  transition: opacity .6s ease;
}

body.theme-premium .site-header-overlay {
  background: linear-gradient(
    to top,
    var(--pm-black) 0%,
    rgba(10, 10, 11, .85) 40%,
    transparent 100%
  );
  padding: 3rem 2rem 2rem;
  gap: 1.25rem;
}

body.theme-premium .site-logo {
  width: 64px;
  height: 64px;
  border: 2px solid var(--pm-gold);
  box-shadow: 0 0 20px var(--pm-gold-glow);
}

body.theme-premium .site-name {
  font-family: var(--pm-font-display);
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--pm-cream);
  text-shadow: 0 2px 16px rgba(0, 0, 0, .6);
}


/* ================================================================
   セクション共通
   ================================================================ */

body.theme-premium .site-section {
  max-width: 680px;
  padding: 2rem 1.5rem;
}

body.theme-premium .site-section-title {
  font-family: var(--pm-font-display);
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: .06em;
  color: var(--pm-gold);
  border-bottom: 1px solid var(--pm-border);
  padding-bottom: .75rem;
  position: relative;
}

/* ゴールドのアクセントライン */
body.theme-premium .site-section-title::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 48px;
  height: 1px;
  background: var(--pm-gold);
}


/* ================================================================
   紹介文
   ================================================================ */

body.theme-premium .site-description {
  color: var(--pm-text-muted);
  line-height: 2;
  font-size: .95rem;
  letter-spacing: .01em;
}


/* ================================================================
   空き状況
   ================================================================ */

body.theme-premium .availability-count {
  font-family: var(--pm-font-display);
  font-size: 3rem;
  font-weight: 700;
  color: var(--pm-green-light);
}

body.theme-premium .availability-total {
  color: var(--pm-text-muted);
  font-size: .9rem;
}

body.theme-premium .availability-grid {
  gap: .625rem;
}

body.theme-premium .availability-card {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-left: 3px solid transparent;
  border-radius: var(--pm-radius);
  padding: .75rem .85rem;
  transition: border-color var(--pm-transition), background var(--pm-transition);
}
body.theme-premium .availability-card:hover {
  background: var(--pm-surface-alt);
}

body.theme-premium .availability-card.status-idle {
  background: var(--status-idle);
  border-left-color: var(--pm-green-light);
}
body.theme-premium .availability-card.status-in-use {
  background: var(--status-in-use);
  border-left-color: #c55555;
}
body.theme-premium .availability-card.status-cleaning {
  background: var(--status-cleaning);
  border-left-color: var(--pm-gold);
}
body.theme-premium .availability-card.status-maintenance {
  background: var(--status-maint);
  border-left-color: var(--pm-text-subtle);
}

body.theme-premium .availability-card-name {
  color: var(--pm-text);
  font-size: .85rem;
  font-weight: 600;
}

body.theme-premium .availability-updated {
  color: var(--pm-text-subtle);
  font-size: .72rem;
}


/* ================================================================
   料金表
   ================================================================ */

body.theme-premium .pricing-item {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius);
  padding: 1rem 1.25rem;
  transition: border-color var(--pm-transition);
}
body.theme-premium .pricing-item:hover {
  border-color: var(--pm-gold-dim);
}

body.theme-premium .pricing-label {
  color: var(--pm-text);
  font-weight: 500;
  letter-spacing: .01em;
}

body.theme-premium .pricing-price {
  font-family: var(--pm-font-display);
  color: var(--pm-gold);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .02em;
}


/* ================================================================
   イベント
   ================================================================ */

body.theme-premium .site-event-card {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius);
  padding: 1rem;
  transition: border-color var(--pm-transition), transform var(--pm-transition);
}
body.theme-premium .site-event-card:hover {
  border-color: var(--pm-border-light);
  transform: translateY(-1px);
}

body.theme-premium .site-event-date-badge {
  background: linear-gradient(135deg, var(--pm-gold-dim), var(--pm-gold));
  color: var(--pm-black);
  border-radius: var(--pm-radius);
  min-width: 56px;
}
body.theme-premium .site-event-month,
body.theme-premium .site-event-dow {
  opacity: .7;
}

body.theme-premium .site-event-title {
  color: var(--pm-text);
  font-weight: 600;
}
body.theme-premium .site-event-meta {
  color: var(--pm-text-muted);
}
body.theme-premium .site-event-desc {
  color: var(--pm-text-muted);
}

body.theme-premium .site-event-type-badge.tournament {
  background: rgba(45, 107, 79, .2);
  color: var(--pm-green-light);
}
body.theme-premium .site-event-type-badge.lesson {
  background: var(--pm-gold-glow);
  color: var(--pm-gold);
}
body.theme-premium .site-event-type-badge.other {
  background: rgba(255, 255, 255, .06);
  color: var(--pm-text-muted);
}
body.theme-premium .site-event-type-badge.schedule {
  background: rgba(201, 169, 110, .1);
  color: var(--pm-gold-dim);
}

body.theme-premium .site-event-image {
  border-radius: var(--pm-radius);
  border: 1px solid var(--pm-border);
}


/* ================================================================
   ギャラリー
   ================================================================ */

body.theme-premium .site-gallery-item {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius);
  overflow: hidden;
  transition: border-color var(--pm-transition), transform var(--pm-transition);
}
body.theme-premium .site-gallery-item:hover {
  border-color: var(--pm-gold-dim);
  transform: translateY(-2px);
}

body.theme-premium .site-gallery-item img {
  filter: saturate(.85) contrast(1.05);
  transition: filter var(--pm-transition);
}
body.theme-premium .site-gallery-item:hover img {
  filter: saturate(1) contrast(1);
}

body.theme-premium .site-gallery-caption {
  color: var(--pm-text-muted);
  border-top: 1px solid var(--pm-border);
  font-size: .75rem;
}


/* ================================================================
   営業時間
   ================================================================ */

body.theme-premium .hours-item {
  border-radius: var(--pm-radius);
  padding: .6rem .85rem;
}
body.theme-premium .hours-item:nth-child(odd) {
  background: var(--pm-surface);
}

body.theme-premium .hours-day {
  color: var(--pm-gold);
  font-family: var(--pm-font-display);
  font-size: 1.05rem;
  font-weight: 600;
}

body.theme-premium .hours-time {
  color: var(--pm-text-muted);
  font-variant-numeric: tabular-nums;
}

body.theme-premium .hours-closed {
  color: var(--pm-text-subtle);
  font-weight: 500;
}


/* ================================================================
   アクセス
   ================================================================ */

body.theme-premium .access-info {
  color: var(--pm-text-muted);
  line-height: 1.9;
}

body.theme-premium .access-phone a {
  color: var(--pm-gold);
  font-family: var(--pm-font-display);
  font-size: 1.2rem;
  letter-spacing: .04em;
}
body.theme-premium .access-phone a:hover {
  color: var(--pm-gold-light);
}

/* Google Maps の角丸・ボーダー */
body.theme-premium .access-map iframe {
  border-radius: var(--pm-radius-lg) !important;
  border: 1px solid var(--pm-border) !important;
  filter: brightness(.85) contrast(1.1) saturate(.7);
}


/* ================================================================
   SNS リンク
   ================================================================ */

body.theme-premium .sns-link {
  background: var(--pm-surface);
  color: var(--pm-text);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius);
  padding: .6rem 1.5rem;
  font-weight: 500;
  font-size: .85rem;
  letter-spacing: .02em;
  transition: all var(--pm-transition);
}
body.theme-premium .sns-link:hover {
  background: var(--pm-surface-alt);
  border-color: var(--pm-gold-dim);
  color: var(--pm-gold);
}


/* ================================================================
   フッター
   ================================================================ */

body.theme-premium .site-footer {
  border-top-color: var(--pm-border);
  color: var(--pm-text-subtle);
  max-width: 680px;
}
body.theme-premium .site-footer a {
  color: var(--pm-text-subtle);
}
body.theme-premium .site-footer a:hover {
  color: var(--pm-gold);
}


/* ================================================================
   ローディング・404
   ================================================================ */

body.theme-premium .site-loading .spinner {
  border-color: var(--pm-border);
  border-top-color: var(--pm-gold);
}

body.theme-premium .site-not-found-content {
  color: var(--pm-text-muted);
}
body.theme-premium .site-not-found-content h1 {
  color: var(--pm-text);
  font-family: var(--pm-font-display);
}


/* ================================================================
   セクション入場アニメーション
   ================================================================ */

@keyframes pm-fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

body.theme-premium .site-section:not(.hidden) {
  animation: pm-fade-up .5s var(--pm-transition) both;
}
body.theme-premium .site-section:nth-child(2) { animation-delay: .05s; }
body.theme-premium .site-section:nth-child(3) { animation-delay: .1s; }
body.theme-premium .site-section:nth-child(4) { animation-delay: .15s; }
body.theme-premium .site-section:nth-child(5) { animation-delay: .2s; }
body.theme-premium .site-section:nth-child(6) { animation-delay: .25s; }
body.theme-premium .site-section:nth-child(7) { animation-delay: .3s; }
body.theme-premium .site-section:nth-child(8) { animation-delay: .35s; }


/* ================================================================
   レスポンシブ
   ================================================================ */

@media (min-width: 480px) {
  body.theme-premium .site-header {
    min-height: 320px;
  }
  body.theme-premium .site-name {
    font-size: 2.25rem;
  }
  body.theme-premium .site-section {
    padding: 2.5rem 2rem;
  }
}

@media (min-width: 768px) {
  body.theme-premium .site-header {
    min-height: 360px;
  }
  body.theme-premium .site-header-overlay {
    padding: 3.5rem 3rem 2.5rem;
  }
  body.theme-premium .site-name {
    font-size: 2.5rem;
  }
}
