/* ========================================
   IZNM Main Styles v1.0
   All styles consolidated — no inline CSS
   ======================================== */

/* ----------------------------------------
   1. Reset & Base
   ---------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { background: var(--iznm-bg-deep); }

body {
  background-color: var(--iznm-bg-deep);
  color: var(--iznm-text-main);
  font-family: var(--iznm-font-ja);
  font-size: var(--iznm-text-base);
  line-height: var(--iznm-leading-normal);
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
}

/* ----------------------------------------
   2. Typography
   ---------------------------------------- */
h1, h2, h3, h4, h5, h6 {
  color: var(--iznm-text-main);
  font-family: var(--iznm-font-ja);
  font-weight: var(--iznm-font-bold);
  margin-bottom: 1rem;
}
h1 { font-size: var(--iznm-text-3xl); }
h2 { font-size: var(--iznm-text-2xl); }
h3 { font-size: var(--iznm-text-xl); }

p, div, span, li {
  /* color は body から継承（コンポーネントの色継承を阻害しないため直接指定しない） */
  font-family: var(--iznm-font-ja);
}

a {
  color: var(--iznm-text-main);
  text-decoration: none;
  transition: color var(--iznm-transition-normal);
}
a:hover { color: var(--iznm-text-sub); }
/* ----------------------------------------
   3. Layout — GeneratePress Overrides
   ---------------------------------------- */
/* GP Premium handles header background */

/* GP Premium navigation — display rules removed */

/* [I: 旧GPヘッダー セクション4 削除済み — iznm-headerで管理] */

/* ----------------------------------------
   5. Footer
   ---------------------------------------- */
/* [旧GPフッター セクション5 削除済み — iznm-footer-barで管理] */

.inside-site-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--iznm-space-5);
  padding: 0 var(--iznm-space-5);
  max-width: var(--iznm-width-wide);
  margin: 0 auto;
}
/* ----------------------------------------
   6. Background Animation
   ---------------------------------------- */
#iznm-bg-animation {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.iznm-bg-logo {
  position: absolute;
  opacity: 0;
  animation: iznmBlink var(--duration, 3s) ease-in-out var(--delay, 0s) infinite;
  filter: brightness(0) invert(1);
}
@keyframes iznmBlink {
  0%, 100% { opacity: 0; }
  50% { opacity: var(--max-opacity, 0.04); }
}
/* ----------------------------------------
   7. Components — Buttons
   ---------------------------------------- */
.wp-block-button .wp-block-button__link,
.button, .btn,
input[type="submit"],
button {
  background: var(--iznm-text-main);
  color: var(--iznm-black);
  border: none;
  padding: var(--iznm-space-3) var(--iznm-space-6);
  border-radius: var(--iznm-radius-md);
  font-weight: var(--iznm-font-medium);
  font-family: var(--iznm-font-ja);
  transition: background var(--iznm-transition-normal);
  cursor: pointer;
}
.button:hover, .btn:hover, input[type="submit"]:hover, button:hover {
  background: var(--iznm-text-sub);
  color: var(--iznm-black);
}

/* ----------------------------------------
   8. Components — Forms
   ---------------------------------------- */
input[type="text"], input[type="email"], input[type="password"],
input[type="tel"], textarea, select {
  background: var(--iznm-bg-raised);
  color: var(--iznm-text-main);
  border: 1px solid var(--iznm-border-light);
  border-radius: var(--iznm-radius-md);
  padding: var(--iznm-space-2) var(--iznm-space-3);
  font-family: var(--iznm-font-ja);
  font-size: var(--iznm-text-sm);
}
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--iznm-text-muted);
}

/* ----------------------------------------
   9. Components — Tables
   ---------------------------------------- */
table { background: transparent; color: var(--iznm-text-main); border: 1px solid var(--iznm-border-dark); border-collapse: collapse; }
th, td { border: 1px solid var(--iznm-border-dark); color: var(--iznm-text-main); padding: var(--iznm-space-2); }
th { background: var(--iznm-bg-raised); }

/* ----------------------------------------
   10. Page — Content Pages (not home)
   ---------------------------------------- */
body:not(.home) .entry-title::before { content: "/ "; color: var(--iznm-text-muted); }
body:not(.home) .entry-content p { color: var(--iznm-text-sub); margin-bottom: 1.5em; }
body:not(.home) .entry-content h2 { font-size: var(--iznm-text-base); border-left: 2px solid var(--iznm-text-main); padding-left: var(--iznm-space-3); }
body:not(.home) .entry-content h3 { font-size: var(--iznm-text-sm); color: var(--iznm-text-sub); letter-spacing: var(--iznm-tracking-wider); }
body:not(.home) .entry-content a { color: var(--iznm-text-main); border-bottom: 1px solid var(--iznm-border-light); }
body:not(.home) .entry-content a:hover { border-bottom-color: var(--iznm-text-main); }

:root {
    --vh: 1vh;
    /* Phase 1.5-E: 種別ラベル色（alias） */
    --iznm-color-label-spot: var(--iznm-blue);
    --iznm-color-label-event: var(--iznm-green);
    --iznm-color-label-brand: var(--iznm-gold);
    /* Phase 4-C: GROUP 種別 色 alias */
    --iznm-color-group-type-closed: var(--iznm-text-muted);  /* #888888 */
    --iznm-color-group-type-open: var(--iznm-blue);          /* #3d7ab5 */
}
/* ----------------------------------------
   15. Utilities
   ---------------------------------------- */
.fade-up { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease-out, transform 0.6s ease-out; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
/* ----------------------------------------
   16. Responsive
   ---------------------------------------- */
@media (max-width: 768px) {
  h1 { font-size: var(--iznm-text-3xl); }
  h2 { font-size: var(--iznm-text-xl); }
  h3 { font-size: var(--iznm-text-lg); }

  .iznm-footer-links a { display: block; margin: var(--iznm-space-2) 0; }

  .iznm-fw-logo-tag { width: clamp(120px, 40vw, 200px); }
  #iznm-founder-tooltip { display: none; }

}
